网站的建设方面,武昌做网站公司,公司网站建设行为规定,wordpress全站网易云音乐播放我们通常希望#xff0c;在使用GridSearchCV或cross_val_score进行模型选择时能够使用AUC等指标。scikit-learn提供了一种非常简单的实现方法#xff0c;那就是scoring参数#xff0c;它可以同时用于GridSearchCV和cross_val_score。你只需要提供一个字符串#xff0c;用于…我们通常希望在使用GridSearchCV或cross_val_score进行模型选择时能够使用AUC等指标。scikit-learn提供了一种非常简单的实现方法那就是scoring参数它可以同时用于GridSearchCV和cross_val_score。你只需要提供一个字符串用于描述想要使用的评估指标。
举例我们想用AUC分数对digits数据集中“9与其他”任务上的SVM分类器进行评估。想要将分数从默认值修改为AUC可以提供‘roc_auc’作为scoring参数的值
print(Default scoring:{}.format(cross_val_score(SVC(),digits.data,digits.target9)))
explicit_accuracycross_val_score(SVC(),digits.data,digits.target9,scoringaccuracy)
print(explicit accuracy score:{}.format(explicit_accuracy))
roc_auccross_val_score(SVC(),digits.data,digits.target9,scoringroc_auc)
print(AUC score:{}.format(roc_auc)) 类似的我们可以改变GridSearchCV中用于选择最佳参数的指标
digitsload_digits()
ydigits.target9
X_train,X_test,y_train,y_testtrain_test_split(digits.data,y,random_state0)
param_grid{gamma:[0.0001,0.01,0.1,1,10]}
gridGridSearchCV(SVC(),param_gridparam_grid)
grid.fit(X_train,y_train)
print(Grid-Search with accuracy)
print(最好参数:{}.format(grid.best_params_))
print(最好精度accuracy{}.format(grid.best_score_))
print(测试集AUC{}.format(roc_auc_score(y_test,grid.decision_function(X_test))))
print(测试集精度{}.format(grid.score(X_test,y_test))) 使用AUC评分来代替
gridGridSearchCV(SVC(),param_gridparam_grid,scoringroc_auc)
grid.fit(X_train,y_train)
print(Grid-Search with AUC)
print(最好参数:{}.format(grid.best_params_))
print(最好精度accuracy{}.format(grid.best_score_))
print(测试集AUC{}.format(roc_auc_score(y_test,grid.decision_function(X_test))))
print(测试集精度{}.format(grid.score(X_test,y_test))) 在使用精度时选择的参数是gamma0.0001而使用AUC时选择的事gamma0.01在两种情况下交叉验证精度与测试集精度时一致的。但是使用AUC时对应的AUC更高甚至对应的精度也更高。
对于分类问题scoring参数最重要的取值包括accuracy默认值精度roc_aucROC曲线下方的面积average_precision准确率-召回率曲线下方的面积、f1、f1_marco、f1_mirco、f1_weighted分数及各种加权变体。
对于回归问题scoring参数最常用的取值包括r2分数、mean_squared_error均方误差和mean_absolute_error平均绝对误差。