天天看點

機器學習基礎——徹底搞懂Precision\Recall\F1\P-R\ROC

一直以為自己了解這些概念,但是其實隻是聽說過而已。這些概念的釋義來自于周志華教授的《機器學習》,都屬于對機器學習算法的性能度量。

一、錯誤率與精度

還是使用書上的定義寫的明确,test set中所有樣本預測對和預測錯所占的比例就是這兩個名額,求和為1。但是其實這裡表述并不是很好,這裡的“精度”更好的表示是“準确度”(Accuracy),這兩個名額隻是在“對”與“錯”層面進行分析,并未涉及出錯原因。

機器學習基礎——徹底搞懂Precision\Recall\F1\P-R\ROC

 二、查準率&查全率&PR曲線&F1

首先要介紹混淆矩陣,注意這個僅僅适用于二分類問題,碰到其他問題可以進行拓展。這個的确比較“混淆”人,符号标記很亂,中文翻譯也很拗口。首字母表示了預測的結果這件事的正确與否:是True還是False。後面字母表示了預測的結果。這四個位置的數值加起來等于樣本的總數。

機器學習基礎——徹底搞懂Precision\Recall\F1\P-R\ROC

 接下來定義Precision和Recall,P的分母是分類器給出的正例集合;R的分母是資料集中所有的正例集合。兩個率分别反應模型查的準不準,和,查的全不全。um這個感覺也有點難記,可以這樣記召回率:因為有FN全負面資訊,是以要“召回”。

機器學習基礎——徹底搞懂Precision\Recall\F1\P-R\ROC

 實際模型對每個樣本的預測結果都是0-1之間連續的,是以調整這個門檻值就可以獲得每個樣本變動後對應的混淆矩陣(可以視為考察門檻值對模型分辨結果的影響)。此時對應的多個P-R點可以進行繪制成為PR曲線,類似下圖這樣。曲線下部所圍成的面積越大代表模型性能越好。也可以使用平衡點來度量學習器的好壞,在平和點處P=R。

機器學習基礎——徹底搞懂Precision\Recall\F1\P-R\ROC

 F1參數本質是對兩個率進行調和平均運算,更加關注較小值對最終結果的影響。

機器學習基礎——徹底搞懂Precision\Recall\F1\P-R\ROC

三、受試者工作特性 ROC

這個名字是真的拗口:Receiver Operating Characteristic,是從軍事和醫學中引申過來的。思想和P-R曲線很類似,使用門檻值對連續預測結果進行分類,以此擷取模型性能曲線。ROC曲線的縱軸和橫軸比較奇葩,需要特殊記憶。

機器學習基礎——徹底搞懂Precision\Recall\F1\P-R\ROC

縱軸 TPR本質上就是召回率Recall,分類器将dataset中所有正例檢測出來了多少,越高越好;橫軸FPR在考察dataset中所有負例檢測錯了多少,約小越好。是以一個優質的模型的ROC特性應當向左上方突出。AUC是Area Under ROC Curve的縮寫,是ROC曲線圍成的面積,越大越好。

機器學習基礎——徹底搞懂Precision\Recall\F1\P-R\ROC

繼續閱讀