1. 程式人生 > >sklearn中lr模型的評價指標函式,含義及應用程式碼示例

sklearn中lr模型的評價指標函式,含義及應用程式碼示例

一、從線性迴歸到邏輯迴歸 線性迴歸解決的是連續型數值的預測問題,例如預測房價,產品銷量等。 邏輯迴歸解決的是分類問題,從分類數量上看,有二項分類和多項分類。 二、邏輯迴歸基本概念 三、模型效果評估

  1. 準確率 準確率 = 正確預測數 / 測試集樣本數 Scikit-learn中自帶的準確率計算方法 from sklearn.metrics import accuracy_score accuracy = accuracy_score(admission, pred_label)
  2. 精確率 二項分類問題中,觀察值和預測值關係的混淆矩陣表示: 在這裡插入圖片描述

精確率 = TP / (TP + FP) 真正例/所有被預測為正例的資料

  1. 召回率 召回率 = TP / (TP + FN)

Scikit-learn中提供了計算精確率和召回率的計算函式,可結合K折交叉驗證(K-Fold Cross Validation)使用。

  1. 綜合評價指標(F-measure)

(1)f1 綜合評價指標:精確率和召回率的調和均值(harmonic mean),或加權平均值,也稱為F-measure或F-score。F-measure 平衡了精確率和召回率。當F-measure較高的時候,說明模型效果比較好。(精確率和召回率都越高越好,但在一些極端情況下,兩者是矛盾的)

F-measure = 2 * Precision * Recall / (Precision + Recall) Scikit-learn中提供了直接計算F-measure的方法: f1 = cross_val_score(lor, data[[‘gpa’]], data[‘Admission’], cv = kf, scoring = ‘f1’)

(2)ROC & AUC 假陽性概率(False Positive Rate)(誤警率) FPR = FP / (TN + FP)

1)ROC曲線(Receiver Operating Characteristic curve,ROC curve) 以假陽性概率為橫座標,以真陽性概率(召回率)為縱座標所畫的曲線。可以理解為它是一系列混淆矩陣的結果組合所畫出的曲線。一般情況下,我們得到一個迴歸模型的混淆矩陣,都是在提前設定好一個閾值的前提下獲得的。但如果我們調整這個閾值,得到的混淆矩陣就不同了。在模型預測的所有概率中,每一個概率值都可以作為一個閾值,相應的,我們就能得到一系列的混淆矩陣。對於每個混淆矩陣,我們都能計算出相應的假陽性概率FPR和真陽性概率TPR。然後我們以這些FPR為橫座標軸,以TPR為縱座標軸,所得到的曲線就是ROC。

理想的情況下,如果存在一個閾值,大於這個閾值的都是陽性的,低於這個閾值的都是陰性的,則這個模型能夠非常完美的區分陽性和陰性.此時對應的真陽性概率TPR為1,假陽性概率FPR為0,對應座標軸上的**(0,1)點**,即左上角的點。所以如果ROC曲線經過該點,它就是完美的。

2)AUC(Area Under the Curve)是指ROC曲線下面的面積。從AUC定義的角度來理解,AUC就是從所有標籤為1的樣本中隨機選取一個樣本, 從所有標籤為0的樣本中隨機選取一個樣本,然後根據分類器對兩個隨機樣本進行預測,假設標籤為1的樣本預測為1的概率為p1,標籤為0的樣本預測為1的概率為p0,那麼p1>p0的概率就等於AUC。所以AUC反應的是分類器對樣本的排序能力。

一般情況下,AUC值介於0.5和1之間,AUC值越大,說明分類器效果越好,ROC曲線越接近於(0,1)點。AUC值越小,說明分類器效果越差,跟隨機分類沒什麼差別,ROC曲線越趨近於下圖中的紅線。如果AUC值小於0.5,則可能是樣本資料標籤出了問題。 另外值得注意的是,AUC對樣本類別是否均衡並不敏感,這也是不均衡樣本通常用AUC評價分類器效能的一個原因。