栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

交叉验证(s折、分层、留一法)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

交叉验证(s折、分层、留一法)

目录

交叉验证原理

交叉验证分类

1.标准交叉验证(s折交叉验证)

代码实现

2.分层交叉验证

代码实现

StratifiedKFold参数

3.留一法交叉验证

代码实现

代码说明


交叉验证原理

交叉验证就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。

交叉验证分类

1.标准交叉验证(s折交叉验证)

s折交叉验证就是将数据集分为大小相等的s份,每次随机选取s-1份作为训练集,剩下的一份为测试集。当一轮完成后,再随机选取s-1份作为训练集,若干轮(小于S)之后,选择损失函数评估最优的模型和参数。

优点:

1.整个数据集可用于训练和验证

缺点:

1.不适合不平衡的数据集(出现图一的情况)

图一:标准交叉验证;

图二:分折交叉验证;

代码实现
from sklearn.model_selection import cross_val_score
score = cross_val_score(model,X, y, cv=5) #进行5轮交叉验证

2.分层交叉验证

根据原始类别比例分割数据集,训练集和测试集中各类别的比例与数据集中各类别的比例相同。

见图二的原理

代码实现
#分折交叉验证,会按照原始类别比例分割数据集
from sklearn.model_selection import StratifiedKFold
strKFold = StratifiedKFold(n_splits=5,shuffle=True,random_state=0)
score = cross_val_score(knn_clf,X, y,cv=strKFold)

 

StratifiedKFold参数

n_splits:折叠次数,默认为3,至少为2。

shuffle:是否在每次分割之前打乱顺序。

random_state:随机种子,在shuffle==True时使用,默认使用np.random。

StratifiedKFold用法类似Kfold,但是他是分层采样,确保训练集,测试集中各类别样本的比例与原始数据集中相同。

3.留一法交叉验证

对于N个样本,每次选择N-1个样本来训练数据,留一个样本来验证模型预测的好坏。(往往在数据量非常少的时候使用)

优点:

1.每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评估所得的结果比较可靠;

2.实验没有随机因素,整个过程是可重复的;

缺点:

1.计算成本高;

代码实现
#留一法交叉验证
from sklearn.model_selection import LeaveoneOut

loout = LeaveoneOut()
score = cross_val_score(knn_clf,X, y,cv=loout)

LeaveoneOut()进行留一交叉验证。

代码说明
from sklearn.model_selection import cross_val_score
cross_val_score(estimator, 
                X, 
                y=None,
                groups=None, 
                scoring=None,
                cv=None, 
                verbose=0, 
                fit_params=None,
                pre_dispatch='2*n_jobs')

estimator:选用的学习器的实例对象,包含“fit”方法;
X :特征数组
y : 标签数组
groups:如果数据需要分组采样的话
scoring :评价函数
cv:交叉验证的k值,当输入为整数或者是None,估计器是分类器,y是二分类或者多分类,采用StratifiedKFold 进行数据划分
fit_params:字典,将估计器中fit方法的参数通过字典传递

转载自:

https://blog.csdn.net/weixin_42399856/article/details/81082971
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/290761.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号