如何評(píng)估模型好壞

介紹


? ? ? ?“所有模型都是壞的,但有些模型是有用的”。我們建立模型之后,接下來就要去評(píng)估模型,確定這個(gè)模型是否‘有用’。當(dāng)你費(fèi)盡全力去建立完模型后,你會(huì)發(fā)現(xiàn)僅僅就是一些單個(gè)的數(shù)值或單個(gè)的曲線去告訴你你的模型到底是否能夠派上用場(chǎng)。

? ? ? ?在實(shí)際情況中,我們會(huì)用不同的度量去評(píng)估我們的模型,而度量的選擇,完全取決于模型的類型和模型以后要做的事。下面我們就會(huì)學(xué)習(xí)到一些用于評(píng)價(jià)模型的常用度量和圖表以及它們各自的使用場(chǎng)景。

內(nèi)容


預(yù)測(cè)模型的類型

分類模型評(píng)價(jià)度量

混淆矩陣(Confusion Matrix)

ROC曲線

AUC(ROC曲線下面積)

Lift(提升)和Gain(增益)

K-S圖

基尼系數(shù)

預(yù)測(cè)模型的類型


? ? ? ?當(dāng)說到預(yù)測(cè)模型時(shí),我們會(huì)想到有回歸模型和分類模型。用于評(píng)價(jià)這兩種模型的度量是不相同的。我們首先要說的是分類問題。

? ? ? ?在分類問題中,我們用兩種算法:分類輸出型:算法像支持向量機(jī)和KNN那樣,輸出的是分類型數(shù)據(jù)。例如一個(gè)二分類問題,它的輸出不是0就是1。概率輸出型:這個(gè)有邏輯回歸、隨機(jī)森林、梯度提升、Adaboost等算法,都是以概率作為輸出的。要想把概率型輸出變?yōu)榉诸愋洼敵?,只要為其設(shè)立一個(gè)閾值即可。

分類模型評(píng)價(jià)度量


混淆矩陣(Confusion Matrix)

判定方法:根據(jù)不同的模型選不同的參數(shù)。

原理:混淆矩陣是一個(gè)N X N矩陣,N為分類的個(gè)數(shù)。假如我們面對(duì)的是一個(gè)二分類問題,也就是N=2,我們就得到一個(gè)2 X 2矩陣。在學(xué)習(xí)這個(gè)矩陣之前,我們需要知道一些簡(jiǎn)單的定義。(個(gè)人不喜歡這部分的中文翻譯,一直是保留英文)

Accuracy(準(zhǔn)確度):預(yù)測(cè)正確的數(shù)占所有數(shù)的比例。

Positive Predictive Value(陽性預(yù)測(cè)值) or Precision(精度):陽性預(yù)測(cè)值被預(yù)測(cè)正確的比例。

Negative Predictive Value(陰性預(yù)測(cè)值):陰性預(yù)測(cè)值被預(yù)測(cè)正確的比例。

Sensity(靈敏度) or recall(召回率):在陽性值中實(shí)際被預(yù)測(cè)正確所占的比例。

Specificity(特異度):在陰性值中實(shí)現(xiàn)被預(yù)測(cè)正確所占的比例。


若我們得到一個(gè)模型的混淆矩陣如下:

我們可以看出,這個(gè)模型的準(zhǔn)確度為88%,陽性預(yù)測(cè)值比較高而陰性預(yù)測(cè)值較低。對(duì)于靈敏度和特異度也是相同。這是因?yàn)槲覀冞x的閾值而導(dǎo)致的,若我們降低閾值,這兩對(duì)數(shù)值就會(huì)變的相近。一般的情況下,我們只關(guān)心其中的一個(gè)定義度量。例如,在醫(yī)藥公司,一般會(huì)更加關(guān)心最小化誤診率,也就是他們需要的是高特異度。而在磨損模型中我們更關(guān)心的是靈敏度??梢钥闯龌煜P鸵话阒荒苡糜诜诸愝敵鲂湍P椭?。

ROC曲線

判定方法:ROC曲線應(yīng)盡量偏離參考線。

原理:ROC全稱為Receiver Operation Characteristic Curve,中文名叫做‘接受者操作特征曲線’,中文名簡(jiǎn)直就是直翻。ROC曲線其實(shí)就是從混淆矩陣衍生出來的圖形,其橫坐標(biāo)為1-Specificity,縱坐標(biāo)為Sensitivity。

上面那條曲線就是ROC曲線,隨著閾值的減小,更多的值歸于正類,敏感度和1-特異度也相應(yīng)增加,所以ROC曲線呈遞增趨勢(shì)。而那條45度線是一條參照線,也就是說ROC曲線要與這條曲線比較。

簡(jiǎn)單的說,如果我們不用模型,直接隨機(jī)把客戶分類,我們得到的曲線就是那條參照線,然而我們使用了模型進(jìn)行預(yù)測(cè),就應(yīng)該比隨機(jī)的要好,所以ROC曲線要盡量遠(yuǎn)離參照線,越遠(yuǎn),我們的模型預(yù)測(cè)效果越好。

AUC(ROC曲線下面積)

判定方法:AUC應(yīng)該大于0.5.

原理:ROC曲線是根據(jù)與那條參照線進(jìn)行比較來判斷模型的好壞,但這只是一種直覺上的定性分析,如果我們需要精確一些,就要用到AUC,也就是ROC曲線下面積。

看上圖,參考線的面積是0.5,ROC曲線與它偏離越大,ROC曲線就越往左上方靠攏,它下面的面積(AUC)也就越大,這里面積是0.869。我們可以根據(jù)AUC的值與0.5相比,來評(píng)估一個(gè)分類模型的預(yù)測(cè)效果。

Lift(提升)和Gain(增益)

判定方法:lift應(yīng)一直大于1.

原理:Lift=(d/b+d)/(c+d/a+b+c+d).它衡量的是,與不用模型相比,模型的預(yù)測(cè)能力提升了多少。不利用模型,我們只能利用正例的比例‘c+d/a+b+c+d’這個(gè)樣本信息來估計(jì)正例的比例(baseline model),而利用模型之后,只需要從我們預(yù)測(cè)為正例的那個(gè)樣本的子集(b+d)中挑選正例,這時(shí)預(yù)測(cè)的準(zhǔn)確率為d/b+d.

由此可見,lift(提升指數(shù))越大,模型的預(yù)測(cè)效果越好。如果這個(gè)模型的預(yù)測(cè)能力跟baseline model一樣,那么這個(gè)模型就沒有任何意義。

一個(gè)好的分類模型,就是要偏離baseline model足夠遠(yuǎn)。在lift圖中,表現(xiàn)就是,在depth為1之前,lift一直保持較高的(大于1的)數(shù)值,也即曲線足夠陡峭。

Gain與Lift相當(dāng)類似,Gain chart是不同閾值下d/b+d的軌跡,與Lift的區(qū)別就在于縱軸刻度的不同。

K-S圖

判定方法:其值在0到100之間,值越大,模型表現(xiàn)越好。

原理:K-S圖,英文為Kolmogorov-Smirnov chart,是用來評(píng)估分類模型表現(xiàn)的圖。更準(zhǔn)確的來說,K-S是用來度量陽性與陰性分類區(qū)分程度的。若我們把總體嚴(yán)格按照陽性和陰性分成兩組,則K-S值為100,如果我們是隨機(jī)區(qū)分陽性與陰性,則K-S值為0.所以分類模型的K-S值都在0到100之間,值越大,模型從陰性數(shù)據(jù)中區(qū)分陽性數(shù)據(jù)的能力越強(qiáng)。

基尼系數(shù)

判定方法:基尼系數(shù)應(yīng)大于60%,就算好模型。

原理:基尼系數(shù)經(jīng)常用于分類問題,其可以直接從AUC中得到。其公式為:

Gini = 2*AUC - 1

結(jié)束語

就在剛才,我問了一下已經(jīng)工作了的前輩,他跟我說這些度量中一般用到的是混淆矩陣中的精確度,準(zhǔn)確度和召回率。知識(shí)有這么多,實(shí)踐中我們?cè)撊绾芜x擇,這又是另一門學(xué)問了。

參考

http://cos.name/2009/02/measure-classification-model-performance-lift-gain/

http://www.analyticsvidhya.com/blog/2015/01/model-performance-metrics-classification/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容