五、模型融合与调优
- 一、模型選擇
- 1.1 模型的選擇
- 1.2 超參數(shù)的選擇
- 二、模型效果優(yōu)化
- 2.1 不同模型狀態(tài)的處理
- 2.2 線性模型的權(quán)重分析
- 2.3 Bad-case分析
- 2.4 模型融合
- 一、模型選擇
一、模型選擇
1.1 模型的選擇
確定場景,劃分為模型能解決的問題
根據(jù)樣本大小確定模型,不是所有的樣本都可以用DL/復(fù)雜模型,需要人工總結(jié)小樣本數(shù)據(jù)的規(guī)律或采集更多的數(shù)據(jù)
注意數(shù)據(jù)形態(tài),包括語音、圖像、文本等
1.2 超參數(shù)的選擇
確定了某類模型之后,模型中可調(diào)的參數(shù)會影響模型的效果,可以通過交叉驗證的方法來確定好的參數(shù)。
數(shù)據(jù)集被分為三部分:訓(xùn)練集、驗證集、測試集
訓(xùn)練集:模型的訓(xùn)練
驗證集:參數(shù)/模型的選擇
測試集:模型效果的評估
交叉驗證:基本思想就是將原始數(shù)據(jù)(dataset)進(jìn)行分組,一部分做為訓(xùn)練集來訓(xùn)練模型,另一部分做為測試集來評價模型
作用:
- 用于評估模型的預(yù)測性能,尤其是訓(xùn)練好的模型在新數(shù)據(jù)上的表現(xiàn),可以在一定程度上減小過擬合
- 從有限的數(shù)據(jù)中獲取盡可能多的有效信息
不同方法:
留出法:隨機(jī)將數(shù)據(jù)分為三組即可
不過如果只做一次分割,它對訓(xùn)練集、驗證集和測試集的樣本數(shù)比例,還有分割后的數(shù)據(jù)和原始數(shù)據(jù)集的分布是否相同等因素比較敏感,不同的劃分會得到不同的最優(yōu)模型,而且分成三個集合后,用于訓(xùn)練的數(shù)據(jù)更少了。
k折交叉驗證:將訓(xùn)練數(shù)據(jù)隨機(jī)分成k份,每次選擇一份做驗證集,其余k-1份做訓(xùn)練集,重復(fù)k次,得到k個驗證結(jié)果,取平均最為評估效果的標(biāo)準(zhǔn)。一般建議k=10
通過對 k 個不同分組訓(xùn)練的結(jié)果進(jìn)行平均來減少方差,因此模型的性能對數(shù)據(jù)的劃分就不那么敏感。
參數(shù)的選擇
K較小(比如2,也就是用一半的數(shù)據(jù)來訓(xùn)練,此時數(shù)據(jù)太少,模型復(fù)雜,會過擬合)的情況時偏差較低,方差較高,過擬合;K較高的情況時,偏差較高,方差較低,欠擬合;
最佳的模型參數(shù)取在中間位置,該情況下,使得偏置和方差得以平衡,模型針對于非樣本數(shù)據(jù)的泛化能力是最佳的。
模型的選擇
對不同的模型進(jìn)行k折交叉驗證,選擇結(jié)果較好的模型。
特征的選擇
通過交叉驗證來進(jìn)行特征的選擇,對比不同的特征組合對于模型的預(yù)測效果
留一法:留一法就是每次只留下一個樣本作為測試集,如果有m個樣本,則要進(jìn)行 m 次訓(xùn)練和預(yù)測。
BoostStrapping法:即在含有 m 個樣本的數(shù)據(jù)集中,每次隨機(jī)挑選一個樣本,再放回到數(shù)據(jù)集中,再隨機(jī)挑選一個樣本,這樣有放回地進(jìn)行抽樣 m 次,組成了新的數(shù)據(jù)集作為訓(xùn)練集。
工業(yè)界其實利用隨機(jī)切分較多,因為工業(yè)的數(shù)據(jù)量很大。
二、模型效果優(yōu)化
2.1 不同模型狀態(tài)的處理
方差和偏差的權(quán)衡,也就是過擬合和欠擬合的權(quán)衡
方差:形容一個模型的穩(wěn)定性的,也就是參數(shù)分布的離散情況,如果參數(shù)分布很離散,說明模型很不穩(wěn)定,參數(shù)幅值波動很大,會發(fā)生過擬合。
偏差:形容預(yù)測結(jié)果和真實結(jié)果的偏離程度的,如果偏差太大說明預(yù)測結(jié)果和真實結(jié)果差距很大,即模型的學(xué)習(xí)能力太弱,會發(fā)生欠擬合。
如何降低方差:對模型降維、增加樣本輸入、正則化
如何降低偏差:對模型升維、增加特征維度
模型狀態(tài)驗證工具——學(xué)習(xí)曲線(learning curve)
學(xué)習(xí)曲線:訓(xùn)練樣本數(shù)——準(zhǔn)確率的關(guān)系
簡述:
隨著訓(xùn)練樣本數(shù)的增大,訓(xùn)練集的準(zhǔn)確率會降低,而驗證集的準(zhǔn)確率會增大。
因為如果是10個數(shù)據(jù),模型將其記住就好了,不用學(xué)習(xí)底層規(guī)律,但驗證集的準(zhǔn)確率會很低;
如果有100個數(shù)據(jù),模型稍微學(xué)到了一些規(guī)律,但是不全面,此時訓(xùn)練集的準(zhǔn)確率會降低,但是驗證集的準(zhǔn)確率會有升高;
如果有10000個數(shù)據(jù),模型基本上學(xué)到了樣本和標(biāo)簽間的規(guī)律,訓(xùn)練集準(zhǔn)確率還會下降,但是驗證集的準(zhǔn)確率會上升;
如果訓(xùn)練數(shù)據(jù)達(dá)到了10w個,模型的訓(xùn)練準(zhǔn)確率降低的空間已經(jīng)很小了,正常情況下,訓(xùn)練數(shù)據(jù)集和驗證數(shù)據(jù)集的準(zhǔn)確率會很接近。
在高bias情況下如何處理:
之所以出現(xiàn)高偏差是因為模型太過簡單,沒有能力學(xué)習(xí)到樣本的底層規(guī)律,所以訓(xùn)練集和驗證集的準(zhǔn)確率都會很低。
在高variance情況下如何處理:
之所以會出現(xiàn)高方差是因為,模型太過復(fù)雜,學(xué)習(xí)太過,在訓(xùn)練集的準(zhǔn)確率較好,但是在驗證集上的泛化能力較差,驗證集的準(zhǔn)確率較低,兩個準(zhǔn)確率相差較大。
2.2 線性模型的權(quán)重分析
2.3 Bad-case分析
2.4 模型融合
模型融合:把獨(dú)立的學(xué)習(xí)器組合起來的結(jié)果
如果獨(dú)立的學(xué)習(xí)器為同質(zhì),稱為基學(xué)習(xí)器(都為SVM或都為LR)
如果獨(dú)立的學(xué)習(xí)器為異質(zhì),稱為組合學(xué)習(xí)器(將SVM+LR組合)
為什么要進(jìn)行模型融合:
將幾個獨(dú)立學(xué)習(xí)器的結(jié)果求平均,在統(tǒng)計、計算效率、性能表現(xiàn)上都有較好的效果。
統(tǒng)計上:假設(shè)空間中幾個學(xué)習(xí)器的假設(shè)函數(shù)的平均更接近真實的假設(shè)f
計算上:迭代求解可能落入局部最優(yōu)解,但是多個局部最優(yōu)解的平均更接近全局最優(yōu)解
損失函數(shù)有可能不是光滑的,不同的初始點和學(xué)習(xí)率可能有不同的局部最小,將其平均能得到更好的。
性能表現(xiàn)上:真實的假設(shè)函數(shù)f可能不在已知的假設(shè)空間H內(nèi),學(xué)習(xí)器的平均更可能接近H外的真實假設(shè)H
如果模型本身就不具備表達(dá)場景的能力,那么無論怎么搜索H都不會搜到。
模型融合的例子:
1、Bagging
2、Stacking
- 將訓(xùn)練集劃分為兩個正交集D1(x,y),D2(x’,y’)
- 利用D1來學(xué)習(xí)三個模型,假設(shè)分別為LR,SVM,DT
- 利用第二份數(shù)據(jù)D2的x分別作為第一層學(xué)到的三個模型的輸入,得到預(yù)測值y1,y2,y3,將其組合可以得到預(yù)估的輸出y^y^
- 已有真實輸出的標(biāo)簽y’,可以學(xué)習(xí)到如何從預(yù)估的y^y^,來學(xué)習(xí)如何得到真實的y
第一層的數(shù)據(jù):為了訓(xùn)練得到三個模型
第二層的數(shù)據(jù):為了用三個模型來預(yù)測輸出,得到的輸入送入線性分類器得到最終的預(yù)估y^y^,再不斷的訓(xùn)練模型使得模型的預(yù)估和真實的y′y′最接近
之所以將數(shù)據(jù)分成兩組,是為了避免過擬合
3、Adaboost
4、Gradient Boosting Tree
解決回歸問題
通過不斷的擬合預(yù)測和真實的殘差來學(xué)習(xí),也就是每次迭代盡量擬合損失函數(shù)在當(dāng)前情況下的負(fù)梯度,構(gòu)建的樹是能使得損失函數(shù)降低最多的學(xué)習(xí)器,來解決回歸問題,調(diào)整后也能解決分類問題。
總結(jié)
- 上一篇: 显示面板价格持续下降,京东方 2022
- 下一篇: 七、聚类算法与应用