????????本文是coursera上吳恩達(dá)老師的machinelearning課程第六周的個(gè)人筆記,如果有幸被同好看到,可以在留言中指出我的問(wèn)題或者一起討論!
一、算法評(píng)估
1、數(shù)據(jù)集的劃分
????????評(píng)估算法過(guò)程中,我們要將數(shù)據(jù)集分成訓(xùn)練集、交叉驗(yàn)證集、測(cè)試集,習(xí)慣上應(yīng)該先將數(shù)據(jù)集隨機(jī)無(wú)規(guī)律排序后按照6:2:2的比例進(jìn)行劃分。三個(gè)集合分別計(jì)算的代價(jià)函數(shù)J記為Jtrain,Jcv,Jtest。
2、模型(多項(xiàng)式)選擇
? ? ? ? 即假設(shè)函數(shù)h的次數(shù),對(duì)于待測(cè)試的的不同次數(shù)的假設(shè)函數(shù)分別利用訓(xùn)練集訓(xùn)練,將得到的模型再利用交叉驗(yàn)證集(簡(jiǎn)稱驗(yàn)證集)計(jì)算代價(jià)函數(shù)即驗(yàn)證誤差。驗(yàn)證誤差最小的模型即位采用的模型,再利用測(cè)試集得到推廣誤差。
3、欠擬合與過(guò)擬合的診斷
? ? ? ? 此時(shí)需要繪制Jtrain和Jcv的曲線來(lái)分析擬合好壞情況。如圖所示,當(dāng)次數(shù)很小的時(shí)候,對(duì)訓(xùn)練集和驗(yàn)證集擬合效果都不好(誤差高),此時(shí)為欠擬合;當(dāng)次數(shù)過(guò)大的時(shí)候,對(duì)測(cè)試集擬合情況會(huì)非常的好,但是對(duì)未知情況(驗(yàn)證集)的預(yù)測(cè)能力會(huì)下降(誤差升高),即訓(xùn)練集誤差很小,驗(yàn)證集誤差過(guò)大,兩者相差很大,此時(shí)為過(guò)擬合。得出結(jié)論:增大多項(xiàng)式次數(shù)能改善欠擬合情況。反之則相反。

4、正則化與擬合情況的關(guān)系
? ? ? ? 此時(shí)依舊需要繪制Jtrain和Jcv的曲線,但是橫坐標(biāo)為正則化參數(shù)。如圖所示,正則化參數(shù)越大,對(duì)擬合的“懲罰”就越大,所以會(huì)減少過(guò)擬合情況,
過(guò)大的極端條件下,即位欠擬合,過(guò)小即不做正則化處理,即為過(guò)擬合。得出結(jié)論:減小正則化參數(shù)能改善欠擬合情況。反之則相反。

5、學(xué)習(xí)曲線
? ? ? ? 一味的增大訓(xùn)練實(shí)例不一定能顯著提升算法的能力,這個(gè)結(jié)論從學(xué)習(xí)曲線中得到。當(dāng)Jtrain從很小增加到很大,Jcv從很大沒(méi)有顯著下降時(shí),即位欠擬合,如圖所示,即使增加m的數(shù)量,也無(wú)法改善此算法的能力。

? ? ? ? 當(dāng)Jtrain從很小緩慢增加,Jcv從很大緩慢下降,此時(shí)在較少訓(xùn)練集下表現(xiàn)出很大的差距(large gap)時(shí),即為過(guò)擬合,如圖所示,隨著m的增大,二者距離會(huì)越來(lái)越接近,進(jìn)而達(dá)到改善算法能力的效果。

????????綜合這兩種情況得出結(jié)論:增加訓(xùn)練實(shí)例的數(shù)量可以改善過(guò)擬合情況,沒(méi)有反之。
6、特征與神經(jīng)網(wǎng)絡(luò)
? ? ? ? 對(duì)于特征,我們可以去掉一些無(wú)關(guān)特征來(lái)改善過(guò)擬合情況;或者增加更能預(yù)測(cè)結(jié)果的一些特征來(lái)改善欠擬合。
? ? ? ? 對(duì)與網(wǎng)絡(luò)較小的神經(jīng)網(wǎng)絡(luò),參數(shù)少,容易導(dǎo)致欠擬合,但是計(jì)算量??;對(duì)于較大的神經(jīng)網(wǎng)絡(luò),參數(shù)多,容易導(dǎo)致過(guò)擬合,可加入正則化參數(shù)來(lái)改善,計(jì)算量大。較大的神經(jīng)網(wǎng)絡(luò)加正則化的效果更好。
二、誤差分析
1、Skewed Classes(分類偏移)
? ? ? ? 分類偏移是指兩個(gè)類別中其中一個(gè)類別出現(xiàn)的概率非常小,比如腫瘤預(yù)測(cè),腫瘤患者在整個(gè)數(shù)據(jù)集中往往只占0.5%,剩余的99.5%都是健康的,在這樣的情況下正常的考慮誤差的方式將不適用,因?yàn)榧词顾惴ㄓ肋h(yuǎn)預(yù)測(cè)一個(gè)人是健康的,誤差也只有0.5%。為了評(píng)估skewed classes情況的數(shù)據(jù)集,我們要引入查準(zhǔn)率(precision)和查全率(recall)。
? ? ? ? 查準(zhǔn)率:預(yù)測(cè)為1的里面,確實(shí)是1的概率。
? ? ? ? 查全率:實(shí)際是1的里面,被預(yù)測(cè)出來(lái)的概率。
? ? ? ? 查準(zhǔn)率和查全率都應(yīng)該盡可能的大。這里面的1,選取概率小的那一個(gè)類別。所以按照腫瘤的例子,如果永遠(yuǎn)預(yù)測(cè)一個(gè)人是健康的(0),那么他的查準(zhǔn)率為無(wú)窮大,但是查全率為0。
2、閾值與權(quán)衡查準(zhǔn)率和查全率
????????繪制下圖,查準(zhǔn)率查全率與閾值的關(guān)系。

? ? ? ? 閾值是指假設(shè)函數(shù)h不一定只有在大于0.5的適合預(yù)測(cè)為1,也可以設(shè)置新的閾值,比如為了讓病人警惕性更強(qiáng)一些,可以將閾值設(shè)置為0.3,這樣可以查得更全(查全率高),也可以把閾值設(shè)置的更高比如0.9,這樣只有當(dāng)可能性非常大時(shí)才會(huì)被判斷為腫瘤,也就是查得更準(zhǔn)(查準(zhǔn)率高)。
? ? ? ? 為了權(quán)衡兩個(gè)指標(biāo)的關(guān)系,對(duì)于既定的幾個(gè)閾值,計(jì)算他們的查準(zhǔn)率P和查全率R,然后計(jì)算F1值:F1score ?=?。選取F1最高的閾值,即可權(quán)衡查準(zhǔn)率和查全率。