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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

五、模型融合与调优

發布時間:2023/12/15 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 五、模型融合与调优 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

      • 一、模型選擇
        • 1.1 模型的選擇
        • 1.2 超參數的選擇
      • 二、模型效果優化
        • 2.1 不同模型狀態的處理
        • 2.2 線性模型的權重分析
        • 2.3 Bad-case分析
        • 2.4 模型融合

一、模型選擇

1.1 模型的選擇

  • 確定場景,劃分為模型能解決的問題

  • 根據樣本大小確定模型,不是所有的樣本都可以用DL/復雜模型,需要人工總結小樣本數據的規律或采集更多的數據

  • 注意數據形態,包括語音、圖像、文本等

1.2 超參數的選擇


確定了某類模型之后,模型中可調的參數會影響模型的效果,可以通過交叉驗證的方法來確定好的參數。

數據集被分為三部分:訓練集、驗證集、測試集

  • 訓練集:模型的訓練

  • 驗證集:參數/模型的選擇

  • 測試集:模型效果的評估

交叉驗證:基本思想就是將原始數據(dataset)進行分組,一部分做為訓練集來訓練模型,另一部分做為測試集來評價模型

作用:

  • 用于評估模型的預測性能,尤其是訓練好的模型在新數據上的表現,可以在一定程度上減小過擬合
  • 從有限的數據中獲取盡可能多的有效信息

不同方法:

留出法:隨機將數據分為三組即可

不過如果只做一次分割,它對訓練集、驗證集和測試集的樣本數比例,還有分割后的數據和原始數據集的分布是否相同等因素比較敏感,不同的劃分會得到不同的最優模型,而且分成三個集合后,用于訓練的數據更少了。

k折交叉驗證:將訓練數據隨機分成k份,每次選擇一份做驗證集,其余k-1份做訓練集,重復k次,得到k個驗證結果,取平均最為評估效果的標準。一般建議k=10

通過對 k 個不同分組訓練的結果進行平均來減少方差,因此模型的性能對數據的劃分就不那么敏感。

  • 參數的選擇

    K較小(比如2,也就是用一半的數據來訓練,此時數據太少,模型復雜,會過擬合)的情況時偏差較低,方差較高,過擬合;K較高的情況時,偏差較高,方差較低,欠擬合;

    最佳的模型參數取在中間位置,該情況下,使得偏置和方差得以平衡,模型針對于非樣本數據的泛化能力是最佳的。

  • 模型的選擇

    對不同的模型進行k折交叉驗證,選擇結果較好的模型。

  • 特征的選擇

    通過交叉驗證來進行特征的選擇,對比不同的特征組合對于模型的預測效果

留一法:留一法就是每次只留下一個樣本作為測試集,如果有m個樣本,則要進行 m 次訓練和預測。

BoostStrapping法:即在含有 m 個樣本的數據集中,每次隨機挑選一個樣本,再放回到數據集中,再隨機挑選一個樣本,這樣有放回地進行抽樣 m 次,組成了新的數據集作為訓練集。

工業界其實利用隨機切分較多,因為工業的數據量很大。

二、模型效果優化

2.1 不同模型狀態的處理

方差和偏差的權衡,也就是過擬合和欠擬合的權衡

方差:形容一個模型的穩定性的,也就是參數分布的離散情況,如果參數分布很離散,說明模型很不穩定,參數幅值波動很大,會發生過擬合。

偏差:形容預測結果和真實結果的偏離程度的,如果偏差太大說明預測結果和真實結果差距很大,即模型的學習能力太弱,會發生欠擬合。

如何降低方差:對模型降維、增加樣本輸入、正則化

如何降低偏差:對模型升維、增加特征維度

模型狀態驗證工具——學習曲線(learning curve)

學習曲線:訓練樣本數——準確率的關系


簡述:

隨著訓練樣本數的增大,訓練集的準確率會降低,而驗證集的準確率會增大。

因為如果是10個數據,模型將其記住就好了,不用學習底層規律,但驗證集的準確率會很低;

如果有100個數據,模型稍微學到了一些規律,但是不全面,此時訓練集的準確率會降低,但是驗證集的準確率會有升高;

如果有10000個數據,模型基本上學到了樣本和標簽間的規律,訓練集準確率還會下降,但是驗證集的準確率會上升;

如果訓練數據達到了10w個,模型的訓練準確率降低的空間已經很小了,正常情況下,訓練數據集和驗證數據集的準確率會很接近。

在高bias情況下如何處理:

之所以出現高偏差是因為模型太過簡單,沒有能力學習到樣本的底層規律,所以訓練集和驗證集的準確率都會很低。

在高variance情況下如何處理:

之所以會出現高方差是因為,模型太過復雜,學習太過,在訓練集的準確率較好,但是在驗證集上的泛化能力較差,驗證集的準確率較低,兩個準確率相差較大。

2.2 線性模型的權重分析

2.3 Bad-case分析

2.4 模型融合

模型融合:把獨立的學習器組合起來的結果

  • 如果獨立的學習器為同質,稱為基學習器(都為SVM或都為LR)

  • 如果獨立的學習器為異質,稱為組合學習器(將SVM+LR組合)

為什么要進行模型融合:

將幾個獨立學習器的結果求平均,在統計、計算效率、性能表現上都有較好的效果。

  • 統計上:假設空間中幾個學習器的假設函數的平均更接近真實的假設f

  • 計算上:迭代求解可能落入局部最優解,但是多個局部最優解的平均更接近全局最優解

    損失函數有可能不是光滑的,不同的初始點和學習率可能有不同的局部最小,將其平均能得到更好的。

  • 性能表現上:真實的假設函數f可能不在已知的假設空間H內,學習器的平均更可能接近H外的真實假設H

    如果模型本身就不具備表達場景的能力,那么無論怎么搜索H都不會搜到。

模型融合的例子:

1、Bagging


2、Stacking

  • 將訓練集劃分為兩個正交集D1(x,y),D2(x’,y’)
  • 利用D1來學習三個模型,假設分別為LR,SVM,DT
  • 利用第二份數據D2的x分別作為第一層學到的三個模型的輸入,得到預測值y1,y2,y3,將其組合可以得到預估的輸出y^y^
  • 已有真實輸出的標簽y’,可以學習到如何從預估的y^y^,來學習如何得到真實的y

第一層的數據:為了訓練得到三個模型

第二層的數據:為了用三個模型來預測輸出,得到的輸入送入線性分類器得到最終的預估y^y^,再不斷的訓練模型使得模型的預估和真實的yy′最接近

之所以將數據分成兩組,是為了避免過擬合

3、Adaboost

4、Gradient Boosting Tree

解決回歸問題

通過不斷的擬合預測和真實的殘差來學習,也就是每次迭代盡量擬合損失函數在當前情況下的負梯度,構建的樹是能使得損失函數降低最多的學習器,來解決回歸問題,調整后也能解決分類問題。

總結

以上是生活随笔為你收集整理的五、模型融合与调优的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。