cross_val_score的 scoring参数值解析

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_32590631/article/details/82831613

一般我们在模型训练过程中,会采用K折交叉验证的方法来验证模型的表现,从而进行调参,一般我们会用到

sklearn.model_selectioncross_val_score 方法来计算模型的得分 
scores = cross_val_score(clf, iris.data, iris.target, cv=5,scoring='accuracy')

我们看到这里有个参数 scoring 参数,去scikit-learn官网了解之后发现这里的 scoring参数是默认为 None 的

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

scoring 参数可以有下面这些选择 具体参见 scoring-parameter

这里文档对分类、聚类和回归三种问题下可以使用的参数进行了说明

分类(classification)问题中

常用的是 ‘precision’ 和 ’recall‘ 和 ’f1,三者的关系可以用下图来表示

假设这是一个二元分类的问题

准确率(precision)也就是被分类器检测到的数据中 分类正确的部分

召回率(recall)就是 正类中被分类正确的部分

而F1值就是 准确率和召回率的调和平均数

在实际应用中,如果是做搜索类的问题,那就是在保证召回率的情况下提升准确率

在做垃圾邮件检测之类的问题,就是要保证准确率的情况下提升召回率

具体也就是遇到具体问题看两者的权衡

如果两者都要求高,那就需要保证较高的F1 score

回归类(Regression)问题中

比较常用的是 'neg_mean_squared_error‘ 也就是 均方差回归损失

该统计参数是预测数据和原始数据对应点误差的平方和的均值

公式长这样,了解下就ok了

以上属于个人的一点理解,不足之处大家可以随意吐槽

猜你喜欢

转载自blog.csdn.net/qq_32590631/article/details/82831613