1. 程式人生 > >零基礎學習人工智慧-03如何進行科學地評估

零基礎學習人工智慧-03如何進行科學地評估


3.怎麼科學地評估?

3.1. 線下評估:時間劃分樣本

   在模型真正投入使用前,利用歷史樣本評估模型效果。

   訓練集:
   訓練資料:T-t月的資料, 用於訓練模型
   測試資料:T-1月的資料, 用於評估模型

 

3.2. 線上評估:A/B test

在【同質樣本集】上同時使用不同的策略,排除其他因素干擾

   評估指標:準確率(命中率,響應率)
           其他業務指標(收入,違約率)

 

3.3. 模型評估指標

二分類問題的預測結果可能正確,也可能不正確。

  • 結果正確存在兩種可能:原本對的預測為對(True Positives),原本錯的預測為錯(False Negatives);
  • 結果錯誤也存在兩種可能:原本對的預測為錯(True Neagtives),原本錯的預測為對(False Positives);
  • 其中Positives代表預測是對的,Negatives代表預測是錯的;True代表原本為對,False代表原本為錯。
  • 原本對的預測為對 TP,原本錯的預測為錯 FN, 原本對的預測為錯TN,原本錯的預測為對FP。
  • P = TP + FN
  • N = TN + FP

1). 準確率(accuracy)

整個樣本當中,原本是對的比例(原本是對的預測為對+原本是對的預測為錯)
accuracy = TP+TN/(P+N)
越大越好,1為理想

2). 精準率(precision)

預測為對的當中,原本為對的比例
precision = TP/(TP+FP)
越大越好,1為理想

3). 召回率(recall)

原本為對的當中,預測為對的比例
precision = TP/(TP+FN)
越大越好,1為理想

4). 綜合評價指標(F-Measure)

Precision和Recall加權調和平均
F = 2PR/(P+R)
越大越好,1為理想狀態,此時precision為1,recall為1

5). fp rate

原本是錯的預測為對的比例
fp = FP/N
越小越好,0為理想狀態

6). tp rate

原本是對的預測為對的比例
tp rate = TP/P
越大越好,1為理想狀態

案例說明:

【實際情況】1000個水果(500個蘋果,500個梨)目標挑出所有的蘋果。
【模型預測】以y>0.5為閾值,找出共300個水果,認為是評估,其中有250個蘋果,另外還錯誤的把50個梨也當作蘋果挑出來了。

【分析】

  1. 準確率accuracy = (TP+TN)/(P+N) = (250+450)/1000 = 0.7
  2. 精確率precision = TP/(TP+FP) = 250/(250+50) = 0.833
  3. 召回率recall = TP/(TP+FN) = 250/(250+250) = 0.5
  4. 綜合評價指標F-Measure= 2PR/P+R = 20.830.5/(0.83+0.5) = 0.62

評價二分類模型好壞的指標:AUC

  • ROC(Receiver Operating Characteristic)曲線和AUC(Area Under Curve)常被用來評價一個二值分類器(binary classifier)的優劣。
  • 相比準確率、召回率、F-score這樣的評價指標,ROC曲線有這樣一個很好的特性:當測試集中正負樣本的分佈變化的時候,ROC曲線能夠保持不變。在實際的資料集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試資料中的正負樣本的分佈也可能隨著時間變化。

ROC曲線(Receiver Operating Characteristic)

得到演算法的一組(fp rate, tp rate)然後做出的曲線(沒辦法用大小來衡量)

AUC(Area Under Curve)

由來:因為ROC曲線沒辦法用大小來衡量,所以引入AUC的概念。
含義:ROC曲線下的面積
越大越好,1為理想狀態

AUC的含義

The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example. - AUC值是一個概率值,當你隨機挑選一個正樣本以及一個負樣本,當前的分類演算法根據計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值。 - 當然,AUC值越大,當前的分類演算法越有可能將正樣本排在負樣本前面,即能夠更好的分類。

AUC的計算

  • AUC(Area Under Curve)被定義為ROC曲線下的面積,這個面積的數值不會大於1。
  • 由於ROC曲線一般都處於y=x這條直線的上方,所以AUC的取值範圍在0.5和1之間。使用AUC值作為評價標準是因為很多時候ROC曲線並不能清晰的說明哪個分類器的效果更好,而作為一個數值,對應AUC更大的分類器效果更好。