機器學習之整合演算法

2022-02-25 02:46:46 字數 1660 閱讀 4286

目的:讓機器學習效果更好,單個機器學習演算法不行,就用多個機器演算法整合。

bagging模型:訓練多個分類器取結果的平均

boosting模型:從弱學習器開始加強,通過加權來進行訓練(加入一棵樹,要比原來強)

stacking模型:聚合多個分類或回歸模型(可以分階段來做)

全稱: bootstrap aggregation(說白了就是並行訓練一堆分類器),最典型的代表就是隨機森林(決策樹的公升級版,多個決策樹組合起來)

隨機:資料取樣隨機,特徵選擇隨機(可以命名為二重隨機性)

森林:很多個決策樹並行放在一起

在隨機森林模型中,如果是分類任務,那就對結果取眾數(如上圖所示),如果是**任務,就對結果取平均值。

構造樹模型:

由於二重隨機性,使得每個樹基本上都不會一樣,最終的結果也會不一樣。

之所以要進行隨機,是要保證泛化能力,如果樹都一樣,那麼最終結果就都是一樣的,那就沒意義了!

隨機森林相比於決策樹優勢:

(1)它能夠處理很高維度(feature很多)的資料,並且不用做特徵選擇。

(2)在訓練完後,它能夠給出哪些feature比較重要,比如在下圖中特徵重要性最低的三個特徵就可以去掉。

(3)容易做成並行化方法,速度比較快。

(4)可以進行視覺化展示,便於分析。

理論上越多的樹訓練的效果就會越好,但實際上基本超過一定數量最終的效果就差不多上下浮動了。

典型代表:adaboost, xgboost。

adaboost會根據前一次的分類效果調整資料權重,如果某乙個資料在這次分錯了,那麼在下一次我就會給它更大的權重。最終的結果:每個分類器根據自身的準確性來確定各自的權重,再合體。

adaboost工作流程:每一次切一刀!最終合在一起,弱分類器這就公升級了!

堆疊方式:很暴力的那種,拿來一堆直接上(各種分類器都來了),可以堆疊各種各樣的分類器(knn,svm,rf,dt等等)

stacking是一種分層模型整合框架。以兩層為例,第一層由多個基學習器組成,其輸入為原始訓練集,第二層的模型則是以第一層基學習器的輸出作為訓練集進行再訓練,從而得到完整的stacking模型。

分階段:第一階段得出各自結果,第二階段再用前一階段結果訓練 。

堆疊在一起確實能使得準確率提公升,但是顯然速度是個問題。

整合演算法是競賽與**神器,當我們更關注於結果時不妨來試試!

機器學習 整合演算法

整合演算法用一些相對較弱的學習模型獨立地就同樣的樣本進行訓練,然後把結果整合起來進行整體 整合演算法的主要難點在於究竟整合哪些獨立的較弱的學習模型以及如何把學習結果整合起來。這是一類非常強大的演算法,同時也非常流行。是構建多個學習器,然後通過一定策略結合把它們來完成學習任務的,常常可以獲得比單一學習...

機器學習python整合演算法

from pandas import read csv from sklearn.model selection import kfold from sklearn.model selection import cross val score from sklearn.ensemble import...

機器學習 整合演算法 GBDT

gbdt gradient boosting decison tree 梯度提公升決策樹 gbdt 的弱學習器通常使用 cart 回歸樹 gbdt 的核心在於,每棵樹學的是之前所有樹的結論和的殘差,比如 a 的年齡 18 歲,第一棵樹依據特徵值 12 歲,差 6 歲,即殘差為 6 歲,那麼第二棵樹把...