一、混淆矩陣
混淆矩陣(confusion matrix)**於資訊理論,在機器學習、人工智慧領域,混淆矩陣(confusion matrix)又稱為可能性**或是錯誤矩陣,是一種用矩陣呈現的視覺化工具,用於有監督學習,無監督學習通常用匹配矩陣(matching matrix)。其名字源自它容易表明多個類是否有混淆,可以同通過混淆矩陣的一些指標衡量演算法的精度。
分類器的評估與分類器本身同樣重要,評估分類器可信度的乙個基本工具。以乙個二分類問題作為研究物件,矩陣的列表每一列表示**值,每一行表示實際類。
(1)真正類(true positive , tp):被模型**為正類的正樣本
(2)假正類(false positive , fp):被模型**為正類的負樣本
(3)假負類(false negative , fn):被模型**為負類的正樣本
(4)真負類(true negative , tn):被模型**為負類的負樣本
(1)真正類率(true positive rate , tpr)【靈敏度(sensitivity)】:tpr = tp /(tp + fn) ,即正樣本**結果數/正樣本實際數
(2)假負類率(false negative rate , fnr) :fnr = fn /(tp + fn) ,即被**為負的正樣本結果數/正樣本實際數
(3)假正類率(false positive rate , fpr) :fpr = fp /(fp + tn) ,即被**為正的負樣本結果數/負樣本實際數
(4)真負類率(true negative rate , tnr)【特指度(specificity)】:tnr = tn /(tn + fp) ,即負樣本**結果數/負樣本實際數
準確率=正確**正負的個數/總個數(這個指標在python中的交叉驗證時可以求準確率)
覆蓋率(也叫作召回率)=正確**正的個數/實際正的個數 (當然也可以是負覆蓋率)
命中率=正確**正的個數/**正的個數
我們常用的就是分類器的精確度(accuracy),在某些如推薦或資訊獲取領域還會組合使用precision-recall作為評價指標。因為你用於訓練分類器的樣本本身就是總體的乙個抽樣,所以這些指標的數值也僅僅是一種統計上的反映,如果你做多次抽樣訓練,跟別的隨機變數一樣,它一樣會有期望、方差、置信區間這些概念。理論上說,訓練樣本量越大,你得到的這些指標的可信度就越高(即它們以某個概率落在的置信區間越窄)。不幸的是,實際中你未必會有那麼多的樣本,所以機器學習工作者設計出很多種方法來應對資料量不足情況下分類器的訓練與評估,如k步交叉檢驗、留1法、boostrap等等。
二、roc曲線
roc曲線最初源於20世紀70年代的訊號檢測理論,描述的是分類混淆矩陣中fpr-tpr兩個量之間的相對變化情況。如果二元分類器輸出的是對正樣本的乙個分類概率值,當取不同閾值時會得到不同的混淆矩陣,對應於roc曲線上的乙個點。那麼roc曲線就反映了fpr與tpr之間權衡的情況,通俗地來說,即在tpr隨著fpr遞增的情況下,誰增長得更快,快多少的問題。tpr增長得越快,曲線越往上屈,反映了模型的分類效能就越好。當正負樣本不平衡時,這種模型評價方式比起一般的精確度評價方式的好處尤其顯著。
roc是怎麼畫出來的呢,例如在乙個二分類模型中,對於所**得到概率結果,假設已確定乙個閾值,比如說 0.6,大於這個值的例項劃歸為正類,小於這個值則劃到負類中。如果減小閾值,減到0.5,固然能識別出更多的正類,也就是提高了識別出的正例佔所有正例的比例,即tpr,但同時也將更多的負例項當作了正例項,即提高了fpr。為了形象化這一變化,在此引入roc。
三、auc曲線
auc(area under curve)被定義為roc曲線下的面積,顯然這個面積的數值不會大於1。又由於roc曲線一般都處於y=x這條直線的上方,所以auc的取值範圍在0.5和1之間。使用auc值作為評價標準是因為很多時候roc曲線並不能清晰的說明哪個分類器的效果更好,而auc作為數值可以直觀的評價分類器的好壞,值越大越好。
auc = 1,是完美分類器,採用這個**模型時,不管設定什麼閾值都能得出完美**。絕大多數**的場合,不存在完美分類器。
0.5 < auc < 1,優於隨機猜測。這個分類器(模型)妥善設定閾值的話,能有**價值。
auc = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有**價值。
auc < 0.5,比隨機猜測還差;但只要總是反**而行,就優於隨機猜測。
auc的計算方法:
第一種方法:計算出roc曲線下面的面積,即auc的值。我們的測試樣本是有限的,所以得到的auc曲線必然是乙個階梯狀的。計算的auc也就是這些階梯下面的面積之和。計算的精度與閾值的精度有關。
第二種方法:乙個關於auc的很有趣的性質是,它和wilcoxon-mann-witney test(秩和檢驗)是等價的。而wilcoxon-mann-witney test就是測試任意給乙個正類樣本和乙個負類樣本,正類樣本的score有多大的概率大於負類樣本的score。有了這個定義,我們就得到了另外一種計算auc的辦法:得到這個概率。具體來說就是統計一下所有的 m×n(m為正類樣本的數目,n為負類樣本的數目)個正負樣本對中,有多少個組中的正樣本的score大於負樣本的score。當二元組中正負樣本的 score相等的時候,按照0.5計算。然後除以mn。實現這個方法的複雜度為o(n^2)。n為樣本數(即n=m+n)。
第三種方法:實際上和上述第二種方法是一樣的,但是複雜度減小了。它也是首先對score從大到小排序,然後令最大score對應的sample 的rank為n,第二大score對應sample的rank為n-1,以此類推。然後把所有的正類樣本的rank相加,再減去m-1種兩個正樣本組合的情況。得到的就是所有的樣本中有多少對正類樣本的score大於負類樣本的score。然後再除以m×n。
四、lift
lift衡量的是,與不利用模型相比,模型的**能力「變好」了多少。不利用模型,我們只能利用「正例的比例是 (tp+fn) / (tp+fn+fp+tn) 」這個樣本資訊來估計正例的比例(baseline model),而利用模型之後,我們不需要從整個樣本中來挑選正例,只需要從我們**為正例的那個樣本的子集(tp+fp)中挑選正例,這時**的準確率為tp / (tp+fp)。
顯然,lift(提公升指數)越大,模型的執行效果越好。如果tp / (tp+fp)就等於(tp+fn) / (tp+fn+fp+tn)(lift等於1),這個模型就沒有任何「提公升」了(套一句金融市場的話,它的業績沒有跑過市場)
1. sensitivity(覆蓋率,true positive rate)=正確**到的正例數/實際正例總數
recall (true positive rate,or sensitivity) =true positive/total actual positive
2. pv+ (命中率,precision, positive predicted value) =正確**到的正例數/**正例總數
precision (positive predicted value, pv+) =true positive/ total predicted positive
3. specificity (負例的覆蓋率,true negative rate) =正確**到的負例個數/實際負例總數
4、pfp=proportion of false positives= (1-pi1)*(1- specificity) ,把負例錯誤地**成正例的個數佔總數的比例
5、depth=proportion allocated to class 1=ptp+pfp,**成正例的比例
6、pv_plus=precision (positive predicted value, pv+) =ptp/depth,正確**到的正例數佔**正例總數的比例
7、lift==pv_plus/pi1,提公升值。
五、gains
gains (增益) 與 lift (提公升)相當類似:lift chart是不同閾值下lift和depth的軌跡,gains chart是不同閾值下pv+和depth的軌跡,而pv+=lift*pi1,所以它們顯而易見的區別就在於縱軸刻度的不同。
上圖閾值的變化,含義與lift圖一樣。隨著閾值的減小,更多的客戶就會被歸為正例,也就是depth(**成正例的比例,這樣pv+(**到的正例數佔**正例總數的比例)就相應減小。當閾值設定得足夠的小,那麼幾乎所有的觀測值都會被歸為正例(depth幾乎為1),那麼pv+就等於資料中正例的比例pi1了。顯然,跟lift 圖類似,乙個好的分類模型,在閾值變大時,相應的pv+就要變大,曲線足夠陡峭。
分類模型的評估
1.混淆矩陣 對於乙個分類器 二分類 結果和真實情況總共存在四種情況,值分為正類 負類,真實值分分為正類 父類,兩兩組合,共有四種情況,如下所示,即組成乙個混淆矩陣 針對多分類問題,真實情況有n類,情況有n類,所以其混淆矩陣為nxn 準確率即為所有 正確的樣本 樣本總數 即 accuracy tp ...
分類模型的評估方法 F分數 F Score
前面介紹了機器學習中分類模型的精確率 precision 和召回率 recall 評估指標。對於precision和recall,雖然從計算公式來看,並沒有什麼必然的相關性關係,但是,在大規模資料集合中,這2個指標往往是相互制約的。理想情況下做到兩個指標都高當然最好,但一般情況下,precision...
分類評估方法
1.1.1 混淆矩陣 在分類任務下,結果 predicted condition 與正確標記 true condition 之間存在四種不同的組合,構成混淆矩陣 適用於多分類 1.1.2 精確率 precision 與召回率 recall 還有其他的評估標準,f1 score,反映了模型的穩健型 r...