Ref.: Classification
昨天講了Threshold、TP/TN/FP/FN、Accuracy、Precision、Recall,忘了趕快回去看。
現在開始講今天的內容囉。
先把圖貼上來!
靠這張圖,來定義這邊會用到的兩個rate
**ROC (receiver operating characteristic curve)**就是TPR與FPR構成的圖:
還記得昨天按照Probability排列的圖嗎? 如果Threshold = 0,通通Positive,看看TPR和FPR會怎麼樣吧~。
**AUC (Area Under the ROC Curve)**則是ROC curve下的面積,AUC可以視為所有可能的Threshold的效率評估方法。像上圖中,所有點按照Prediction排列以後,隨便選一個綠點跟隨便選一個紅點,AUC可以代表綠點在紅點右邊的可能性。
看的出來AUC不會被乘以常數(Scale)而改變,也不會因為Threshold增加減少而改變。也因此在calibrated probability outputs時AUC不會有影響。想要改變Threshold去降低False-Positive時,AUC也不是個有用的metrics。
這邊所指的Prediction bias跟線性函數的b
不一樣。這邊是指prediction bias = 平均預測值-實際值
,平均預測20%是病毒,實際上只有1%是病毒,Predication bias = 19%
。
會有這個偏差是因為:
這邊指的pipeline應該是指 Machine learning pipeline, 資料在這裡
Machine learning pipelines are cyclical and iterative as every step is repeated to continuously improve the accuracy of the model and achieve a successful algorithm.
或許可以用一些後處理,像是calibration layer去降低bias,但這種方法有時候是治標不治本,而且也需要時常因為各種狀況去更新calibration layer。
當然,看Prediction Bias牽扯到兩個數字的平均的差,所以我們在檢查Prediction bias時不會只看單一case,而是會觀察當原本label平均是多少時,預測值是多少。
有點饒口,更進一步說是,把足夠多的資料Grouping一起,每個Group去觀察平均值與預測值。
Group的方法可以依照target prediction線性分群,也可以用quantiles去分群
之後就可以畫出Google看到的圖:
其中每個點有1000筆data,x軸代表model對這1000筆資料的平均預測值;y軸代表這1000筆資料的實際平均值。
兩個值都是取過對數log處理的喔!
超出範圍太多的點,代表那1000筆資料可能有些問題,像是training set代表不夠充分、或是有些subset雜訊太多、又有可能是太早做regularize(試試看減少lambda會不會有改善)。
OK,Classification就到這邊為止。