模型評估的基本方法

2021-07-30 20:15:36 字數 2898 閱讀 7121

「所有模型都是壞的,但有些模型是有用的」。我們建立模型之後,接下來就要去評估模型,確定這個模型是否『有用』。當你費盡全力去建立完模型後,你會發現僅僅就是一些單個的數值或單個的曲線去告訴你你的模型到底是否能夠派上用場。

在實際情況中,我們會用不同的度量去評估我們的模型,而度量的選擇,完全取決於模型的型別和模型以後要做的事。下面我們就會學習到一些用於評價模型的常用度量和圖表以及它們各自的使用場景。

**模型的型別

分類模型評價度量

混淆矩陣(confusion matrix)

roc曲線

auc(roc曲線下面積)

lift(提公升)和gain(增益)

k-s圖

基尼係數

當說到**模型時,我們會想到有回歸模型和分類模型。用於評價這兩種模型的度量是不相同的。我們首先要說的是分類問題。

在分類問題中,我們用兩種演算法:分類輸出型:演算法像支援向量機和knn那樣,輸出的是分型別資料。例如乙個二分類問題,它的輸出不是0就是1。概率輸出型:這個有邏輯回歸、隨機森林、梯度提公升、adaboost等演算法,都是以概率作為輸出的。要想把概率型輸出變為分型別輸出,只要為其設立乙個閾值即可。

判定方法:根據不同的模型選不同的引數。

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

accuracy(準確度):**正確的數佔所有數的比例。

positive predictive value(陽性**值) or precision(精度):陽性**值被**正確的比例。

negative predictive value(陰性**值):陰性**值被**正確的比例。

sensity(靈敏度) or recall(召回率):在陽性值中實際被**正確所佔的比例。

specificity(特異度):在陰性值中實現被**正確所佔的比例。

若我們得到乙個模型的混淆矩陣如下:

我們可以看出,這個模型的準確度為88%,陽性**值比較高而陰性**值較低。對於靈敏度和特異度也是相同。這是因為我們選的閾值而導致的,若我們降低閾值,這兩對數值就會變的相近。一般的情況下,我們只關心其中的乙個定義度量。例如,在醫藥公司,一般會更加關心最小化誤診率,也就是他們需要的是高特異度。而在磨損模型中我們更關心的是靈敏度。可以看出混淆模型一般只能用於分類輸出型模型中。

判定方法:roc曲線應盡量偏離參考線。

原理:roc全稱為receiver operation characteristic curve,中文名叫做『接受者操作特徵曲線』,中文名簡直就是直翻。roc曲線其實就是從混淆矩陣衍生出來的圖形,其橫座標為1-specificity,縱座標為sensitivity。

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

簡單的說,如果我們不用模型,直接隨機把客戶分類,我們得到的曲線就是那條參照線,然而我們使用了模型進行**,就應該比隨機的要好,所以roc曲線要盡量遠離參照線,越遠,我們的模型**效果越好。

判定方法:auc應該大於0.5.

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

看上圖,參考線的面積是0.5,roc曲線與它偏離越大,roc曲線就越往左上方靠攏,它下面的面積(auc)也就越大,這裡面積是0.869。我們可以根據auc的值與0.5相比,來評估乙個分類模型的**效果。

判定方法:lift應一直大於1.

原理:lift=(d/b+d)/(c+d/a+b+c+d).它衡量的是,與不用模型相比,模型的**能力提公升了多少。不利用模型,我們只能利用正例的比例『c+d/a+b+c+d』這個樣本資訊來估計正例的比例(baseline model),而利用模型之後,只需要從我們**為正例的那個樣本的子集(b+d)中挑選正例,這時**的準確率為d/b+d.

由此可見,lift(提公升指數)越大,模型的**效果越好。如果這個模型的**能力跟baseline model一樣,那麼這個模型就沒有任何意義。

乙個好的分類模型,就是要偏離baseline model足夠遠。在lift圖中,表現就是,在depth為1之前,lift一直保持較高的(大於1的)數值,也即曲線足夠陡峭。

gain與lift相當類似,gain chart是不同閾值下d/b+d的軌跡,與lift的區別就在於縱軸刻度的不同。

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

原理:k-s圖,英文為kolmogorov-smirnov chart,是用來評估分類模型表現的圖。更準確的來說,k-s是用來度量陽性與陰性分類區分程度的。若我們把總體嚴格按照陽性和陰性分成兩組,則k-s值為100,如果我們是隨機區分陽性與陰性,則k-s值為0.所以分類模型的k-s值都在0到100之間,值越大,模型從陰性資料中區分陽性資料的能力越強。

判定方法:基尼係數應大於60%,就算好模型。

原理:基尼係數經常用於分類問題,其可以直接從auc中得到。其公式為:

gini = 2*auc - 1

模型評估的方法

一 回歸模型評估 1 mse 均方誤差 sklearn.metrics.mean squared error y test,y predict 二 分類模型評估 1 accuracy score分類準確率分數 正確的樣本數目佔總體的比例 正確的樣本數目 正例 正確的 負例 正確的樣本數 注 如果乙個...

模型評估方法

有些自己熱愛卻因為被迫無奈而放棄的東西,慢慢記錄吧。以後想起,我還會知道自己學過這些。機器學習 周志華著的這本書是乙個很好的學習資料,其實我更喜歡這本書的樣子,漂亮而且有種童話故事的感覺。一 經驗誤差與過擬合 1.無論什麼時候,我們都希望得到乙個泛化誤差 在新樣本上的誤差 小的學習器。但有時候會出現...

分類模型的評估方法簡介

一 混淆矩陣 混淆矩陣 confusion matrix 於資訊理論,在機器學習 人工智慧領域,混淆矩陣 confusion matrix 又稱為可能性 或是錯誤矩陣,是一種用矩陣呈現的視覺化工具,用於有監督學習,無監督學習通常用匹配矩陣 matching matrix 其名字源自它容易表明多個類是...