【Python学习】 - sklearn学习 - 评估指标precision_score的参数说明
函數聲明:
precision_score(y_true, y_pred, labels=None, pos_label=1, average='binary', sample_weight=None)
其中較為常用的參數解釋如下:
y_true:真實標簽
y_pred:預測標簽
average:評價值的平均值的計算方式。可以接收[None, 'binary' (default), 'micro', 'macro', 'samples', 'weighted']對于多類/多標簽目標需要此參數。下面進行詳細說明:
如果是None,則返回每個類的分數。否則,這決定了對數據進行平均的類型用下面幾種統計方法的哪一種:
?
先說對于'micro' :
這兩種寫法是等價的
print(precision_score(y_test, y_pred,average='micro'))
print(np.sum(y_test == y_pred) / len(y_test))
?
以下內容中,P表示二分類時精確率的計算結果??部分內容參考
' macro '? : 相當于類間不帶權重。不考慮類別數量,不適用于類別不均衡的數據集,其計算方式為:?各類別的P求和/類別數量
' weighted ' : 相當于類間帶權重。各類別的P?×?該類別的樣本數量(實際值而非預測值)/?樣本總數量
舉個例子:
如實際樣本中,0類有98個樣本,1類有2個樣本,3類有100個樣本,共有3類,樣本總數為20。
預測結果中,0類全部預測為3類,全部錯誤;1類全部預測正確;3類全部預測為0類,全部預測錯誤。
則P_macro = 0 + 1 + 0 / 3 = 0.33333333
P_weighted = 0×98 + 1×2 + 0×100 / 200 = 2/200 = 0.01
?
再舉個例子:
如共有100個樣本,0類98個,1類2個;
預測結果為全0
則P_macro = 0.98 +?0 / 2 = 0.49
P_weighted = 98×0.98 + 0×2 / 100 = 2/200 = 0.9604
得出結論:
對于類別不均衡的分類模型,采用macro方式會有較大的偏差,采用weighted方式則可較好反映模型的優劣,因為若類別數量較小則存在蒙對或蒙錯的概率,其結果不能真實反映模型優劣,需要較大的樣本數量才可計算較為準確的評價值,通過將樣本數量作為權重,可理解為評價值的置信度,數量越多,其評價值越可信。
?
再給個鏈接給予參考:https://www.cnblogs.com/harvey888/p/6964741.html
總結
以上是生活随笔為你收集整理的【Python学习】 - sklearn学习 - 评估指标precision_score的参数说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 招行账单分期最高多少钱 招行账单分期最高
- 下一篇: 【NC14 按之字形顺序打印二叉树】