當前位置:股票大全官網 - 股票投資 - 庫存矩陣

庫存矩陣

在《理解交叉驗證》壹文中,我們談到了使用AUC來比較不同模型的質量,那麽AUC是什麽呢?它如何衡量壹個模型的質量?除了AUC,還有其他評價方法嗎?在本文中,我們將討論這些問題。

要理解AUC,我們需要從另壹個概念開始——混淆矩陣。混淆矩陣是壹個二維方陣,主要用於評價二元分類問題的好壞(比如預測妳有沒有心臟病,股票漲跌等等。).妳可以問多個分類問題。我該怎麽辦?實際上,多分類問題仍然可以轉化為兩分類問題進行處理。下圖是用來判斷自己是否有心臟病的混淆矩陣:

縱向看混淆矩陣,反映的是生病和沒生病的人數。上圖中,真正患心臟病的人數為真陽性+假陰性,不患心臟病的人數為假陽性+真陰性;;同樣,橫向看混淆矩陣,表明模型預測的心臟病人數是真陽性+假陽性,而預測的無心臟病人數是假陰性+真陰性。

把兩個方向放在壹起看,我們稱之為真正,我們稱之為真負。這兩個區域是模型預測的正確部分。還有兩種模型預測誤差。假陽性表示預測人會生病,但實際上並沒有生病。假陰性表示人們被預測生病,但他們實際上生病了。

概念很多,但不難記。如妳所見,這些名詞都是圍繞預測命名的——預測生病時稱為“真/假陽性”,預測沒生病時稱為“真/假陰性”。

上圖中,模型預測正確的部分用綠色填充,其比例也叫準確率:

單純的精度不足以評價模型的好壞。比如下面這種情況,雖然準確率可以達到80%,但是在實際患病人群中,模型的預測成功率只有50%,顯然不是壹個好的模型。

因此,我們需要引入更多的指標,敏感度(或回憶)表示在實際患者中預測疾病成功的概率,敏感度壹詞也有“過敏”的意思,與疾病相對應,因此更容易記憶:

既然有衡量患病(陽性樣本)的指標,就壹定有衡量非患病(陰性樣本)的指標。特異性用於表示在實際上未患病的人中預測未患病的成功概率,即,

特異性這個詞的意思是“免疫”,可以和沒生病聯系在壹起,所以也很好記。

這兩個指標的出現,可以更好的幫助妳比較車型之間的差異,在其中做出選擇。比如,當兩個模型的準確率差不多時,如果更註重預測疾病的效果,就應該選擇敏感度值高的壹個;相反,如果妳更註重預測不生病的效果,就應該選擇特異性更高的那個。

再者,將這些指標圖形化可以得到更直觀的評價結果,ROC(受試者工作特性)曲線就是其中之壹。

我們知道分類模型(比如“logistic回歸”)的結果是大於0小於1的概率。這個時候我們還是需要壹個門檻來定義自己是不是有病。通常我們把閾值設置為0.5,這樣當結果大於0.5時,就可以判斷我們有病,否則就可以判斷我們沒病。

閾值可以取0到1之間的任何值。對於每個閾值,都有壹個混淆矩陣與之對應。有了混淆矩陣,我們可以找到壹對敏感性和特異性。通過這兩個數字,我們可以在壹個以1-特異性為橫坐標,靈敏度為縱坐標的坐標系上畫出壹個點,把所有可能的閾值產生的點連接起來。

我們來看壹個具體的例子。假設我們對老鼠做研究,希望通過老鼠的體重來預測其患心臟病的概率。我們使用邏輯回歸算法來建模。下圖顯示了預測結果。圖中有10個小鼠樣本點,其中紅點代表實際健康的小鼠,藍點代表實際患病的小鼠。這些點由邏輯回歸曲線擬合。圖中還有壹條P=0.5的直線表示閾值為0.5。可以看出,高於P=0.5的5只小鼠被預測為患病,而另外5只小鼠被預測為健康,準確率為80%:

我們根據上面的數據畫壹個ROC曲線。首先,閾值是1,此時預測所有的小鼠都沒有生病。根據樣本的真實病情,可以得到如下混淆矩陣。

根據上面的混淆矩陣,我們可以計算出壹組靈敏度和特異性的值。然後,我們不斷調整閾值,以獲得所有的靈敏度和特異性對。因為我們這裏的樣本點比較少,所以可以根據樣本點對閾值進行采樣,仍然用橫線來表示閾值。那麽所有閾值的采樣情況如下:

我們列出了與這些閾值相對應的所有混淆矩陣:

然後,計算對應於這些混淆矩陣的靈敏度和1-特異性:

根據該表,1-特異性作為橫軸,靈敏度作為縱軸。壹般在繪制ROC曲線時,我們會將1-特異性對應的坐標軸記為FPR(假陽性率),靈敏度對應的坐標軸記為TPR(真陽性率),如下:

ROC曲線有以下特點:

根據ROC曲線的第1條特征:“曲線越靠近左上角,模型的效果越好”,意思是更好的模型曲線下面積越大。我們稱ROC曲線下的面積為AUC(曲線下面積)。有了這個概念,模型的質量就可以只用壹個數值來衡量了。上述示例模型的AUC如下:

通常,我們使用AUC來評估模型。既然是“正常”,就必然有例外:當患病率(或陽性樣本比例)很小時,Ture Negative會很大,這個值會影響FPR,使其變小。為了避免這種影響,我們可以用另壹個指標代替FPR:精度。

精度的含義是預測有病和實際有病的樣本比例;這樣,把精度和靈敏度結合起來,會讓我們更加關註疾病(陽性樣本)的預測效果,而機器學習中的另壹個效果指標:F1評分負責這件事。

在上面的公式中,回憶等同於敏感。和AUC壹樣,兩個模型是相互比較的。F1分值越大,預測效果越好,F1分值可以更好的衡量陽性樣本的預測效果。

本文用壹個醫學上的例子——是否患有心臟病——來講什麽是混淆矩陣,ROC曲線,AUC,F1評分。其中,我們還壹起學習了ROC曲線的繪制方法。最後,我們還談到了AUC和F1評分以及它們之間的細微差別。

應該註意的是,兩分類評估不限於對患病和非患病兩種情況的分類。考慮到普適性,妳完全可以用陽性樣本代替本文中的心臟病,用陰性樣本代替非心臟病。