0x00?評價模型的好壞
1.數(shù)據(jù)拆分:訓練數(shù)據(jù)集&測試數(shù)據(jù)集
2.評價分類結(jié)果:精準度、混淆矩陣、精準率瓣赂、召回率、F1 Score片拍、ROC曲線等
3.評價回歸結(jié)果:MSE煌集、RMSE、MAE捌省、R Squared
0x01?數(shù)據(jù)拆分(上篇0x03判斷模型好壞 )
0x02?評價分類結(jié)果
2.1分類準確度不夠
對于極度偏斜(Skewed Data)的數(shù)據(jù)苫纤,只使用分類準確度是不能衡量。需要引入混淆矩陣(Confusion Matrix)做進一步分析纲缓。
2.2混淆矩陣(confusion_matrix)
對于二分類問題來說卷拘,所有的問題被分為0和1兩類,混淆矩陣是2*2的矩陣:
TN:真實值是0祝高,預測值也是0栗弟,即我們預測是negative,預測正確了工闺。
FP:真實值是0乍赫,預測值是1瓣蛀,即我們預測是positive,但是預測錯誤了雷厂。
FN:真實值是1惋增,預測值是0,即我們預測是negative改鲫,但預測錯誤了诈皿。
TP:真實值是1,預測值是1像棘,即我們預測是positive稽亏,預測正確了。
因為混淆矩陣表達的信息比簡單的分類準確度更全面讲弄,因此可以通過混淆矩陣得到一些有效的指標措左。??
2.3 精準率和召回率?
精準率(P):precision=TP/(TP+FP)?。精準率分母為所有預測為1的個數(shù)避除,分子是其中預測對了的個數(shù)怎披,即預測值為1,且預測對的比例瓶摆。預測的事件凉逛,預測得有多準。
召回率(R):recall=TP/(TP+FN)?群井。召回率是:所有真實值為1的數(shù)據(jù)中状飞,預測對的比例?。也就是事件真實發(fā)生的情況下书斜,成功預測的比例诬辈。
2.4 F1 Score
F1 Score 是精準率和召回率的調(diào)和平均值。
數(shù)據(jù)有偏的情況下荐吉,F(xiàn)1 Score是更好的指標焙糟。
0x03 ROC曲線
3.1 分類閾值threshold
分類閾值,即設置判斷樣本為正例的閾值threshold样屠,精準率和召回率這兩個指標有內(nèi)在聯(lián)系穿撮,且相互沖突。precision隨著threshold的增加而增加痪欲,recall隨著threshold的增加而減小悦穿。
(在sklearn中有一個方法叫:decision_function,即返回分類閾值)
3.2 TPR
TPR:預測為1业踢,且預測對的數(shù)量栗柒,占真實值為1的百分比。
TPR=recall=TP/(TP+FN)很好理解知举,就是召回率傍衡。
3.3 FPR
FPR:預測為1深员,但預測錯的數(shù)量负蠕,占真實值為0的數(shù)據(jù)百分比蛙埂。
FPR=FP/(TN+FP)
TPR和FPR之間是成正比的,TPR高遮糖,F(xiàn)PR也高绣的。ROC曲線就是刻畫這兩個指標之間的關系。
3.4 ROC曲線
ROC曲線(Receiver Operation Characteristic Cureve)欲账,描述TPR和FPR之間的關系屡江。x軸是FPR,y軸是TPR赛不。
分類閾值threshold取不同值惩嘉,TPR和FPR的計算結(jié)果也不同,最理想情況下踢故,希望所有正例 & 負例 都被成功預測( TPR=1文黎,F(xiàn)PR=0),即 所有的正例預測值 > 所有的負例預測值殿较,此時閾值取 最小正例預測值 與 最大負例預測值 之間的值即可耸峭。
TPR越大越好,F(xiàn)PR越小越好淋纲,但這兩個指標通常是矛盾的劳闹。TPR增大,預測更多的樣本為正例洽瞬,同時也增加了更多負例被誤判為正例的情況本涕。
兩個分類器的ROC曲線交叉,無法判斷分類器性能時伙窃,可計算曲線下面積AUC菩颖,作為性能度量。
3.5 AUC
在ROC曲線中对供,曲線下面的面積位他, 稱為AUC(Area Under Curve)。AUC的橫軸范圍(0,1 )产场,縱軸范圍(0,1)所以總面積小于1鹅髓。
ROC曲線下方由梯形組成,矩形可以看成特征的梯形京景。因此窿冯,AUC的面積可以這樣算:(上底+下底)* 高 / 2,曲線下的面積可以由多個梯形面積疊加得到确徙。AUC越大醒串,分類器分類效果越好执桌。
AUC = 1,是完美分類器芜赌,采用這個預測模型時仰挣,不管設定什么閾值都能得出完美預測。絕大多數(shù)預測的場合缠沈,不存在完美分類器膘壶。
0.5 < AUC < 1,優(yōu)于隨機猜測洲愤。這個分類器(模型)妥善設定閾值的話颓芭,能有預測價值。
AUC = 0.5柬赐,跟隨機猜測一樣亡问,模型沒有預測價值。
AUC < 0.5肛宋,比隨機猜測還差州藕;但只要總是反預測而行,就優(yōu)于隨機猜測悼吱。
0x04 簡單線性回歸
4.1?簡單線性回歸
所謂簡單慎框,是指只有一個樣本特征,即只有一個自變量后添;所謂線性笨枯,是指方程是線性的;所謂回歸遇西,是指用方程來模擬變量之間是如何關聯(lián)的馅精。
4.2??求解思路
找到了最佳擬合的直線方程:y = ax + b,最大程度的擬合樣本特征和樣本數(shù)據(jù)標記之間的關系粱檀。
4.3?推導思路
所謂的建模過程压彭,其實就是找到一個模型,最大程度的擬合我們的數(shù)據(jù)渗常。
要想最大的擬合數(shù)據(jù)壮不,本質(zhì)上就是找到?jīng)]有擬合的部分,也就是損失的部分盡量小皱碘,就是損失函數(shù)(loss function)(也有算法是衡量擬合的程度询一,稱函數(shù)為效用函數(shù)(utility function)):
思路為:
1.通過分析確定損失函數(shù)或者效用函數(shù);
2.通過最優(yōu)化損失函數(shù)或者效用函數(shù),獲得機器學習的模型健蕊。
近乎所有參數(shù)學習算法都是這樣的套路菱阵,區(qū)別是模型不同,建立的目標函數(shù)不同缩功,優(yōu)化的方式也不同晴及。
根據(jù)簡單線性回歸的損失函數(shù),通過最小二乘法(最小化誤差的平方)可以求出a掂之、b的表達式:
0x05 最小二乘法
5.1 損失函數(shù)的“風險”
5.1.1 損失函數(shù)
在機器學習中抗俄,所有的算法模型其實都依賴于最小化或最大化某一個函數(shù),稱之為“目標函數(shù)”世舰。
損失函數(shù)描述了單個樣本預測值和真實值之間誤差的程度。用來度量模型一次預測的好壞槽卫。
損失函數(shù)是衡量預測模型預測期望結(jié)果表現(xiàn)的指標跟压。損失函數(shù)越小,模型的魯棒性越好歼培。
常用損失函數(shù)有:
0-1損失函數(shù):用來表述分類問題震蒋,當預測分類錯誤時,損失函數(shù)值為1躲庄,正確為0
平方損失函數(shù):用來描述回歸問題查剖,用來表示連續(xù)性變量,為預測值與真實值差值的平方噪窘。(誤差值越大笋庄、懲罰力度越強,也就是對差值敏感)
絕對損失函數(shù):用在回歸模型倔监,用距離的絕對值來衡量
對數(shù)損失函數(shù):是預測值Y和條件概率之間的衡量直砂。事實上,該損失函數(shù)用到了極大似然估計的思想浩习。P(Y|X)通俗的解釋就是:在當前模型的基礎上静暂,對于樣本X,其預測值為Y谱秽,也就是預測正確的概率洽蛀。由于概率之間的同時滿足需要使用乘法,為了將其轉(zhuǎn)化為加法疟赊,我們將其取對數(shù)郊供。最后由于是損失函數(shù),所以預測正確的概率越高听绳,其損失值應該是越小颂碘,因此再加個負號取個反。
以上損失函數(shù)是針對于單個樣本的,但是一個訓練數(shù)據(jù)集中存在N個樣本头岔,N個樣本給出N個損失塔拳,如何進行選擇就引出了風險函數(shù)。
5.1.2 期望風險
期望風險是損失函數(shù)的期望峡竣,用來表達理論上模型f(X)關于聯(lián)合分布P(X,Y)的平均意義下的損失靠抑。又叫期望損失/風險函數(shù)劲室。
5.1.3 經(jīng)驗風險
模型f(X)關于訓練數(shù)據(jù)集的平均損失兔综,稱為經(jīng)驗風險或經(jīng)驗損失。
其公式含義為:模型關于訓練集的平均損失(每個樣本的損失加起來沫换,然后平均一下)
5.1.4 經(jīng)驗風險最小化和結(jié)構風險最小化
期望風險是模型關于聯(lián)合分布的期望損失类浪,經(jīng)驗風險是模型關于訓練樣本數(shù)據(jù)集的平均損失载城。根據(jù)大數(shù)定律,當樣本容量N趨于無窮時费就,經(jīng)驗風險趨于期望風險诉瓦。
因此很自然地想到用經(jīng)驗風險去估計期望風險。但是由于訓練樣本個數(shù)有限力细,可能會出現(xiàn)過度擬合的問題睬澡,即決策函數(shù)對于訓練集幾乎全部擬合,但是對于測試集擬合效果過差眠蚂。因此需要對其進行矯正:
結(jié)構風險最小化:當樣本容量不大的時候煞聪,經(jīng)驗風險最小化容易產(chǎn)生“過擬合”的問題,為了“減緩”過擬合問題逝慧,提出了結(jié)構風險最小理論昔脯。結(jié)構風險最小化為經(jīng)驗風險與復雜度同時較小。
通過公式可以看出馋艺,結(jié)構風險:在經(jīng)驗風險上加上一個正則化項(regularizer)栅干,或者叫做罰項(penalty) 。正則化項是J(f)是函數(shù)的復雜度再乘一個權重系數(shù)(用以權衡經(jīng)驗風險和復雜度)
5.1.5 小結(jié)
1捐祠、損失函數(shù):單個樣本預測值和真實值之間誤差的程度碱鳞。
2、期望風險:是損失函數(shù)的期望踱蛀,理論上模型f(X)關于聯(lián)合分布P(X,Y)的平均意義下的損失窿给。
3、經(jīng)驗風險:模型關于訓練集的平均損失(每個樣本的損失加起來率拒,然后平均一下)崩泡。
4、結(jié)構風險:在經(jīng)驗風險上加上一個正則化項猬膨,防止過擬合的策略角撞。
5.2 最小二乘法
5.2.1 最小二乘法
對于測量值來說,讓總的誤差的平方最小的就是真實值。(這基于谒所,如果誤差是隨機的热康,應該圍繞真值上下波動。)
正好是算數(shù)平均數(shù)(算數(shù)平均數(shù)是最小二乘法的特例)劣领。
這就是最小二乘法姐军,所謂“二乘”就是平方的意思。
(高斯證明過:如果誤差的分布是正態(tài)分布尖淘,那么最小二乘法得到的就是最有可能的值奕锌。)
5.2.2 線性回歸中使用最小二乘法
找到a和b,使得損失函數(shù)盡可能的小村生。
最終我們通過最小二乘法得到a惊暴、b的表達式:
0x06 線性回歸算法的衡量標準
簡單線性回歸的目標是:
對于訓練數(shù)據(jù)集合來說,
盡可能小梆造。
得到a和b之后缴守,將測試集代入a、b中镇辉,可以使用
作為衡量回歸算法好壞的標準。
(但是這里有一個問題贴捡,這個衡量標準是和m相關的忽肛。在具體衡量時,測試數(shù)據(jù)集不同將會導致誤差的累積量不同烂斋。)
6.1均方誤差MSE
測試集中的數(shù)據(jù)量m不同屹逛,因為有累加操作,所以隨著數(shù)據(jù)的增加 汛骂,誤差會逐漸積累罕模;因此衡量標準和?m?相關。為了抵消掉數(shù)據(jù)量的形象帘瞭,可以除去數(shù)據(jù)量淑掌,抵消誤差。通過這種處理方式得到的結(jié)果叫做?均方誤差MSE(Mean Squared Error):
6.2 均方根誤差RMSE
但是使用均方誤差MSE收到量綱的影響蝶念。例如在衡量房產(chǎn)時抛腕,y的單位是(萬元),那么衡量標準得到的結(jié)果是(萬元平方)媒殉。為了解決量綱的問題担敌,可以將其開方(為了解決方差的量綱問題,將其開方得到平方差)得到均方根誤差RMSE(Root Mean Squarde Error):
6.3 平均絕對誤差MAE
對于線性回歸算法還有另外一種非常樸素評測標準廷蓉。要求真實值與 預測結(jié)果之間的距離最小全封,可以直接相減做絕對值,加m次再除以m,即可求出平均距離刹悴,被稱作平均絕對誤差MAE(Mean Absolute Error):
在之前確定損失函數(shù)時行楞,我們提過,絕對值函數(shù)不是處處可導的颂跨,因此沒有使用絕對值敢伸。但是在評價模型時不影響。因此模型的評價方法可以和損失函數(shù)不同恒削。
0x07 更好用的R Square
RMSE和MAE得到的是誤差池颈,沒有分類準確率(0-1之間取值)的性質(zhì),有這樣的局限性钓丰,引入新的指標R Squared解決躯砰。
R Squared:
分子:預測值和真實值之差的平方和,即使用我們的模型預測產(chǎn)生的錯誤携丁。
分母:是均值和真實值之差的平方和琢歇,即認為“預測值=樣本均值”這個模型(Baseline Model)所產(chǎn)生的錯誤。
使用Baseline模型產(chǎn)生的錯誤較多梦鉴,使用自己的模型錯誤較少李茫。因此用1減去較少的錯誤除以較多的錯誤,實際上是衡量了我們的模型擬合住數(shù)據(jù)的地方肥橙,即沒有產(chǎn)生錯誤的相應指標魄宏。
結(jié)論:
R^2 < 0,說明學習模型不如基準模型存筏。此時宠互,數(shù)據(jù)很有可能不存在任何線性關系;
R^2 = 0椭坚,預測模型等于基準模型予跌;
R^2越大也好,越大說明減數(shù)的分子小善茎,錯誤率低券册;
R^2 =?1,預測模型不犯任何錯誤巾表;
R^2 <= 1汁掠。
0x08 《機器學習》補充
8.1 分類
8.1.1P-R圖
P-R圖顯示模型在樣本總體上的查全率(R),查準率(P)集币,在比較時若一個模型的P-R曲線被另一個模型的曲線完全“包住”考阱,則可斷言后者性能優(yōu)于前者。
P-R曲線發(fā)生交叉時鞠苟,比較曲線下面積或“平衡點”BEP(Break-Even Point)“查準率=查全率”時的取值乞榨。
8.1.2 多個二分類混淆矩陣
在個混淆矩陣分別計算P秽之,R值,在計算平均吃既,得“宏查準率”(macro-P)考榨,“宏查全率”(macro-R),“宏F1”(macro-F1)鹦倚,基于對應元素平均河质,得“微查準率”(micro-P),“微查全率”(micro-R)震叙,“微F1”(micro-F1)掀鹅。
8.1.3 非均等代價(unequal cost)
權衡不同類型錯誤造成的不同損失∶铰ィ“代價矩陣”(cost matrix)cost01>cost10乐尊,表示真0預1損失程度大于真1預0。
非均等代價下划址,ROC曲線不能直接反映模型期望總體代價扔嵌,而“代價曲線”可以。
8.1.4 偏差夺颤、方差痢缎、噪聲
偏差度量了算法的期望與真實值的偏離程度,刻畫算法本身的擬合能力世澜;方差度量同樣大小的訓練集的變動導致學習性能的變化牺弄,刻畫數(shù)據(jù)擾動造成的影響;噪聲表達當前任務上任何學習算法所能達到的期望泛化誤差下界宜狐,刻畫任務本身的難度。偏差-方差分解說明蛇捌,泛化性能是由算法的能力抚恒、數(shù)據(jù)充分性、任務本身難度所共同決定的络拌。
0xFF 總結(jié)
線性回歸的評價指標與分類的評價指標有很大的不同:
評價分類結(jié)果:
準確度(簡單常用情況)俭驮、
混淆矩陣(處理極度偏斜的數(shù)據(jù))、
精準率(關注預測中春贸,正確的比例)混萝、
召回率(關注事件發(fā)生的情況下,成功預測的比例)萍恕、
F1 Score(精準率和召回率的調(diào)和平均值)逸嘀、
ROC曲線(分類閾值、召回率TPR允粤、負例中誤判比例FPR崭倘、曲線下面積AUC)等
評價回歸結(jié)果:
均方誤差MSE(預測值與真實值之差的平方和翼岁,再除以樣本量)、
均方根誤差RMSE(為了消除量綱司光,將MSE開方)琅坡、
平均絕對誤差MAE(預測值與真實值之差的絕對值,再除以樣本量)残家、
以及R方(用1減去較少的錯誤除以較多的錯誤榆俺,實際上是衡量了我們的模型擬合住數(shù)據(jù)的地方,即沒有產(chǎn)生錯誤的相應指標)坞淮。
參考閱讀:
1.《機器學習的敲門磚:kNN算法(中)》(上周已閱)
2.《評價分類結(jié)果(上):混淆矩陣茴晋、精準率、召回率》
3.《評價分類結(jié)果(下):F1 Score碾盐、ROC晃跺、AUC》
7.《機器學習》周志華著,第2章 模型評估與選擇(P23)
代碼另附毫玖。