零基礎學習人工智慧-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個梨也當作蘋果挑出來了。
【分析】
- 準確率accuracy = (TP+TN)/(P+N) = (250+450)/1000 = 0.7
- 精確率precision = TP/(TP+FP) = 250/(250+50) = 0.833
- 召回率recall = TP/(TP+FN) = 250/(250+250) = 0.5
- 綜合評價指標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更大的分類器效果更好。