問題環境:
挑出來的西瓜有多少比例是好瓜
好瓜中有多少被挑出來了
混淆矩陣可以這麼解讀:
第乙個字母表示我**的結果對還是錯,t就是true,f就是false;
第二個字母表示,我**的是什麼正p(positive)還是負(negative);
矩陣對角線上的是我**對的
- 查準率,準確率,precision
挑出來的瓜(我**是好瓜)中真實為好瓜的比例,這樣才能判斷我**的準確率是多少嘛 tp
tp+f
p tpt
p+fp
分母是**結果中第一列,正例的和
- 查全率,召回率,recall
好瓜中有多少被我正確挑出來了 tp
tp+f
n tpt
p+fn
-從文式圖理解
- 查準率和查全率的關係
這兩個是一對矛盾的度量。一般不能兼顧。
現在想提高查準率,那麼我就只把我**是好瓜的才拿出來,結果就是準確率上來了,因為我為了保險,只**了1個,準確率100%,但是還有那麼多好瓜,加入還有99個沒有**出來,查的不全啊;如果想提高,查全率,比如挑出來100個瓜都認為是好的,但是只有50個真的是好瓜,查全率為50%,但是準確率下降了。 - f
1 f1
在一些具體場景下,對recall和precision的需求不一樣;
比如在推薦系統中,盡可能希望少打擾使用者,因此更在意準確率;
在逃犯資訊檢索中,不漏掉嫌疑人,更注重查全率;
在醫生檢查患者場景下,健康:患者=100:1,如果想提高準確率,怎麼做?其實,這種場景下考慮的是查全率,所以不會有提高準確率這種要求了。 2∗
p∗pp
reci
sion
+rec
all 2∗p
∗ppr
ecis
ion+
reca
ll上述公式,更注重較小值
很多情況,ml產生的結果是概率**,然後定乙個閥值來判斷正負類別,實際上,根據這個概率**,可以對測試樣本進行排序,最可能的正類排在最前面,最不可能的正類排在後面。這裡統一說正類,因為我們設定就是要**它是正類的概率大小嘛~
roc體現了一般情況下模型的泛化能力好壞
別忘了,起初,我們是要**這個樣本為正類的概率,那麼我們的**結果就有真正率(recall),假正率。
- roc曲線繪製過程 給m
+ m
+個正例,m−
m
−個負例,根據模型**結果,對樣例進行排序,然後先把閥值設定為最大,此時認為所有的都是負例,此時真正率,假正率都是0,即(0,0)。
然後將分類閥值依次設定為每個樣例的**值,即依次將每個樣本劃分為正例。設前乙個標記點為(x,y),若當前的樣本為真正例,對應標記點更新為(x
+1m−
,y) (x+
1m−,
y),若當前的樣本為假正例,對應標記點更新為(x
,y+1
m+) (x,
y+1m
+),然後用線段連線相鄰點。
機器學習 評估指標
2.1 錯誤率與精度 m個樣本,有a個分錯。錯誤率 e a m 精度 acc 1 a m 2.2 查準率 查全率和f1 tp 真正例 tn 真反例 fp 假正例 fn 假反例 查準率 p tptp fp 查全率 r tptp fn f1是查準率和查全率的調和平均數 1f 1 12 1p 1r 即 f...
《機器學習》隨心記 周志華版 評估方法
這學期,將學習周志華老師的 機器學習 這本書,一周兩章,每章我都會做上一點筆記,筆記或多或少,或工整或潦草,一切根據我當時的時間和心情而定,簡單的定義或者易理解的知識我可能附上定義甚至不寫,不懂的地方會特別強調指出。所以這個學習系列我稱為 機器學習 隨心記。第一部分 問題 p24 第一段話是什麼意思...
機器學習 模型評估指標
from sklearn.metrics import accuracy score print 準確率 accuracy score y true,y pred,normalize true print 正確分類的數量 accuracy score y true,y pred,normalize ...