1. 程式人生 > >機器學習面試--算法評價指標

機器學習面試--算法評價指標

匹配 預測 src 數據挖掘 學習 關系 目標 mina abs

機器學習分為三個階段

  • 第一階段:學習模型。采用學習算法,通過對訓練集進行歸納學習得到分類模型;

  • 第二階段:測試模型。將已經學習得到的分類模型用於測試集,對測試集中未知類別的實例進行分類。

  • 第三階段:性能評估。顯然,通過測試集產生的分類未必是最佳的,這就導致對測試集的分類可能產生錯誤。而人們希望盡量得到信呢個最佳的分類模型,就是的對分類器性能評價至關重要。只有通過優秀的評價標準才能選擇出性能更好的分類器。

不同機器學習算法的評價指標:

技術分享圖片

回歸評估

回歸是對連續的實數值進行預測,即輸出值是連續的實數值,而分類中是離散值。

  • (1)平均絕對誤差(Mean Absolute Error,MAE)又被稱為 l1 範數損失(l1-norm loss)

    技術分享圖片

  • (2)平均平方誤差(Mean Squared Error,MSE)又被稱為 l2 範數損失(l2-norm loss)

    技術分享圖片

分類評估

準確率(accuracy)

計算公式Accuracy = (TP+TN)/(TP+TN+FP+FN)

正負樣本不平衡的情況下,準確率這個評價指標有很大的缺陷。比如在互聯網廣告裏面,點擊的數量是很少的,一般只有千分之幾,如果用Accuracy,即使全部預測成負類(不點擊)Accuracy也有 99% 以上,沒有意義。

精確率(precision)

  • 定義:正確分類的正例個數占分類為正例的實例個數的比例,也稱查準率

  • 計算公式TP/(TP+FP)

召回率(recall)

  • 定義:正確分類的正例個數占實際正例個數的比例 也稱查全率

  • 計算公式TP/(TP+FN)

F-值(F-Measure)

    • 定義:F-Measure是查全率與查準率加權調和平均,又稱為F-Score

    • 計算公式:(1)F1 = 2PR/(P+R)=2TP/(2TP+FP+FN)
      (2)F- = (α^2+1)PR/(α^2)P + R)

一般來說,Precision就是檢索出來的條目(比如:文檔、網頁等)有多少是準確的,Recall就是所有準確的條目有多少被檢索出來了。F值就是用來

權衡Precision和Recall這兩個指標的。

上述的評價標準對於類分布的改變較敏感。

MCC 馬修斯相關系數

MCC(Matthews correlation coefficient):是應用在機器學習中,用以測量二分類的分類性能的指標[83]。該指標考慮了真陽性、真陰性和假陽性和假陰性,通常認為該指標是一個比較均衡的指標,即使是在兩類別的樣本含量差別很大時,也可以應用它。MCC本質上是一個描述實際分類與預測分類之間的相關系數,它的取值範圍為[-1,1],取值為1時表示對受試對象的完美預測,取值為0時表示預測的結果還不如隨機預測的結果,-1是指預測分類和實際分類完全不一致。

技術分享圖片

衡量不平衡數據集的指標比較好。

對數損失函數(Log-loss)
??在分類輸出中,若輸出不再是0-1,而是實數值,即屬於每個類別的概率,那麽可以使用Log-loss對分類結果進行評價。這個輸出概率表示該記錄所屬的其對應的類別的置信度。比如如果樣本本屬於類別0,但是分類器則輸出其屬於類別1的概率為0.51,那麽這種情況認為分類器出錯了。該概率接近了分類器的分類的邊界概率0.5。Log-loss是一個軟的分類準確率度量方法,使用概率來表示其所屬的類別的置信度。Log-loss具體的數學表達式為:

技術分享圖片

其中,yi是指第i個樣本所屬的真實類別0或者1,pi表示第i個樣本屬於類別1的概率,這樣上式中的兩個部分對於每個樣本只會選擇其一,因為有一個一定為0,當預測與實際類別完全匹配時,則兩個部分都是0,其中假定0log0=0。

AUC(Area Under Curve)

ctr(click through rate)在線廣告的點擊率。

不可見曝光的ctr大概在1/1000左右,對於可見曝光的廣告,其點擊率則是在1/100左右,可見多數的曝光是沒有click發生的。因此,投放一個可能會被高
概率點擊的廣告是非常重要的,一方面有效利用了本次曝光,同時一方面也實現了流量變現。

因此,展現的廣告完成準確的點擊率預估顯得非常重要。

ctr預估過程:

即利用歷史log,進行訓練model,線上server加載這個
model。當有廣告展現請求時候,server根據請求的上下文信息計算出候選廣告的預估點擊率,從其中選擇出
最高預估ctr進行展現。

常見的feature有:

  • 廣告主特征:如行業分類
  • 受眾特征:如cookie,性別等
  • 廣告自身特征:如物料的類型(文字鏈、圖片、flash等類型)、廣告的核心詞等。

AUC在特征選擇中的作用

在優化模型的時候,我們期望能夠加入足夠多有典型區分度的特征。特征有良好的區分度,有助於在篩選廣告
階段進行準確的排序。

對於同一個網頁上的廣告位而言,用戶在瀏覽頁面的時候,從頁面上方到下方,廣告位的點擊率是驟降的,甚至第二位的position,其ctr相對第一position
的ctr會下降90%。

在這種情況下,假定候選廣告按照預估ctr(pCTR)進行降序排列後,top前2個廣告(命名為a、b)需要選擇出
進行展現。一個特征的加入或者缺失,都會影響到a、b的排名。假設a的收益更大,如果排序為b、a,那顯然
a的ctr會下降較多,而b的收益又較小,那總體上,本次廣告的曝光展現並不是最優的。所以,任何一個特征
的引入或者刪除,都要基於實際的歷史樣本來進行評估這麽做的影響,而AUC恰好是用來量化這種影響的重要
指標,或者說AUC是用來評估模型排序能力的重要指標。

在介紹AUC之前,需要引入兩個前提概念:ROC以及confusion matrix。

  • ROC的全名叫做Receiver Operating Characteristic,其主要分析工具是一個畫在二維平面上的曲線
  • ——ROC curve。平面的橫坐標是false positive rate(FPR),縱坐標是true positive rate(TPR)

技術分享圖片

定義roc曲線下面的面積稱之為AUC(area under curve)。

總面積為單位矩形(1*1),而AUC的值範圍是0~1。一般的,當加入一個高區分度的特征時候,模型的AUC通常是增加的,圖片
中的虛線下的面積是0.5。
AUC的計算,需要引入confusion matrix(混淆矩陣)

一個典型的兩類混淆矩陣如下:
| 正樣本個數P | 負樣本個數N | predict |
| ————– | :————: | ——: |
| true positive | false positive | Y |
| false negative | true negative | N |

在AUC的計算中,我們站在正樣本的角度來看問題,即使用相關的兩個數據項,true positive以及false
positive。在上述的分類結果下,正樣本都被分正確的比率是:

tpr = tp / P(真實正樣本的個數TP+FN)
,而false positive的比率為:

fpr = fp / N(真實負樣本的個數 FP+TN)
將所有廣告按照pCTR降序排列,再結合實際的樣本數據,就可以計算AUC了。

discrimination threshold,直譯為”區分閾值”。 指的是,每次在一個pCTR 上進行劃分,取劃
分這個pCTR 為閾值,高於這個閾值的是預估的正樣本,低於這個閾值,是預估的負樣本。在這種情況下,計
算當前這個劃分的tpr 和fpr 。得到一個點對( fpr , tpr )。每個劃分都會得到一個點對,那麽就可以繪
制出ROC,進而計算出AUC。

技術分享圖片

為了計算簡答,給出了8個樣本,4個正樣本,4個負樣本。(當然,實際情況下,正負樣本的比例遠比這個大
的,是imbalance的)為了區分,其中1表示實際的樣本是發生了click,而0則表示實際情況下並沒法有產生

click。而pCTR為預估的ctr。我們的期望是我們的預估的ctr高的廣告,其實際應該有click,這樣就說明我的
預估是有效且準確的,當然沒有click發生也是可以理解,預估目前還做不到100%的準確。

其劃分區間的方式是:

  • 在0.9劃分,認為>=0.9的都是正樣本,<0.9的都是負樣本。次劃分下, , 。
  • 繼續,在0.8處劃分,認為>=0.8的都是正樣本,即會高概率發生click的,<0.8則預估為負樣本,此劃
  • 分下, , 。
  • 繼續,在0.7處劃分,認為>=0.7的預估為正樣本,<0.7的為負樣本。此時,有1個是誤報的。
  • , .
  • 以此類推,可以計算出所有的fpr、tpr,按照這些點對畫出ROC曲線即可。當樣本數量足夠多情況下,ROC曲線就越平滑。計算的時候將曲線下的每個”小矩形”進行面積累加即可.

理想的排序能力是按照pCTR進行預估降序排列
後,所有的正樣本都排在負樣本的前面,即預估會排在前面的廣告都會被click,此時靠前面的幾次劃分
fpr都是fpr = 0 / N

模型優化的目標是就是努力向這個理想的目標靠攏。

ROC曲線和AUC的優勢:不受類分布的影響,適合與評估、比較類分布不平衡的數據集。因此ROC曲線與AUC已被廣泛用於醫療決策制定、模式識別和數據挖掘等領域。但是ROC和AUC僅適合於兩類問題 ,對多類問題 ,無法直接應用

機器學習面試--算法評價指標