一般我们在模型训练过程中,会采用K折交叉验证的方法来验证模型的表现,从而进行调参,一般我们会用到
sklearn.model_selection 的 cross_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了
以上属于个人的一点理解,不足之处大家可以随意吐槽