学习曲线

如果模型在训练数据上表现良好,但根据交叉验证的指标泛化较差,则你的模型过拟合。如果两者的表现均不理想,则说明欠拟合

  • 均方误差 mean squared error
  • 训练测试分 train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as pltX=np.random.randn(100,1)
y=4+3*X+np.random.randn(100,1)
#learning_curves 学习曲线
def plot_learning_curves(model,X,y):X_train,X_val,y_train,y_val=train_test_split(X,y,test_size=0.2)train_errors,val_errors=[],[]#使用交叉验证for m in range(1,len(X_train)):#从使用两个数据开始拟合model.fit(X_train[:m],y_train[:m])#使用前m个训练集y_train_predict=model.predict(X_train[:m])#得出前m个训练集y的预测值y_val_predict=model.predict(X_val)#获得验证集预测值train_errors.append(mean_squared_error(y_train[:m],y_train_predict))#使用mean_squared_error获得训练集预测值均方误差val_errors.append(mean_squared_error(y_val,y_val_predict))#使用mean_squared_error获得验证集预测值均方误差plt.plot(np.sqrt(train_errors), "r-+", linewidth=2, label="train")plt.plot(np.sqrt(val_errors), "b-", linewidth=3, label="val")plt.legend(loc="upper right", fontsize=14)   # 曲线标注plt.xlabel("Training set size", fontsize=14) # x轴标签plt.ylabel("RMSE", fontsize=14)              # y轴标签plt.axis([0, 80, 0, 5])plt.show()
#线性回归模型实例
lin_reg=LinearRegression()
#调用学习曲线函数
plot_learning_curves(lin_reg,X,y)


这种情况属于欠拟合,模型损失较高,且训练集曲线与验证集曲线中间的距离较近,使用更多的数据集训练也是无济于事,

在相同数据上的10阶多项式模型的学习曲线

from sklearn.pipeline import Pipeline
#定义流水线
polynomial_regression=Pipeline([("poly_features",PolynomialFeatures(degree=10,include_bias=False)),#多项式特征("lin_reg",LinearRegression())#线性模型
])
plot_learning_curves(polynomial_regression,X,y)


曲线之间存在间隙。这意味着该模型在训练数据上的性能要比在验证数据上的性能
好得多,这是过拟合模型的标志。但是,如果你使用更大的训练集,则两条曲线会继续接

机器学习-学习曲线-sklearn相关推荐

  1. 机器学习 学习曲线 Python实现学习曲线及案例解析

    机器学习 学习曲线 Python实现学习曲线及案例解析 学习曲线 如果数据集的大小为 mmm,则通过下面的流程即可画出学习曲线: 把数据集分成训练数据集和交叉验证数据集. 取训练数据集的 20%20\ ...

  2. 机器学习之sklearn基础教程!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,深圳大学,Datawhale高校群成员 本次分享是基于sc ...

  3. 数据挖掘原理与算法:机器学习->{[sklearn. model_selection. train_test_split]、[h2o]、[网格搜索]、[numpy]、[plotly.express]}

    数据挖掘原理与算法:机器学习->{[sklearn. model_selection. train_test_split].[h2o].[网格搜索].[numpy].[plotly.expres ...

  4. ML之ME/LF:基于不同机器学习框架(sklearn/TF)下算法的模型评估指标(损失函数)代码实现及其函数(Scoring/metrics)代码实现(仅代码)

    ML之ME/LF:基于不同机器学习框架(sklearn/TF)下算法的模型评估指标(损失函数)代码实现及其函数(Scoring/metrics)代码实现(仅代码) 目录 单个评价指标各种框架下实现 1 ...

  5. Python机器学习库sklearn的安装

    Python机器学习库sklearn的安装 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上能够为用户提供各种机器学习算法接口 ...

  6. python sklearn 支持向量机_python机器学习库sklearn之支持向量机svm介绍

    python机器学习库sklearn之支持向量机svm介绍tcB太阳2平台注册|网站分类目录 python数据挖掘系列教程tcB太阳2平台注册|网站分类目录 这里只讲述sklearn中如何使用svm算 ...

  7. 机器学习之sklearn使用下载MNIST数据集进行分类识别

    机器学习之sklearn使用下载MNIST数据集进行分类识别 一.MNIST数据集 1.MNIST数据集简介 2.获取MNIST数据集 二.训练一个二分类器 1.随机梯度下降(SGD)分类器 2.分类 ...

  8. Sklearn 损失函数如何应用到_菜鸟学机器学习,Sklearn库主要模块功能简介

    导读 作为一名数据分析师,当我初次接触数据分析三剑客(numpy.pandas.matplotlib)时,感觉每个库的功能都很多很杂,所以在差不多理清了各模块功能后便相继推出了各自教程(文末附链接): ...

  9. 菜鸟学机器学习,Sklearn库主要模块功能简介

    导读 作为一名数据分析师,当我初次接触数据分析三剑客(numpy.pandas.matplotlib)时,感觉每个库的功能都很多很杂,所以在差不多理清了各模块功能后便相继推出了各自教程(文末附链接): ...

最新文章

  1. 《数据科学家养成手册》--“什么性质的人才能称得上科学家?” “科学的意思”
  2. 瓷博会开幕,《锦绣中华》引围观
  3. 配置开发ExtJS环境
  4. Day7 - 面向对象编程进阶及其他相关
  5. C语言编程的Debug版和Release版
  6. 在unity2d同屏显示9千人
  7. 快速使用Vue3最新的15个常用API
  8. [Leetcode][程序员面试金典][面试题08.03][JAVA][魔术索引][递归][优化]
  9. mybatis源码深度解析_30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软
  10. 艰难的时候总会过去,只要你能坚持下来~
  11. VB 6.0使用api
  12. 身份证归属地信息查询接口
  13. 拖机教程之ASTER v7超越BETWIN WIN7 VISTA教程(含ASTER v7和注册机下载)
  14. wap jsp 开发
  15. ssq爬取【20210618有效】
  16. 软件收集-建筑工程资料软件
  17. select into 时有无strict关键字的区别
  18. 机器学习学习笔记(3)——量纲与无量纲,标准化、归一化、正则化
  19. 安装文件MyEclipse6.5安装与卸载SVN插件方法
  20. Matlab之误差分析

热门文章

  1. 大多数企业采用的7种核心采购策略
  2. 基于ASP.NET的小清新风格的新闻发布系统
  3. 安装Oracle 11g时遇到“【INS-13001】此环境不满足最低配置”的问题解决
  4. 90分钟可以做什么?
  5. 一个人的美好,不仅仅是外在的东西,更多的是来自于柔软心的力量。 很喜欢这样一句话: “如果你越来越冷漠,你以为你成长了,但其实没有。长大应该是变温
  6. RocketMQ搭建-WEB集成RMQ-SE集成RMQ
  7. 「2021年度推荐」核芯物联蓝牙AoA定位系统15问
  8. k均值聚类算法(K Means)及其实战案例
  9. GUI编程,简易计算器的实现
  10. 用bootstrap写一个折叠面板