cross_val_score的 scoring參數值解析

一般我們在模型訓練過程中,會採用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了

 

以上屬於個人的一點理解,不足之處大家可以隨意吐槽

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章