日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

第六课 多算法组合与模型调优

發(fā)布時(shí)間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第六课 多算法组合与模型调优 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本系列是七月算法機(jī)器學(xué)習(xí)課程筆記

文章目錄

  • 1 前序工作流程
    • 1.1 數(shù)據(jù)處理
    • 1.2 特征工程
    • 1.3 模型選擇
    • 1.4 交叉驗(yàn)證
    • 1.5 尋找最佳超參數(shù)
  • 2 模型優(yōu)化
    • 2.1 模型狀態(tài)
    • 2.2 模型優(yōu)化1
    • 2.3 模型優(yōu)化2
    • 2.4 模型優(yōu)化3
    • 2.5 模型優(yōu)化4:模型融合
      • 2.5.1 bagging
      • 2.5.2 staking
      • 2.5.3 adaboost
      • 2.5.4 Gradient Boosting Tree

1 前序工作流程

1.1 數(shù)據(jù)處理

1.2 特征工程

這兩部分在第五課已經(jīng)說(shuō)明了。

1.3 模型選擇

在sklearn中有關(guān)于算法選擇的路徑圖。但也不是絕對(duì)的。
模型選擇有兩種含義。
第一種是:選擇不同算法。
當(dāng)拿到一個(gè)問(wèn)題先看屬于這4種類型中的哪一種:分類?回歸?聚類?降維?例如搜索結(jié)果排序,看上去不是上面的任何一種。繼續(xù)想為什么要排序,排序就是把用戶想點(diǎn)的數(shù)據(jù)放在前面,那就可以將問(wèn)題看做是分類問(wèn)題:用戶會(huì)點(diǎn)的數(shù)據(jù)和用戶不會(huì)點(diǎn)的數(shù)據(jù)。當(dāng)然也可以看做是回歸問(wèn)題:用戶點(diǎn)擊數(shù)據(jù)的概率。
此外還要看數(shù)據(jù)類型:是文本型數(shù)據(jù)還是數(shù)值型數(shù)據(jù)。例如分類問(wèn)題中文本型數(shù)據(jù)推薦使用樸素貝葉斯算法。數(shù)值型可以使用K近鄰或者SVM。

第二種是:選擇超參數(shù)
這就類似于師哥師姐給你介紹了很多學(xué)習(xí)方法,當(dāng)用在你自己的具體情況下,究竟該學(xué)習(xí)多少小時(shí)的英語(yǔ),該用多少小時(shí)學(xué)習(xí)數(shù)學(xué)。這是需要考慮的。

1.4 交叉驗(yàn)證

交叉驗(yàn)證是用于評(píng)估模型超參數(shù)的一種方法。
我們將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集。測(cè)試集用于評(píng)估模型,只能使用一次,類比于三年只能參加一次高考。
交叉驗(yàn)證最常采用的方法是K折交叉驗(yàn)證。是將訓(xùn)練集分為k份。每次隨機(jī)選擇一份數(shù)據(jù)用于驗(yàn)證,其余數(shù)據(jù)用于訓(xùn)練。
例如下圖,在給定一組超參數(shù)條件下,使用其中1份數(shù)據(jù)用于評(píng)估,4份數(shù)據(jù)用于訓(xùn)練。做5次訓(xùn)練,得到5個(gè)模型的評(píng)估結(jié)果,求其平均值作為該組參數(shù)的驗(yàn)證結(jié)果。

1.5 尋找最佳超參數(shù)

尋找最佳超參數(shù)有幾種方法,常用的是網(wǎng)格搜索交叉驗(yàn)證GridSearchCV。
網(wǎng)格交叉驗(yàn)證就是任意參數(shù)要做兩兩組合。例如C=[1,10,100],gamma=[0.001,0.0001]。那網(wǎng)格交叉驗(yàn)證就可以得到6組超參數(shù)。每一組超參數(shù)交給交叉驗(yàn)證算法,評(píng)估模型效果。
最后選擇模型效果最好的那一組參數(shù)作為最終模型的超參數(shù)。在訓(xùn)練集上訓(xùn)練得到模型作為最終的模型。

此外還有隨機(jī)搜索交叉驗(yàn)證方法。他們只是組合超參數(shù)的方式不同。

2 模型優(yōu)化

2.1 模型狀態(tài)

模型的狀態(tài)分為:過(guò)擬合、欠擬合、合適。

欠擬合是指模型學(xué)習(xí)能力弱,不能很好的表達(dá)數(shù)據(jù)。表現(xiàn)特征是在訓(xùn)練集準(zhǔn)確率低,在測(cè)試集準(zhǔn)確率低。

過(guò)擬合是指模型學(xué)習(xí)能力強(qiáng),學(xué)習(xí)了噪音數(shù)據(jù)。表現(xiàn)特征是在訓(xùn)練集準(zhǔn)確率高,在測(cè)試集準(zhǔn)確率低。

訓(xùn)練集準(zhǔn)確率隨著樣本量的增加而減小。原因是當(dāng)樣本量小的時(shí)候,模型不是學(xué)習(xí)而是記憶結(jié)果。所以隨著樣本量增加,訓(xùn)練集準(zhǔn)確率降低。
測(cè)試集準(zhǔn)確率隨著樣本量的增加而增加。原因是見(jiàn)到的樣本多了,自然訓(xùn)練集數(shù)據(jù)越接近真實(shí)世界的數(shù)據(jù),能夠正確處理的數(shù)據(jù)也越來(lái)越多。
下圖中的紅線是一條標(biāo)準(zhǔn)線,是理想中想要找到的線。

在實(shí)際工作中,不會(huì)畫(huà)這么麻煩的曲線,時(shí)間也不允許。會(huì)直接拿數(shù)據(jù),看準(zhǔn)確率。準(zhǔn)確率都低,那基本就是欠擬合。訓(xùn)練集準(zhǔn)確率高,測(cè)試集準(zhǔn)確率低,過(guò)擬合。

2.2 模型優(yōu)化1

如果發(fā)生過(guò)擬合:
1 采集更多的數(shù)據(jù):增加數(shù)據(jù)會(huì)降低噪音數(shù)據(jù)的影響
2 增大正則化系數(shù)

如果發(fā)生欠擬合:
1 找更多的特征
2 減小正則化系數(shù)

2.3 模型優(yōu)化2

如果是線性模型(線性回歸、邏輯回歸、線性SVM),可以分析特征系數(shù)。查看絕對(duì)值高的特征,看是不是可以做進(jìn)一步細(xì)化,甚至可以做特征組合。

2.4 模型優(yōu)化3

bad case分析
分析分錯(cuò)了的樣本,歸類錯(cuò)誤原因。
分類問(wèn)題:看是哪個(gè)特征的影響大,有沒(méi)有共性
回歸問(wèn)題:哪些樣本預(yù)測(cè)結(jié)果差距大,為什么?

2.5 模型優(yōu)化4:模型融合

模型融合(model ensemble)
模型融合是一組獨(dú)立的模型的組合。如果所有的模型都是同一種算法,稱為base leaner。如果模型算法不同,就稱為component leaner。

為什么這樣是有效的呢?
從統(tǒng)計(jì)角度來(lái)講,機(jī)器學(xué)習(xí)就是要找到一種從X到y(tǒng)的映射。這個(gè)真實(shí)的映射是什么誰(shuí)都不知道。那如果有多個(gè)模型來(lái)預(yù)測(cè)學(xué)習(xí)的話,可能會(huì)更接近真實(shí)。

從計(jì)算角度來(lái)講,很多優(yōu)化函數(shù)是沒(méi)有全局最優(yōu)解,找到的是局部最優(yōu)解。但是初始化參數(shù)不同,可能會(huì)落到不同的局部。有多個(gè)模型求平均,會(huì)接近最終想要的優(yōu)化局部。

模型融合的方式有三種
1 bagging :群眾的力量是偉大的,集體智慧是驚人的。
2 stacking:站在巨人的肩膀上能看得更遠(yuǎn)。
3 adboost:一萬(wàn)小時(shí)定律。

2.5.1 bagging

思路:很多時(shí)候模型效果不好是因?yàn)檫^(guò)擬合了。怎么解決?如果每次只給部分?jǐn)?shù)據(jù),多找?guī)讉€(gè)模型來(lái)做一下,綜合一下他們的答案。

過(guò)程:如果用同一個(gè)算法,每次取一個(gè)子集訓(xùn)練一個(gè)模型。如果是分類問(wèn)題,將多個(gè)模型的結(jié)果做vote,如果是回歸問(wèn)題,將多個(gè)模型的結(jié)果做平均。如果用不同的算法,用全部數(shù)據(jù)集訓(xùn)練模型。如果是分類問(wèn)題,將多個(gè)模型的結(jié)果做vote,如果是回歸問(wèn)題,將多個(gè)模型的結(jié)果做平均。

2.5.2 staking

stacking學(xué)習(xí)步驟分2步。將訓(xùn)練集分為兩部分?jǐn)?shù)據(jù)集D1和D2。D1和D2是沒(méi)有交集的。
第一步,也就是level0,使用數(shù)據(jù)集D1,學(xué)習(xí)到多個(gè)模型。例如學(xué)習(xí)到LR、SVM、DT三種模型。
第二步,也就是level1,使用數(shù)據(jù)集D2和使用上一步的模型,學(xué)習(xí)到新的模型,作為最終的模型。這個(gè)模型如果是線性模型,那可以理解為是前面模型的線性組合。這個(gè)模型也可能是其他模型。

通常情況下stacking這個(gè)模型能力會(huì)非常強(qiáng),所以第二層的模型一般使用線性模型,例如LR。

2.5.3 adaboost

思路:模型效果不好是因?yàn)椴粔蚺?#xff0c;要重復(fù)迭代和訓(xùn)練。要多做之前的錯(cuò)題,每次分配給分錯(cuò)的樣本更高的權(quán)重。用最簡(jiǎn)單的分類器疊加。

2.5.4 Gradient Boosting Tree

思路:從殘差中學(xué)習(xí)

總結(jié):模型融合有三種思路:bagging stacking boosting。
bagging的具體例子是:RandomForest
boosting的具體例子是:Adaboost,GDBT

bagging方式:VotingClassifier、BaggingClassifier、RandomForestClassifier
boosting方式:AdaBoostClassifier

總結(jié)

以上是生活随笔為你收集整理的第六课 多算法组合与模型调优的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。