0x00?評價模型的好壞
1.數(shù)據(jù)拆分:訓(xùn)練數(shù)據(jù)集&測試數(shù)據(jù)集
2.評價分類結(jié)果:精準(zhǔn)度、混淆矩陣、精準(zhǔn)率、召回率、F1 Score、ROC曲線等
3.評價回歸結(jié)果:MSE、RMSE、MAE、R Squared
0x01?數(shù)據(jù)拆分(上篇0x03判斷模型好壞 )
0x02?評價分類結(jié)果
2.1分類準(zhǔn)確度不夠
對于極度偏斜(Skewed Data)的數(shù)據(jù),只使用分類準(zhǔn)確度是不能衡量。需要引入混淆矩陣(Confusion Matrix)做進(jìn)一步分析。
2.2混淆矩陣(confusion_matrix)
對于二分類問題來說,所有的問題被分為0和1兩類,混淆矩陣是2*2的矩陣:

TN:真實值是0,預(yù)測值也是0,即我們預(yù)測是negative,預(yù)測正確了。
FP:真實值是0,預(yù)測值是1,即我們預(yù)測是positive,但是預(yù)測錯誤了。
FN:真實值是1,預(yù)測值是0,即我們預(yù)測是negative,但預(yù)測錯誤了。
TP:真實值是1,預(yù)測值是1,即我們預(yù)測是positive,預(yù)測正確了。
因為混淆矩陣表達(dá)的信息比簡單的分類準(zhǔn)確度更全面,因此可以通過混淆矩陣得到一些有效的指標(biāo)。??
2.3 精準(zhǔn)率和召回率?
精準(zhǔn)率(P):precision=TP/(TP+FP)?。精準(zhǔn)率分母為所有預(yù)測為1的個數(shù),分子是其中預(yù)測對了的個數(shù),即預(yù)測值為1,且預(yù)測對的比例。預(yù)測的事件,預(yù)測得有多準(zhǔn)。
召回率(R):recall=TP/(TP+FN)?。召回率是:所有真實值為1的數(shù)據(jù)中,預(yù)測對的比例?。也就是事件真實發(fā)生的情況下,成功預(yù)測的比例。
2.4 F1 Score
F1 Score 是精準(zhǔn)率和召回率的調(diào)和平均值。
數(shù)據(jù)有偏的情況下,F(xiàn)1 Score是更好的指標(biāo)。

0x03 ROC曲線
3.1 分類閾值threshold
分類閾值,即設(shè)置判斷樣本為正例的閾值threshold,精準(zhǔn)率和召回率這兩個指標(biāo)有內(nèi)在聯(lián)系,且相互沖突。precision隨著threshold的增加而增加,recall隨著threshold的增加而減小。
(在sklearn中有一個方法叫:decision_function,即返回分類閾值)
3.2 TPR
TPR:預(yù)測為1,且預(yù)測對的數(shù)量,占真實值為1的百分比。
TPR=recall=TP/(TP+FN)很好理解,就是召回率。
3.3 FPR
FPR:預(yù)測為1,但預(yù)測錯的數(shù)量,占真實值為0的數(shù)據(jù)百分比。
FPR=FP/(TN+FP)
TPR和FPR之間是成正比的,TPR高,F(xiàn)PR也高。ROC曲線就是刻畫這兩個指標(biāo)之間的關(guān)系。
3.4 ROC曲線
ROC曲線(Receiver Operation Characteristic Cureve),描述TPR和FPR之間的關(guān)系。x軸是FPR,y軸是TPR。
分類閾值threshold取不同值,TPR和FPR的計算結(jié)果也不同,最理想情況下,希望所有正例 & 負(fù)例 都被成功預(yù)測( TPR=1,F(xiàn)PR=0),即 所有的正例預(yù)測值 > 所有的負(fù)例預(yù)測值,此時閾值取 最小正例預(yù)測值 與 最大負(fù)例預(yù)測值 之間的值即可。
TPR越大越好,F(xiàn)PR越小越好,但這兩個指標(biāo)通常是矛盾的。TPR增大,預(yù)測更多的樣本為正例,同時也增加了更多負(fù)例被誤判為正例的情況。
兩個分類器的ROC曲線交叉,無法判斷分類器性能時,可計算曲線下面積AUC,作為性能度量。
3.5 AUC
在ROC曲線中,曲線下面的面積, 稱為AUC(Area Under Curve)。AUC的橫軸范圍(0,1 ),縱軸范圍(0,1)所以總面積小于1。
ROC曲線下方由梯形組成,矩形可以看成特征的梯形。因此,AUC的面積可以這樣算:(上底+下底)* 高 / 2,曲線下的面積可以由多個梯形面積疊加得到。AUC越大,分類器分類效果越好。
AUC = 1,是完美分類器,采用這個預(yù)測模型時,不管設(shè)定什么閾值都能得出完美預(yù)測。絕大多數(shù)預(yù)測的場合,不存在完美分類器。
0.5 < AUC < 1,優(yōu)于隨機(jī)猜測。這個分類器(模型)妥善設(shè)定閾值的話,能有預(yù)測價值。
AUC = 0.5,跟隨機(jī)猜測一樣,模型沒有預(yù)測價值。
AUC < 0.5,比隨機(jī)猜測還差;但只要總是反預(yù)測而行,就優(yōu)于隨機(jī)猜測。
0x04 簡單線性回歸
4.1?簡單線性回歸
所謂簡單,是指只有一個樣本特征,即只有一個自變量;所謂線性,是指方程是線性的;所謂回歸,是指用方程來模擬變量之間是如何關(guān)聯(lián)的。
4.2??求解思路
找到了最佳擬合的直線方程:y = ax + b,最大程度的擬合樣本特征和樣本數(shù)據(jù)標(biāo)記之間的關(guān)系。



4.3?推導(dǎo)思路
所謂的建模過程,其實就是找到一個模型,最大程度的擬合我們的數(shù)據(jù)。
要想最大的擬合數(shù)據(jù),本質(zhì)上就是找到?jīng)]有擬合的部分,也就是損失的部分盡量小,就是損失函數(shù)(loss function)(也有算法是衡量擬合的程度,稱函數(shù)為效用函數(shù)(utility function)):

思路為:
1.通過分析確定損失函數(shù)或者效用函數(shù);
2.通過最優(yōu)化損失函數(shù)或者效用函數(shù),獲得機(jī)器學(xué)習(xí)的模型。
近乎所有參數(shù)學(xué)習(xí)算法都是這樣的套路,區(qū)別是模型不同,建立的目標(biāo)函數(shù)不同,優(yōu)化的方式也不同。
根據(jù)簡單線性回歸的損失函數(shù),通過最小二乘法(最小化誤差的平方)可以求出a、b的表達(dá)式:

0x05 最小二乘法
5.1 損失函數(shù)的“風(fēng)險”
5.1.1 損失函數(shù)
在機(jī)器學(xué)習(xí)中,所有的算法模型其實都依賴于最小化或最大化某一個函數(shù),稱之為“目標(biāo)函數(shù)”。
損失函數(shù)描述了單個樣本預(yù)測值和真實值之間誤差的程度。用來度量模型一次預(yù)測的好壞。
損失函數(shù)是衡量預(yù)測模型預(yù)測期望結(jié)果表現(xiàn)的指標(biāo)。損失函數(shù)越小,模型的魯棒性越好。
常用損失函數(shù)有:
0-1損失函數(shù):用來表述分類問題,當(dāng)預(yù)測分類錯誤時,損失函數(shù)值為1,正確為0

平方損失函數(shù):用來描述回歸問題,用來表示連續(xù)性變量,為預(yù)測值與真實值差值的平方。(誤差值越大、懲罰力度越強(qiáng),也就是對差值敏感)

絕對損失函數(shù):用在回歸模型,用距離的絕對值來衡量

對數(shù)損失函數(shù):是預(yù)測值Y和條件概率之間的衡量。事實上,該損失函數(shù)用到了極大似然估計的思想。P(Y|X)通俗的解釋就是:在當(dāng)前模型的基礎(chǔ)上,對于樣本X,其預(yù)測值為Y,也就是預(yù)測正確的概率。由于概率之間的同時滿足需要使用乘法,為了將其轉(zhuǎn)化為加法,我們將其取對數(shù)。最后由于是損失函數(shù),所以預(yù)測正確的概率越高,其損失值應(yīng)該是越小,因此再加個負(fù)號取個反。

以上損失函數(shù)是針對于單個樣本的,但是一個訓(xùn)練數(shù)據(jù)集中存在N個樣本,N個樣本給出N個損失,如何進(jìn)行選擇就引出了風(fēng)險函數(shù)。
5.1.2 期望風(fēng)險
期望風(fēng)險是損失函數(shù)的期望,用來表達(dá)理論上模型f(X)關(guān)于聯(lián)合分布P(X,Y)的平均意義下的損失。又叫期望損失/風(fēng)險函數(shù)。

5.1.3 經(jīng)驗風(fēng)險
模型f(X)關(guān)于訓(xùn)練數(shù)據(jù)集的平均損失,稱為經(jīng)驗風(fēng)險或經(jīng)驗損失。
其公式含義為:模型關(guān)于訓(xùn)練集的平均損失(每個樣本的損失加起來,然后平均一下)

5.1.4 經(jīng)驗風(fēng)險最小化和結(jié)構(gòu)風(fēng)險最小化
期望風(fēng)險是模型關(guān)于聯(lián)合分布的期望損失,經(jīng)驗風(fēng)險是模型關(guān)于訓(xùn)練樣本數(shù)據(jù)集的平均損失。根據(jù)大數(shù)定律,當(dāng)樣本容量N趨于無窮時,經(jīng)驗風(fēng)險趨于期望風(fēng)險。
因此很自然地想到用經(jīng)驗風(fēng)險去估計期望風(fēng)險。但是由于訓(xùn)練樣本個數(shù)有限,可能會出現(xiàn)過度擬合的問題,即決策函數(shù)對于訓(xùn)練集幾乎全部擬合,但是對于測試集擬合效果過差。因此需要對其進(jìn)行矯正:
結(jié)構(gòu)風(fēng)險最小化:當(dāng)樣本容量不大的時候,經(jīng)驗風(fēng)險最小化容易產(chǎn)生“過擬合”的問題,為了“減緩”過擬合問題,提出了結(jié)構(gòu)風(fēng)險最小理論。結(jié)構(gòu)風(fēng)險最小化為經(jīng)驗風(fēng)險與復(fù)雜度同時較小。

通過公式可以看出,結(jié)構(gòu)風(fēng)險:在經(jīng)驗風(fēng)險上加上一個正則化項(regularizer),或者叫做罰項(penalty) 。正則化項是J(f)是函數(shù)的復(fù)雜度再乘一個權(quán)重系數(shù)(用以權(quán)衡經(jīng)驗風(fēng)險和復(fù)雜度)
5.1.5 小結(jié)
1、損失函數(shù):單個樣本預(yù)測值和真實值之間誤差的程度。
2、期望風(fēng)險:是損失函數(shù)的期望,理論上模型f(X)關(guān)于聯(lián)合分布P(X,Y)的平均意義下的損失。
3、經(jīng)驗風(fēng)險:模型關(guān)于訓(xùn)練集的平均損失(每個樣本的損失加起來,然后平均一下)。
4、結(jié)構(gòu)風(fēng)險:在經(jīng)驗風(fēng)險上加上一個正則化項,防止過擬合的策略。
5.2 最小二乘法
5.2.1 最小二乘法
對于測量值來說,讓總的誤差的平方最小的就是真實值。(這基于,如果誤差是隨機(jī)的,應(yīng)該圍繞真值上下波動。)

正好是算數(shù)平均數(shù)(算數(shù)平均數(shù)是最小二乘法的特例)。
這就是最小二乘法,所謂“二乘”就是平方的意思。
(高斯證明過:如果誤差的分布是正態(tài)分布,那么最小二乘法得到的就是最有可能的值。)
5.2.2 線性回歸中使用最小二乘法
找到a和b,使得損失函數(shù)盡可能的小。

最終我們通過最小二乘法得到a、b的表達(dá)式:

0x06 線性回歸算法的衡量標(biāo)準(zhǔn)
簡單線性回歸的目標(biāo)是:
對于訓(xùn)練數(shù)據(jù)集合來說,

盡可能小。
得到a和b之后,將測試集代入a、b中,可以使用

作為衡量回歸算法好壞的標(biāo)準(zhǔn)。
(但是這里有一個問題,這個衡量標(biāo)準(zhǔn)是和m相關(guān)的。在具體衡量時,測試數(shù)據(jù)集不同將會導(dǎo)致誤差的累積量不同。)
6.1均方誤差MSE
測試集中的數(shù)據(jù)量m不同,因為有累加操作,所以隨著數(shù)據(jù)的增加 ,誤差會逐漸積累;因此衡量標(biāo)準(zhǔn)和?m?相關(guān)。為了抵消掉數(shù)據(jù)量的形象,可以除去數(shù)據(jù)量,抵消誤差。通過這種處理方式得到的結(jié)果叫做?均方誤差MSE(Mean Squared Error):

6.2 均方根誤差RMSE
但是使用均方誤差MSE收到量綱的影響。例如在衡量房產(chǎn)時,y的單位是(萬元),那么衡量標(biāo)準(zhǔn)得到的結(jié)果是(萬元平方)。為了解決量綱的問題,可以將其開方(為了解決方差的量綱問題,將其開方得到平方差)得到均方根誤差RMSE(Root Mean Squarde Error):

6.3 平均絕對誤差MAE
對于線性回歸算法還有另外一種非常樸素評測標(biāo)準(zhǔn)。要求真實值與 預(yù)測結(jié)果之間的距離最小,可以直接相減做絕對值,加m次再除以m,即可求出平均距離,被稱作平均絕對誤差MAE(Mean Absolute Error):

在之前確定損失函數(shù)時,我們提過,絕對值函數(shù)不是處處可導(dǎo)的,因此沒有使用絕對值。但是在評價模型時不影響。因此模型的評價方法可以和損失函數(shù)不同。
0x07 更好用的R Square
RMSE和MAE得到的是誤差,沒有分類準(zhǔn)確率(0-1之間取值)的性質(zhì),有這樣的局限性,引入新的指標(biāo)R Squared解決。

R Squared:
分子:預(yù)測值和真實值之差的平方和,即使用我們的模型預(yù)測產(chǎn)生的錯誤。
分母:是均值和真實值之差的平方和,即認(rèn)為“預(yù)測值=樣本均值”這個模型(Baseline Model)所產(chǎn)生的錯誤。
使用Baseline模型產(chǎn)生的錯誤較多,使用自己的模型錯誤較少。因此用1減去較少的錯誤除以較多的錯誤,實際上是衡量了我們的模型擬合住數(shù)據(jù)的地方,即沒有產(chǎn)生錯誤的相應(yīng)指標(biāo)。
結(jié)論:
R^2 < 0,說明學(xué)習(xí)模型不如基準(zhǔn)模型。此時,數(shù)據(jù)很有可能不存在任何線性關(guān)系;
R^2 = 0,預(yù)測模型等于基準(zhǔn)模型;
R^2越大也好,越大說明減數(shù)的分子小,錯誤率低;
R^2 =?1,預(yù)測模型不犯任何錯誤;
R^2 <= 1。
0x08 《機(jī)器學(xué)習(xí)》補(bǔ)充
8.1 分類
8.1.1P-R圖
P-R圖顯示模型在樣本總體上的查全率(R),查準(zhǔn)率(P),在比較時若一個模型的P-R曲線被另一個模型的曲線完全“包住”,則可斷言后者性能優(yōu)于前者。
P-R曲線發(fā)生交叉時,比較曲線下面積或“平衡點”BEP(Break-Even Point)“查準(zhǔn)率=查全率”時的取值。
8.1.2 多個二分類混淆矩陣
在個混淆矩陣分別計算P,R值,在計算平均,得“宏查準(zhǔn)率”(macro-P),“宏查全率”(macro-R),“宏F1”(macro-F1),基于對應(yīng)元素平均,得“微查準(zhǔn)率”(micro-P),“微查全率”(micro-R),“微F1”(micro-F1)。
8.1.3 非均等代價(unequal cost)
權(quán)衡不同類型錯誤造成的不同損失。“代價矩陣”(cost matrix)cost01>cost10,表示真0預(yù)1損失程度大于真1預(yù)0。
非均等代價下,ROC曲線不能直接反映模型期望總體代價,而“代價曲線”可以。


8.1.4 偏差、方差、噪聲
偏差度量了算法的期望與真實值的偏離程度,刻畫算法本身的擬合能力;方差度量同樣大小的訓(xùn)練集的變動導(dǎo)致學(xué)習(xí)性能的變化,刻畫數(shù)據(jù)擾動造成的影響;噪聲表達(dá)當(dāng)前任務(wù)上任何學(xué)習(xí)算法所能達(dá)到的期望泛化誤差下界,刻畫任務(wù)本身的難度。偏差-方差分解說明,泛化性能是由算法的能力、數(shù)據(jù)充分性、任務(wù)本身難度所共同決定的。
0xFF 總結(jié)
線性回歸的評價指標(biāo)與分類的評價指標(biāo)有很大的不同:
評價分類結(jié)果:
準(zhǔn)確度(簡單常用情況)、
混淆矩陣(處理極度偏斜的數(shù)據(jù))、
精準(zhǔn)率(關(guān)注預(yù)測中,正確的比例)、
召回率(關(guān)注事件發(fā)生的情況下,成功預(yù)測的比例)、
F1 Score(精準(zhǔn)率和召回率的調(diào)和平均值)、
ROC曲線(分類閾值、召回率TPR、負(fù)例中誤判比例FPR、曲線下面積AUC)等
評價回歸結(jié)果:
均方誤差MSE(預(yù)測值與真實值之差的平方和,再除以樣本量)、
均方根誤差RMSE(為了消除量綱,將MSE開方)、
平均絕對誤差MAE(預(yù)測值與真實值之差的絕對值,再除以樣本量)、
以及R方(用1減去較少的錯誤除以較多的錯誤,實際上是衡量了我們的模型擬合住數(shù)據(jù)的地方,即沒有產(chǎn)生錯誤的相應(yīng)指標(biāo))。
參考閱讀:
1.《機(jī)器學(xué)習(xí)的敲門磚:kNN算法(中)》(上周已閱)
2.《評價分類結(jié)果(上):混淆矩陣、精準(zhǔn)率、召回率》
3.《評價分類結(jié)果(下):F1 Score、ROC、AUC》
7.《機(jī)器學(xué)習(xí)》周志華著,第2章 模型評估與選擇(P23)
代碼另附。