機器學習---一個完整的機器學習目錄


一.問題建模

1.評價指標

1.1分類指標

  • 二分類

    • 精確率

      • P=TP/(TP+FP)
    • 召回率

      • R=TP/(TP+FN)
    • F1值

      • 2PR/(P+R)
    • P-R曲線

      • 橫軸是召回率0-1,縱軸為對應的召回率下的精確率
    • ROC曲線

      • 橫軸為假正率FPF=FP/(FP+TN),縱軸為真正率TPR=TP/(TP+FN)
    • AUC

      • 直接計算ROC曲線下的面積
        Wilcoxon-Mann-Witney Test:測試任意給一個正類樣本和一個負類樣本,正類樣本的score有多大概率大於負類樣本的score.
      • 兩種計算方法:
        O(M * N):統計一下所有的M*N個正負樣本對中,有多少個組中的正樣本中的score大於負樣本的socre,然后除以MN,M/N為正/負樣本的個數
        O(M + N):首先對score從大到小排序,然后令最大score對應的sample 的rank為n,第二大score對應sample的rank為n-1,以此類推。然后把所有的正類樣本的rank相加,再減去M-1種兩個正樣本組合的情況。得到的就是所有的樣本中有多少對正類樣本的score大於負類樣本的score。然后再除以M×N。
    • 對數損失

      • -log(P(Y|X))
  • 多分類

    • 准確率

      • (TP+TN)/ALL
    • 錯誤率

      • (FP+FN)/ALL

1.2回歸指標

  • 平均絕對誤差MAE

    • 也叫L1范數損失
    • 加權平均絕對誤差WMAE
  • 平均絕對百分誤差MAPR

  • 均分根誤差RMSE

    • 均方根對數誤差RMSLE

1.3聚類指標

1.4排序指標

  • 平均准確率MAP

  • NDCG歸一化貼現累計收益

2.樣本選擇

2.1好處

  • 縮短模型的時間;具體問題不需要全部信息;去除噪聲數據

2.2數據噪聲

  • 特征值缺失
  • 特征值超出值域范圍
  • 誤標注:二分類正樣本標注為負樣本
    • 集成過濾法(Ensembel filter,EF)
    • 交叉驗證委員會過濾法(Cross-validated committees filter,CVCF)
    • 迭代分割過濾法(Iterative partitioning filter,IPF)
  • 清洗爬蟲數據
  • 過濾無效曝光樣本

2.3采樣

  • 好處
    • 克服高維特征以及大量數據導致的問題,有助於降低成本,縮短時間甚至提升效果
  • 采樣方法:
    • 無放回的簡單抽樣:每條樣本被采到的概率相等且都為1/N
    • 有放回的簡單抽樣:每條樣本可能多次被選中
    • 平衡采樣,考慮正負比例
      • 上采樣
        • SMOTE
        • ADASYN
      • 下采樣
    • 整體采樣
      • 先將數據集T中的數據分組成G個互斥的簇,然后再從G個簇中簡單隨機采樣s個簇作為樣本集.
    • 分層采樣
      • 數據集T划分成不同的層,然后在每層內部進行簡單隨機抽樣,最后匯總成樣本集合S.該方法也常用於不平衡分類問題中,對每個類別進行采樣,能使每個類別在樣本集S中的分布和數據集T中的分布更為一致.

2.4原型選擇

  • 基於實例的方法,在樣本選擇過程中不需要訓練模型,而是選取相似度或距離度量標准來找到分類精度和數據量最佳的訓練集,多數采用KNN算法
  • 根據從數據集T中選擇樣本集S的方法分類
    • 遞增法
    • 遞增法
    • 批量法
    • 混合法
    • 固定法
  • 根據選擇樣本的策略進行分類
    • 包裝法:根據模型的目標函數,一般是模型預測結果來進行樣本選擇
    • 過濾法:樣本的選擇標准不基於模型
  • 根據選擇的樣本進行分類
    • condensation:保留決策邊界處樣本
    • Edition:刪除邊界的異常點,使得邊界更平滑
    • Hybrid:嘗試找到最小的樣本集S,能夠保持甚至提升測試集上的泛化精度

2.5訓練集選擇

  • 構建預測模型來進行樣本選擇,比如決策樹、ANN和SVM

3.交叉驗證

3.1留出法

  • 將數據集隨機划分為互斥的訓練集和測試集
  • 缺點:訓練集和測試集的划分驗證影響最終結果
  • 適用場景:數據有明顯的時間序列因素,即線上數據的時間都在離線數據集之后
  • 多次留出法:考慮到單詞留出法得到的結論往往不靠譜,我們進行多次留出法,每次隨機划分,最終將多次得到的實驗結論進行平均.

3.2K折交叉驗證

  • 比如分成5份,每次用其他的4份作為訓練集,用該份進行驗證;可以訓練5次
  • K值太小實驗穩定性偏低,K值太大有可能導致實驗成本高,常用K為5,10
  • 留一法=N折交叉驗證
    • K=N時,就是留一法(Leave-one-out,LLO)即每一條樣本當測試集,其余數據作訓練
    • 訓練N個模型,每個模型都基本用到了全部的數據,得到的模型和全部數據D得到的模型更相似,並且不再受隨機樣本划分方式的影響,因為划分方式只有一種了.但是當數據量N很大時,計算成本非常高,當數據稀疏時,LOO很適用.
  • 分層K折交叉驗證(stratified K-Fold)

3.3自助法Boostraping

  • n個樣本的樣本集,重復有放回采樣取n次,分成訓練集和測試集
  • 缺點:自助法改變了初始數據集的分布,會引入估計偏差

總結

  • 數據量足夠時,一般采用留出法和交叉驗證法;
  • 數據量較小時,並且難以有效區分訓練集和測試集時,自助法很有用.

二.特征工程

數據和特征決定了機器學習算法的上限,而模型和算法只是不斷逼近這個上限而已.

1.特征提取

1.1探索性的數據分析(Exploratory Data Analysis)

  • 發現內部數據的規律、檢測異常值.
  • 可視化技術:箱型圖/直方圖/多變量圖/鏈圖/帕累托圖/散點圖/莖葉圖
  • 定量技術:均值/方差/分位數/峰度/偏度

1.2數值特征

  • 截斷

    • 連續型的數值進行截斷或者對長尾數據進行對數后截斷(保留重要信息的前提下對特征進行截斷,截斷后的特征也可以看作是類別特征)
  • 二值化

    • 如網站每天的訪問量、餐廳的評論數、用戶對一首歌的播放次數.大數據時代,計算可以非常快地增加,處理計算特征時,首先要考慮,保留為原始計數還是轉換為二值變量來標識是否存在或者進行分桶操作.
  • 分桶

    • 均勻分桶:如商品的評論次數、年齡
    • 分位數分桶:如果數值變量的取值存在很大間隔時,有些桶里沒有數據,可以基於數據的分布進行分桶,例如利用聚類將特征分為多個類別.
  • 縮放

    • 標准化縮放(Z縮放)
    • 最大最小值縮放
    • 最大絕對值縮放
    • 范數歸一化:如使用L1范數、L2范數將數值向量的范數變為1
    • 平方根縮放、對數縮放
      • 對數縮放適用於處理長尾分且取值為正數的數值變量
      • 二者都是方差穩定的變換,冪變換的特例
      • Box-Cox轉換僅對取值為正數的特征起作用
      • 對於有異常點的數據,可以使用更加健壯的縮放,與一般的標准化基於標准差進行縮放不同的是,健壯的縮放使用中位數而不是均值,基於分位數而不是方差.
  • 缺失值處理

    • 補均值、中位數
    • 使用模型預測缺失值
    • 直接忽略,即將缺失作為一種信息進行編碼喂給模型讓其進行學習,現在有一些模型可以直接處理缺失值,如Xgboost模型可以處理缺失特征
  • 特征交叉

    • 針對兩個數值特征做加減乘除,可以通過特征選擇方法(如統計檢驗或者模型的特征重要性)來選擇有用的交叉組合.有些特征交叉組合,雖然沒有直觀的解釋,但有可能對於模型效果有很大的提升
    • 自動進行特征交叉組合,如FM/FFM,特征交叉可以在線性模型中引入非線性模型,提升模型的表達能力.
  • 非線性編碼

    • 線性模型往往很難學習到數據中的非線性關系,除特征交叉之外,也可以通過非線性編碼來提升線性模型的效果.例如使用多項式核,高斯核等
    • 將隨機森林模型的葉節點進行編碼喂給線性模型,這樣線性模型的特征包含了復雜的非線性信息
    • 基因算法/局部線性嵌入/譜嵌入/t-SNE等
  • 行統計量

    • 統計行向量中空值的個數、0的個數、正值或負值的個數
    • 均值、方差、最大值、最小值、偏度、峰度

1.3類別特征

  • 自然數編碼

    • 含有大小關系的數據,比如學生考試成績,分為高中低三檔,1表示高,2表示中,3表示低
  • 獨熱編碼

    • 處理不具有大小關系的特征
    • 缺點:
      • 會生成稀疏向量;
      • KNN在高緯度下兩點之間的距離很難進行有效的衡量,在LR模型中,參數的數量會隨着維度的增高而增加,任意引起過擬合現象.
  • 分層編碼

    • 如郵政編碼、身份證等,可以取不同維數進行分層,然后按層次進行自然數編碼
  • 散列編碼

    • 取值特別多的類別特征,使用獨熱編碼得到的特征矩陣非常稀疏,因此在進行獨熱編碼之前可以先對類別進行散列編碼,可以避免特征矩陣過於稀疏
    • 缺點:可能會導致特征取值沖突,這種沖突通常會削弱模型的效果,自然數編碼和分層編碼可以看作散列編碼的特例.
  • 計數編碼

    • 將類別特征用其對應的計數來代替,這對線性和非線性模型都有效.
    • 缺點:對異常值比較敏感,特征取值有可能沖突.
  • 計數排名編碼

    • 利用計數的排名對類別特征進行編碼,這對線性和非線性模型都有效
    • 缺點:對異常值不敏感,類別特征取值不會沖突
  • 目標編碼

    • 基於目標變量對類別特征進行編碼,對於基數(類別變量所有可能不同取值的個數)很大的離散特征,例如IP地址、網站域名、城市名、家庭地址、街道、產品編號等,用自然數編碼,簡單模型任意欠擬合,而復雜模型任意過擬合;對於獨熱編碼,得到的特征矩陣太稀疏.對於高基數類別變量,有效方式是基於目標變量對類別特征進行編碼,即有監督的編碼方式,適用於分類和回歸問題.
    • 分類:采用交叉驗證的方式,即將原本划分為5份,針對其中每一份數據,計算離散特征每個取值在另外4份數據中每個類別的比例.為了避免過擬合,也可以采用嵌套的交叉驗證划分方法;回歸問題同樣采用交叉驗證的方式計算目標變量均值對類別變量編碼.
    • 目標編碼對於基數較低的離散變量通常很有效,但對於基數特別高的離散數量,可能會有過擬合的風險,對於很多類別特征的取值樣本個數太少,不具有統計意義.這種情況,通常采用貝葉斯方式,即對統計特征進行貝葉斯平滑,如拉普拉斯平滑或者先驗概率和后驗概率加權平均的方式.
  • 類別特征之間交叉組合

    • 兩個類別特征進行笛卡爾積操作:適用於兩個(或多個)類別特征的基數較小的情況.
    • 基於統計的組合
      • 如針對城市ID和商品ID兩個類別特征,可以計算某個城市有多少不同的商品ID以及當前ID出現次數的分布,從而得到新的數值特征,或計算某個城市出現次數最多的商品ID,從而得到一個新的類別特征.
      • 對於多個類別特征也可以,如針對年齡、性別、產品ID三個類別特征,可以計算某個年齡段不同性別的人購買過多少產品或者對當前產品ID購買次數的分布等.
  • 類別特征和數值特征之間交叉組合

    • 通常是在某個類別中計算數值特征的一些統計量,如針對用戶ID,統計過去一段時間內在網站上的瀏覽次數、購買次數、以及購買價格的統計量,如均值、中位數、標准差、最大值和最小值等;針對產品,統計用戶對產品的評分、評價次數、購買次數、瀏覽次數等.
    • 例如統計產品在某個區域的銷量、產品的價格、或者當前產品的價格跟產品所在區域內的平均價格的差價等.

1.4時間特征

  • 單個時間變量

    • 年、月、日、時、分、秒、星期幾、年的第多少天、一天過了多少分鍾、季度、是否閏年、是否季度初、是否季度末、是否周末、是否營業時間、是否節假日
  • 兩個時間變量之間

    • 計算產品上線到現在經過了多少時間、顧客上次借款距離現在的時間間隔、兩個事件間隔是否包含節假日或其他特殊日期等.
  • 時間序列相關的特征

    • 如股票價格、天氣溫度、降雨量、訂單量等
    • 若問題是利用歷史數據預測未來,則對於t時刻,可以將t-1、t-2和t-3時刻的值也作為特征使用,若問題可以考慮未來信息,則t+1、t+2、t+3時刻的值也可以作為特征使用【時間窗口寬度為1】
  • 基於滑動窗口統計特征

    • 如計算前n個值的均值(回歸問題),或者前n個值中每個類別的分布(分類問題),時間窗口的選取可以有多種方式,上面提到的滯后特征是滑動窗口統計的一種特例,另一種常用的窗口設置包含所有歷史數據,稱為擴展窗口統計.

1.5空間特征

  • 經緯度

    • 做散列處理,從而對空間區域進行分塊,得到一個類別特征
    • 可以通過坐標拾取系統獲得當前位置的行政區ID、街道ID、城市ID等類別特征,從而進行類別特征的處理方式進行特征預處理.
  • 計算兩個位置之間的距離

    • 如用戶到超市或者電影院、餐廳的距離.距離的計算方式有很多種,例如可以計算歐氏距離、球面距離、曼哈頓距離,也可以是真實的街道距離.

1.6文本特征

  • 預處理

    • 將字符轉化為小寫、分詞、去除無用字符、提取詞根、詞干提取、標點符號編碼、文檔特征、實體插入和提取、word2vec、文本相似性、去除停用詞、去除稀有詞、TF-IDF、LDA、LSA等
  • 語料構建

    • 構建一個由文檔或短語組成的矩陣,矩陣的每一行為文檔,可以理解為對產品的描述,每一列為單詞,通常,文檔的個數與樣本的個數一致
  • 文本清洗

    • 如果數據通過網頁抓取,首先提出文本中的HTML標記;
    • 停用詞只用於語句的構建,但不包含任何真實的信息,因此需要剔除,
    • 為了避免文本中的大小寫差異,整個文本通常轉換為小寫形式;
    • 統一編碼;去除標點符號;去除數字;去除空格;還原為詞根.
    • 但是在某些情況下,文本不一定需要進行清洗,這取決於具體的應用場景.例如考慮某編輯員對某物品的描述,如果我們關心的對象是物品,則需要去除噪聲,保留關鍵信息,但如果我們關心的對象是編輯員,則噪聲信息一定程度上反映了此編輯員的水平.
  • 分詞

    • 詞性標注

      • 名詞、動詞、形容詞;詞性標注可以幫助我們了解語言的內在結構
    • 詞形還原和詞干提取

      • 詞性還原可以任何形式的語言還原為一般形式(能完整表達語義)
      • 詞干提取是抽取詞的詞干和詞根形式(不一定能表達完整語義)
    • 文本統計特征

      • 不需要考慮詞序信息,包括計算文本的長度、單詞個數、數字個數、字母個數、大小寫單詞個數、大小寫字母個數、標點符號個數、特殊字符個數等,數字占比、字母占比、特殊字符占比等,以及名詞個數、動詞個數等.
    • N-Gram模型

      • 將文本轉換為連續序列,序列的每一項包含n個元素(可以是單詞),這種想法是將一個或者兩個甚至多個單詞同時出現的信息喂給模型.3-Gram是常用的選擇
  • Skip-Gram模型

    • 詞集模型

      • 將文本轉換為實數或實向量;在詞集模型中,向量中的每個分量的取值為0和1,代表單詞是否在文檔匯總出現,向量空間模型沒有考慮詞序信息
    • 詞袋模型

      • 向量的每個分量的取值為單詞在文檔中的詞頻,為了避免向量維度太大,通常會過濾掉在文檔集合中詞頻很小的單詞.
    • TF-IDF

      • TF(Term Frequency,詞頻)
      • IDF(Inverese Document Frequency逆文檔頻率),用於評估單詞對於文件集或語料庫中的其中一份文件的重要程度.
      • 單詞或短語的重要性隨着它在文檔中出現的次數成正比增加,同時隨着它在語料庫中出現的頻率成反比下降.
      • 可以基於文檔的TF-IDF向量表示計算文檔之間的相似度,但不能很好地表示特別長的文檔,而且這種向量表示也沒有考慮詞序信息.基於TF-IDF和詞袋模型得到的表示文本的向量往往維度非常大,因此實際應用中一般需要降維處理.
  • 余弦相似度

    • 計算檢索詞q和文檔d之間的相關性.如將檢索詞和文檔都表示為向量,計算兩個向量之間的余弦相似度.
  • Jaccard相似度

    • 兩個文檔中相交的單詞個數除以兩個文檔出現單詞的總和.
  • Levenshtein(編輯距離)

    • 指兩個字符串由一個轉成另外一個所需要的最少編輯操作(如插入、刪除、替換)次數,它也是衡量兩個字符串相似度的指標
  • 隱性語義分析

    • 把高維的向量空間模型表示的文檔映射到低維的潛在語義空間中,即采用將文檔或詞矩陣進行SVD分解,由於SVD分解本身是對文檔特征進行排序,我們可以通過限制奇異值的個數對數據進行降噪和降維.一般而言,文檔和文檔或者文檔和查詢之間的相似性在簡化的潛在語義空間的表達更為可靠.
  • Word2Vec

    • 即將單詞所在的空間映射到一個低維的向量空間中,這樣每個單詞對應一個向量,通過計算向量之間的余弦相似度就可以得到某個單詞的同義詞.

2.特征選擇

2.1目的

  • 簡化模型;提高性能,減少內存和計算開銷;改善通用性、降低過擬合

2.2前提

  • 訓練數據中包含許多冗余或者無關的特征,移除這些特征並不會導致丟失信息

2.3過程

  • 特征產生過程
  • 評價函數
    - 衡量特征或特征子集的重要性或者好壞程度,因此需要量化特征變量和目標變量之間的聯系以及特征之間的相互關系.為了避免過擬合,一般采用交叉驗證的方式來評估特征的好壞
    • 停止准則
      • 為了減少計算復雜度,可以設定一個閾值,當評價指標達到閾值后搜索停止
    • 驗證過程
      • 在驗證集上驗證選出來的特征子集的有效性

2.4方法

2.4.1過濾法

  • 單變量

    • 覆蓋率

      • 如果特征的覆蓋率低,則可以剔除
    • 皮爾森相關系數

      • 計算兩個特征之間的線性相關性
    • Fisher得分

      • 對於分類問題,Fisher得分越高,則特征在不同類別間的差異性越大,在同類別中的差異性越小,則特征越重要
    • 假設檢驗

      • 假設特征變量和目標變量之間相互獨立,將其作為H0假設,選擇適當檢驗方法計算統計量,然后根據統計量確定P值做出統計推斷;卡方統計值越大,特征相關性越高
      • 特征變量=類別變量,目標變量=連續變量
        • 方差分析(Analysis of Variance,ANOVA)
      • 特征變量=連續變量,目標變量=連續變量
        • 皮爾森卡方檢驗
    • 互信息(或KL散度/相對熵)

      • 度量兩個變量之間的相關性,互信息越大表明兩個變量相關性越高;互信息為0,兩個變量越獨立.

    由於單變量過濾方法只考慮了單特征變量與目標變量之間的相關性,因此選擇的特征子集可能過於冗余.

  • 多變量

    • 最小冗余最大相關性(mRMR)

      • 考慮到了特征之間的冗余性,具體做法是對跟已選擇特征的相關性較高的冗余特征進行懲罰.
      • 不足:沒有考慮到特征之間的組合可能與目標變量比較相關,某個特征一旦被選擇了,在后續的步驟中不會被刪除,
    • QPFS

      • 通過二次規划求解,偏向於選擇熵比較小的特征,這是因為特征自身的冗余性
    • SPEC

      • 通過求解矩陣的主特征向量來求解,而且可以處理二階的特征組合
    • 相關特征選擇(CFS)

      • 基於以下假設來評估特征集合的重要性:好的特征集合包含跟目標變量非常相關的特征,但這些特征之間彼此不相關;這里的相關性不一定是皮爾森相關系數或斯皮爾曼相關系數
    • CFS、MBF、FCBF

  • 工具包

    • 數據量小

      • sklearn里面的feature_selection模塊
    • 數據量大

      • Spark MLlib

​ 由於過濾方法與具體的機器學習算法獨立,因此過濾方法沒有考慮選擇的特征集合在具體機器學習算法上的效果.封裝方法直接使用機器學習算法評估特征子集的效果,它可以檢測出兩個或多個特征之間的交互關系,而且選擇的特征子集讓模型的效果達到最優.

2.4.2封裝方法

  • 完全搜索

    • 思想:先用全部特征,然后去掉一個看看效果提升沒

    • 窮舉

      • 廣度優先搜索
        • 時間復雜度太高,不實用
      • 分支定界搜索
        • 在窮舉搜索的基礎上加入了分支限界,若斷定某些分支不可能搜索出比當前找到的最優解更優的解,則可能剪掉這些分支
    • 非窮舉

      • 定向搜索
        • 首先選擇N個得分最高的特征作為特征子集,將其加入一個限制最大長度的優先隊列,每次從隊列中取出得分最高的子集,然后窮舉向該子集加入一個特征后產生的所有特征集,將這些特征集加入隊列;
      • 最優優先搜索
        • 與定向搜索類似,唯一不同的是不限制優先隊列的長度
  • 啟發式搜索

    • 思想:先用少量特征,再慢慢加

    • 方法:

      • 序列向前選擇

        • 特征子集從空集開始,每次只加入一個特征,貪心
      • 序列向后選擇

        • 特征子集從全集開始,每次刪除一個特征
      • 雙向搜索

        • 同時使用序列向前選擇和向后選擇,當兩者搜索到相同的特征子集時停止
      • 增L去R

        • 若算法先刪除R個特征,再增加L個特征
      • 序列浮動選擇

        • 每次選擇添加和刪除的特征個數不是固定的
  • 隨機搜索

    • 思想:執行序列向前或者向后選擇的時候,此算法隨機選擇特征子集
    • 模擬退火、隨機爬山、基因算法

​ 過濾方法與機器學習算法相互獨立,而且不需要交叉驗證,計算效率比較高,但是過濾算法沒有考慮機器學習算法的特點;封裝方法使用預先定義的機器學習算法來評估特征子集的質量,需要很多次訓練模型,計算效率很低;嵌入方法則將特征選擇嵌入到模型的構建過程中,具有封裝方法與機器學習算法相結合的優點,而且具有過濾方法計算效率高的優點,是實際應用中最常用的方法.

2.4.3嵌入方法

  • Lasso回歸

  • 通過對回歸系數添加L1懲罰項來防止過擬合,可以讓特定的回歸系數變為0,從而可以選擇一個不包含那些系數的更簡單的模型.lambta越大,回歸系數越稀疏,lambta一般用交叉驗證的方法來確定;任何廣義線性模型如邏輯回歸/FM/FFM/神經網絡模型,都可以添加L1懲罰項

    • 基於樹模型

      • 可以基於樹模型中特征出現次數等指標對特征進行重要性排序;深度較淺的節點一般特征分類能力更強(可以將更多的樣本區分開)
      • 如決策樹、隨機森林、梯度提升樹
    • SVM

      • 自帶L2正則
    • 工具包

      • 一般機器學習包的線性模型都支持L1正則,如Spark MLlib和Sklearn
      • sklearn中的隨機森林;Xgboost包,支持根據不同指標(如增益或者分裂次數)對特征進行排序

三.模型選擇

1.分類

​ 傳統機器學習:

​ 深度學習:

2.回歸

​ 傳統機器學習:

​ 深度學習:

四.模型融合

1.定義

  • 單模型即從數據訓練而來的模型,也叫作基學習器、個體學習器、組件學習器
  • 如果單模型是同一種模型,叫作同質模型融合;否則稱異質模型融合

2.融合的意義

  • 統計的角度:平均假設,可以得到一個逼近f的優化假設
  • 計算的角度:同一份數據集,從不同的出發點進行計算
  • 表示的角度:模型融合使得假設空間擴大

3.融合的理論

  • 模型的誤差分歧:單模型的差異性越大,最后融合的效果就越好
  • 多樣性獨立:不一致度量、相關系數、Q統計、K統計、雙次失敗度量、KW差異、k度量、熵度量
  • 多樣性增強:數據樣本的擾動、屬性的擾動、輸出的擾動、算法參數的擾動

4.融合的方法

  • 4.1Bagging

    • 思想

      1. 在包含N個樣本的數據集中采用有放回的抽樣方式隨機抽取一定數量(可以為N)的樣本,構成一個數據集;
      2. 按照步驟i中的方式得到M個數據集;
      3. 利用機器學習的方法(例如:SVM,決策樹,神經網絡……)對得到的M個數據集,訓練出M個弱模型(比隨機模型效果好);
      4. 集成M個弱模型的結果作為最終結果;

      ​ Bagging就是通過M個弱模型的結果,通過並行集成的方式來獲得最終結果。因為M個數據集是相互獨立的,因此這M個弱模型之間也是相互獨立的,在最終的集成結果時,每個模型的權重是一樣的。這是和Boosting所不同的。

    • 集成方式

      • 回歸問題

        • M個模型結果的均值;
      • 分類問題

        • 對M個模型的結果進行投票決定,票數多的作為結果;票數一樣,隨機決定;
    • 代表方法

      • RF

        • 理論
        • 調參
      • Extree

        • 理論
        • 調參
  • 4.2Boosting

    • 思想

      1. 每一次都根據上一次訓練得到的模型結果,調整數據集樣本分布,然后再生成下一個模型;
      2. 直到生成M個模型;
      3. 根據M個模型的結果集成得到最終的結果;
    • 集成方式

      ​ 每個模型的重要度作為每個模型結果的權重,然后加權計算得出結果。

      可以看出Boosting中生成多個模型的方式並不是和Bagging一樣並行生成,而是串行生成,因此也決定了多個模型結果的集成是串行集成,也就是每個模型的結果權重並不是一樣的。如何來調整樣本分布以及計算模型的重要度,不同方法有不同的定義,詳情參見具體方法。

    • 代表方法

      • AdaBoost

        • 理論
        • 調參
      • GBDT

        • 理論
        • 調參
      • XGBoost

        • 理論
        • 調參
      • LightGBM

        • 理論
        • 調參
      • CatBoost

        • 理論
        • 調參
  • 4.3Stacking

    • 理論
    • 調參
  • 4.4Blending

    • 理論
    • 調參


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM