sklearn中的cross_val_score()函数参数

sklearn 中的cross_val_score函数可以用来进行交叉验证,因此十分常用,这里介绍这个函数的参数含义。

sklearn.model_selection.cross_val_score(estimator, X, y=None, 
cv=None, n_jobs=1, verbose=0, fit_params=None, pre_dispatch=2*n_jobs’)

其中主要参数含义:

estimator:估计方法对象(分类器)
X:数据特征(Features)
y:数据标签(Labels)
cv:几折交叉验证
n_jobs:同时工作的cpu个数(-1代表全部)

使用鸢尾花数据集运行实例:

from sklearn import datasets, svm
from sklearn.model_selection import cross_val_score
iris = datasets.load_iris()
X = iris.data
y = iris.target
SVC = svm.SVC()
print(cross_val_score(SVC, X, y, cv=5, scoring='accuracy'))  

运行结果:

[0.96666667  1.         0.96666667 0.96666667 1.        ]

结果中的五个值,代表五次交叉验证每次的结果,可使用mean函数输出其平均值。

scores.mean() 

注意的问题:
k折交叉验证的每一次验证中,每一份子集的数量可能不一致,例k=3时,子集大小为7 ,7,6,而每一份时的正确个数为6,5,4,这样其结果为[0.8571,0.7142,0.6667],三个数的均值为0.7460。
但是正确应为(6+5+4)/(7+7+6)=0.75
可以使用scoring = "precision_weighted"解决这一问题。

(20210416更新,感谢评论区大佬指正)

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值