python:一句話說機器學習演算法和調參-集成學習篇
實驗背景
大家好,『WedO實驗君』今天繼續經典機器學習簡要說明和關鍵調參,本實驗針對的是集成學習(Ensemble Learning)。
監督機器學習的目標為訓練一個在各個方面都穩定的模型,但是往往由於演算法和數據本身的缺乏完美的魯棒性,模型不一定十分理想。 集成學習的通俗說法可以用一句話來概括: 三個臭皮匠,頂一個諸葛亮。集成學習通過構建多個有偏好的模型(弱模型),來組合構建強模型。集成學習潛在的思想是即便某一個弱分類器得到了錯誤的預測,其他的弱分類器也可以將錯誤糾正回來。
集成學習主要有兩種:Bagging,Boosting。
Bagging為【放回抽樣】方法來創建訓練集,來分別構建多個分類器。通過多個分類器的投票來預測新數據。 典型演算法為隨機森林。
Boosting為【提升方法】,即不斷的減少監督學習的偏差來構建強分類器,越到後面的弱分類越關注前一個弱分類器出錯的樣本。典型演算法有AdaBoost和GBDT(梯度迭代決策樹)
Bagging和Boosting採用的都是採樣-學習-組合的方式,但在細節上有一些不同,如
Bagging中每個訓練集互不相關,也就是每個基分類器互不相關,而Boosting中訓練集要在上一輪的結果上進行調整,也使得其不能並行計算
Bagging中預測函數是均勻平等的,但在Boosting中預測函數是加權的
來自周志華老師的機器學習教科書(機器學習-周志華):Boosting主要關注降低偏差,因此Boosting能基於泛化性能相當弱的學習器構建出很強的集成;Bagging主要關注降低方差,因此它在不剪枝的決策樹、神經網路等學習器上效用更為明顯。
模型越複雜,偏差越小(預測值和訓練集真實值越擬合),此時如果換一個訓練集,模型的變動就很大(方差大),對數據擾動影響大。
經典集成學習演算法主要包括
隨機森林
AdaBoost
GBDT(梯度迭代決策樹)
實驗器材
● python
● sklearn
● pandas
實驗內容
1. 實驗數據說明
為了說明演算法,採用著名的iris數據集合為實驗數據。
fromsklearnimportcluster, datasets
importpandasaspd
importnumpyasnpfromsklearn
importpreprocessing
iris=datasets.load_iris()
X_iris=iris.data
y_iris=iris.target
iris.target_names
Out[9]:
array(["setosa", "versicolor", "virginica"],
dtype="|S10")
In [10]:
data=pd.DataFrame(iris.data, columns=iris.feature_names)
Out[10]:
2.集成學習方法說明
實驗結語
本實驗介紹了三個集成學習監督演算法的基本思想以及重要參數,已經python 的sklearn 演算法在iris數據的實際應用。
實驗預告:一句話說機器學習演算法和調參-機器學習提取配色方案
※Kaggle推出免費線上課程,覆蓋機器學習、深度學習等四門課
※為啥說產品經理都該懂點機器學習?
TAG:機器學習 |