思維導圖如下:
模型融合是一種有效提公升機器學習效果的方法,通過構建並融合多個模型來完成學習任務。模型融合主要包含兩個階段:構建若干單模型和模型融合。
如果模型融合使用的單模型屬於一類學習演算法,這樣的融合稱為同質模型融合,如果模型融合使用多種不同的學習演算法構建的單模型,這樣的融合稱為異質模型融合。
1.1 融合收益
模型融合能夠比單模型具有更強的泛化能力,主要有以下三個方面:
統計的角度:學習任務可能找出多個能夠達到同等效能的假設空間,通過融合的方式來平均這些模型**的結果,可以降低**錯誤的風險
計算的原因:降低陷入區域性極小點的風險
表示的原因:模型融合使得假設空間變大
1.2 模型誤差-分歧分解
單模型準確性越高,多樣性越大,則模型融合的表現越好。
1.3 模型多樣性度量
模型多樣性是模型融合和整合學習中乙個比較重要的問題。比較典型的做法是考慮單模型的兩兩相似性或不相似性。總體上,模型多樣性度量主要分為成對的多樣性度量和非成對的多樣性度量。
1.4 多樣性增強
模型融合中單模型的多樣性對效能有很大的提高,那麼我們就應該盡量有效地生成多樣性大的單模型。一般增強多樣性的思路是在學習過程中引入隨機性,常見的做法是對資料樣本、輸入屬性、輸出表示、演算法引數進行擾動。
資料樣本擾動:給定初始資料集,從中選出不同的資料子集,再利用不同的資料子集訓練出不同的單模型。
輸入屬性擾動:選擇不同的屬性訓練單模型
輸出表示擾動:對輸出表示進行操縱以增強多樣性。主要有翻轉法(隨機改變訓練樣本標記)和輸出調製法(將分類問題轉變為回歸輸出來訓練單模型)
演算法引數擾動:模型訓練一般要調配引數,如神經網路隱層節點數量、鏈結權值等。修改引數產生不同的模型,從而增加多樣性。
2.1 平均法
分簡單平均法和加權平均法:
2.2 投票法
主要應用於分類問題。分類問題的輸出有時候是分類標記,有時候是分類概率。
當輸出是類別標記時,通常使用硬投票法,分為絕對多數投票法、相對多數投票法和加權投票法。對於輸出為分類概率的,通常使用軟投票法,即計算每個類別的加權概率。
2.3 bagging
使用自助取樣法取樣t份資料,分別訓練t個單模型,再進行融合。
2.4 stacking
其基本思路是,通過乙個模型來融合若干個單模型的**結果,這裡單模型稱為一級模型,stacking融合模型被稱為二級模型。
stacking先從初始的訓練集訓練出若干單模型,然後把單模型的輸出結果作為樣本特徵進行整合,並把原始樣本標記作為新資料樣本標記,生成新的訓練集。再根據新訓練集訓練乙個新的模型,最後用新的模型對樣本進行**。
stacking的過程如下圖:
關於stacking的詳細原理和實現,參考:
第四章 模型
1 資料庫配置 在setting.py中資料庫設定連線資訊設定如下 databases 在專案下的 init py中新增資料庫匯入 import pymysql 配置mysql引用 pymysql.install as mysqldb 乙個作者有姓,有名及email位址。出版商有名稱,位址,所在城市...
python第四章上機實踐 第四章上機實踐報告
設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1 i n。程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案,使得能夠在磁帶上儲存盡可能多的程式。對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。輸入格式 第一行是2 個正整數,分別表示檔案個數n和...
第四章演算法實踐
題目 設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1 i n。程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案,使得能夠在磁帶上儲存盡可能多的程式。對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。演算法描述 簽到題,只需要將各個檔案從小到大排...