?在機(jī)器學(xué)習(xí)訓(xùn)練模型時(shí),對(duì)于數(shù)據(jù)集的劃分其實(shí)是很重要的一個(gè)步驟.如果數(shù)據(jù)集劃分出現(xiàn)問(wèn)題,那么將會(huì)導(dǎo)致模型過(guò)擬合(over fitting)或者欠擬合(under fitting).比如一次蘋(píng)果品質(zhì)判斷模型訓(xùn)練中,剛好把具有斑點(diǎn)屬性的好蘋(píng)果全部劃分到了train_data中,那么這次訓(xùn)練會(huì)由此導(dǎo)致過(guò)擬合的發(fā)生.
那么如何更好地評(píng)估模型,從而根據(jù)評(píng)估結(jié)果進(jìn)行模型判斷呢?
當(dāng)然解決方案就是采用鼎鼎大名的K折交叉驗(yàn)證的方法.

在K折交叉驗(yàn)證中也存在一個(gè)問(wèn)題,k如何取值?
?k取值越大,即樣本被劃分用來(lái)訓(xùn)練的次數(shù)也就越多,保證了充分利用所有的樣本.帶來(lái)的后果是由偏差bias帶來(lái)的泛化誤差降低,由方差variance帶來(lái)的泛化誤差增加,同時(shí)還增加了計(jì)算量.總的來(lái)說(shuō)就是過(guò)擬合(over fitting).
?k值取得越小,即樣本被劃分用來(lái)訓(xùn)練的次數(shù)也就越少,沒(méi)有保證樣本被充分利用,此時(shí),模型還沒(méi)有學(xué)到足夠多的信息.帶來(lái)的后果是由偏差bias帶來(lái)的泛化誤差增加,由方差variance帶來(lái)的泛化誤差降低.總的來(lái)說(shuō)就是欠擬合(under fitting).
?根據(jù)經(jīng)驗(yàn),k一般取5或者10.
偏差和反差又是什么呢?
一張圖就能看懂.

?偏差(bias)衡量的是模型對(duì)于訓(xùn)練數(shù)據(jù)的擬合程度(欠擬合是導(dǎo)致偏差的主要原因偏差越大,即訓(xùn)練的結(jié)果離真實(shí)樣本就差遠(yuǎn)):
偏差過(guò)于低,僅代表對(duì)于訓(xùn)練數(shù)據(jù)的完美擬合,意味著模型十分復(fù)雜,已經(jīng)過(guò)擬合(overfitting).一旦數(shù)據(jù)有任何的風(fēng)吹草動(dòng),模型就會(huì)跟著發(fā)生顯著變化,說(shuō)明模型并不具有普適性,已經(jīng)過(guò)于復(fù)雜了.
偏差越高說(shuō)明模型對(duì)于訓(xùn)練數(shù)據(jù)的擬合還不到位,模型還過(guò)于簡(jiǎn)陋,屬于欠擬合.導(dǎo)致這一情況發(fā)生的主要原因一般是對(duì)問(wèn)題本身的假設(shè)不正確(例如二階多項(xiàng)式回歸擬合的問(wèn)題,采用了一階線(xiàn)性回歸進(jìn)行解決),亦或者是對(duì)于特征的選取出現(xiàn)問(wèn)題(例如預(yù)測(cè)學(xué)生成績(jī),選用的特征卻是學(xué)生名字).
?方差(variance)描述的是訓(xùn)練模型在測(cè)試集上的表現(xiàn),即主要是泛化性能的體現(xiàn),方差越大說(shuō)明模型越復(fù)雜越是過(guò)擬合,容易受到擾動(dòng). 因此,要求variance越小越好.為了降低方差,就需要簡(jiǎn)化模型,減少模型的參數(shù),但是這樣又容易欠擬合(under fitting).
?因此可以發(fā)現(xiàn)偏差和方差是不可能同時(shí)最優(yōu)的,只能盡量選擇出泛化誤差Error最小的組合,因?yàn)榉夯疎rror = Bias + Variance.

有一些算法天生就是高方差的算法:KNN
通常來(lái)說(shuō),非參數(shù)學(xué)習(xí)通常都是高方差算法.因?yàn)槟P蛯?duì)訓(xùn)練數(shù)據(jù)非常敏感.
有一些算法天生就是高偏差算法:線(xiàn)性回歸
參數(shù)學(xué)習(xí)通常都是高偏差算法.因?yàn)檫x取時(shí)模型本身具有極強(qiáng)的假設(shè)性.
但是,大多數(shù)算法具有相應(yīng)的參數(shù),可以調(diào)整偏差和方差.例如KNN中的k和線(xiàn)性回歸中的特征的階數(shù).
機(jī)器學(xué)習(xí)的主要挑戰(zhàn),來(lái)自于方差! 因?yàn)檫^(guò)擬合問(wèn)題是模型訓(xùn)練中最常見(jiàn)的問(wèn)題.
解決高方差的手段:
- 降低模型復(fù)雜度 : 防止過(guò)擬合
- 減少數(shù)據(jù)維度,降噪 : 盡量減少算法學(xué)習(xí)到的噪音信息
- 增加樣本數(shù)目 : 算法模型太過(guò)復(fù)雜時(shí),必要的參數(shù)過(guò)多,但是樣本數(shù)目太少,不足以學(xué)習(xí)到最優(yōu)的參數(shù).
- 使用驗(yàn)證集 : 增加樣本拆分?jǐn)?shù)量,綜合評(píng)價(jià)模型.
- 模型正則化: 最常見(jiàn)也是最重要的限制模型復(fù)雜程度的手段.