sklearn 中 learning_curve 函数 的详细使用方法 (机器学习)

简介: sklearn 中 learning_curve 函数 的详细使用方法 (机器学习)

✌ learning_curve函数的使用

1、✌ 原理

该函数是用来画学习曲线,可以直接返回训练样本、训练集分数、测试集分数

内部是根据交叉验证来获得分数的

学习曲线就是通过画出不同训练集大小时训练集和交叉验证的准确率,可以看到模型在新数据上的表现,进而来判断模型是否方差偏高或偏差过高,以及增大训练集是否可以减小过拟合。

2、✌ 函数形式

sklearn.model_selection.learning_curve(estimator, X, y, groups=None, train_sizes=array([0.1, 0.33, 0.55, 0.78, 1. ]), cv=’warn’, scoring=None, exploit_incremental_learning=False, n_jobs=None, pre_dispatch=’all’, verbose=0, shuffle=False, random_state=None, error_score=’raise-deprecating’)

3、✌ 重要参数

estimator:

需要传入模型对象,例如:RandomForestRegression()、SVC(gamma=0.001)

x:

需传入特征矩阵

y:

需传入标签

cv:

可以传多种格式参数:

(1)、整数:指定KFold中的折数,如cv=5,意为将x特征矩阵分为5份,最终分数也会有5份

(2)、None:默认为3折交叉验证

(3)、分割器:例如ShuffleSplit(n_splits=50,test_size=0.2,random_state=0)

即按照传入分割器进行分割

n_jobs:

需要同时运行的CPU数,如果是-1,则调用所有CPU进行计算

4、✌ 函数返回值

train_sizes_abs:

返回生成的训练的样本数,如[ 10 , 100 , 1000 ]

train_scores:

返回训练集分数,该矩阵为( len ( train_sizes_abs ) , cv分割数 )维的分数,

每行数据代表该样本数对应不同折的分数

test_scores:

同train_scores,只不过是这个对应的是测试集分数

5、✌ 代码示例

学习曲线就是通过画出不同训练集大小时训练集和交叉验证的准确率,可以看到模型在新数据上的表现,进而来判断模型是否方差偏高或偏差过高,以及增大训练集是否可以减小过拟合。

✌ 导库
from sklearn.datasets import load_digits # 导入手写数字集
from sklearn.model_selection import learning_curve # 导入学习曲线类
✌ 加载数据
fig,ax=plt.subplots(1,1,figsize=(6,6)) # 设置画布和子图
data=load_digits()
x,y=data.data,data.target # 加载特征矩阵和标签
✌ 画图
train_sizes,train_scores,test_scores=learning_curve(RandomForestClassifier(n_estimators=50),x,y,cv=10,n_jobs=4)
# 设置分类器为随机森林,x,y,5折交叉验证,cpu同时运算为4个
ax.set_ylim((0.7,1.1)) # 设置子图的纵坐标的范围为(0.7~1.1)
ax.set_xlabel("training examples") # 设置子图的x轴名称
ax.set_ylabel("score")
ax.grid() # 画出网图
ax.plot(train_sizes,np.mean(train_scores,axis=1),'o-',color='r',label='train score')
# 画训练集数据分数,横坐标为用作训练的样本数,纵坐标为不同折下的训练分数的均值
ax.plot(train_sizes,np.mean(test_scores,axis=1),'o-',color='g',label='test score')
ax.legend(loc='best') # 设置图例
plt.show()


目录
相关文章
|
10天前
|
机器学习/深度学习 算法 数据挖掘
机器学习之sklearn基础——一个小案例,sklearn初体验
机器学习之sklearn基础——一个小案例,sklearn初体验
29 6
|
2月前
|
机器学习/深度学习 数据采集 算法
机器学习之sklearn基础教程
机器学习之sklearn基础教程
|
3天前
|
机器学习/深度学习 数据采集 自然语言处理
机器学习之sklearn基础教程
机器学习之sklearn基础教程
|
13天前
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
21 3
|
3天前
|
机器学习/深度学习 算法
技术经验解读:【机器学习】代价函数(costfunction)
技术经验解读:【机器学习】代价函数(costfunction)
|
9天前
|
机器学习/深度学习 数据处理 计算机视觉
机器学习- Sklearn (交叉验证和Pipeline)
机器学习- Sklearn (交叉验证和Pipeline)
|
2月前
|
机器学习/深度学习 数据采集 人工智能
机器学习之sklearn基础教程
【5月更文挑战第9天】Sklearn是Python热门机器学习库,提供丰富算法和预处理工具。本文深入讲解基础概念、核心理论、常见问题及解决策略。内容涵盖模型选择与训练、预处理、交叉验证、分类回归、模型评估、数据集划分、正则化、编码分类变量、特征选择与降维、集成学习、超参数调优、模型评估、保存加载及模型解释。学习Sklearn是迈入机器学习领域的关键。
57 3
|
2月前
|
机器学习/深度学习 数据可视化 数据处理
python 机器学习 sklearn——一起识别数字吧
python 机器学习 sklearn——一起识别数字吧
|
2月前
|
机器学习/深度学习 Python
python 机器学习 sklearn——手把手教你预测心脏病
python 机器学习 sklearn——手把手教你预测心脏病
|
2月前
|
机器学习/深度学习
机器学习基础入门(二)(线性回归与成本函数)
已知一系列房子的大小以及其对应的价格的数据,要求是已知房子大小预测其房子的价格