1. 程式人生 > >python機器學習庫scikit-learn簡明教程之:AdaBoost演算法

python機器學習庫scikit-learn簡明教程之:AdaBoost演算法

1.AdaBoost簡介及原理

Adaboost是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然後把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。

Adaboost的結構:最後的分類器YM是由數個弱分類器(weak classifier)組合而成的,相當於最後m個弱分類器來投票決定分類結果,而且每個弱分類器的“話語權”因子α大小不一樣。


可以看到,U(1)是初始的權重向量,所有弱分類器的權重為1 / N,其中N是分類器總數;yn代表各個弱分類器;而T對應樣例數目,共迭代訓練T次;

2.scikit-learn庫中的AdaBoost演算法

模組sklearn.ensemble包括流行的boosting演算法AdaBoost,由Freund和Schapire在1995年提出;

以下示例顯示如何以100個弱學習器建立AdaBoost分類器:

#gnu
>>> from sklearn.model_selection import cross_val_score
>>> from sklearn.datasets import load_iris
>>> from sklearn.ensemble import AdaBoostClassifier

>>> iris = load_iris() #還是那個資料集
>>> clf = AdaBoostClassifier(n_estimators=100) #迭代100次
>>> scores = cross_val_score(clf, iris.data, iris.target) #分類器的精確度
>>> scores.mean()                             
0.9...   #得分比較理想
#
Adaboost演算法是經過調整的Boosting演算法,其能夠對弱學習得到的弱分類器的錯誤進行適應性調整。上述演算法中迭代了T次的主迴圈,每一次迴圈根據當前的權重分佈對樣本x定一個分佈P,然後對這個分佈下的樣本使用弱學習演算法得到一個弱分類器,對於這個演算法定義的弱學習演算法,對所有的,都有,而這個錯誤率的上限並不需要事先知道,實際上。每一次迭代,都要對權重進行更新。更新的規則是:減小弱分類器分類效果較好的資料的概率,增大弱分類器分類效果較差的資料的概率。最終的分類器是個弱分類器的加權平均

../_images/sphx_glr_plot_adaboost_hastie_10_2_0011.png

隨訓練數目增加各種學習法的誤差收斂速度;在這些分類器裡AdaBoost表現的很不錯;

3.再探Boosting:

Boosting演算法是一種把若干個分類器整合為一個分類器的方法,在boosting演算法產生之前,還出現過兩種比較重要的將多個分類器整合為一個分類器的方法,即boostrapping方法和bagging方法。我們先簡要介紹一下bootstrapping方法和bagging方法。

#gnu
>>> from sklearn.datasets import make_hastie_10_2
>>> from sklearn.ensemble import GradientBoostingClassifier

>>> X, y = make_hastie_10_2(random_state=0)
>>> X_train, X_test = X[:2000], X[2000:]
>>> y_train, y_test = y[:2000], y[2000:]

>>> clf = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0,
...     max_depth=1, random_state=0).fit(X_train, y_train)
>>> clf.score(X_test, y_test)                 
0.913...
#

弱學習器(即迴歸樹)的數量由引數n_estimators控制; 每個樹的大小可以通過通過max_depth引數設定樹深度或通過max_leaf_nodes設定葉節點的數量來控制。 learning_rate是在通過在範圍(0.0,1.0)中放縮來限制過擬合的高階引數;

相關推薦

python機器學習scikit-learn簡明教程AdaBoost演算法

1.AdaBoost簡介及原理 Adaboost是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然後把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。 Adab

python機器學習scikit-learn簡明教程SVM支援向量機

1.獲得樣例資料 scikit-learn庫有一些標準的資料集,例如分類的數字集,波士頓房價迴歸資料集。 在下面,我們啟動Python直譯器,然後載入資料集。我們可以認為,美元符號後輸入python然

python機器學習scikit-learn簡明教程隨機森林

1.scikit-learn中的隨機森林 sklearn.ensemble模組中包含兩種基於隨機決策樹的平均演算法:隨機森林演算法和ExtraTrees的方法。這兩種演算法都是專為決策樹設計的包含混合

Python機器學習scikit-learn實踐

.get new 安裝 gis 支持 兩個 clas mod 神經網絡 一、概述 機器學習算法在近幾年大數據點燃的熱火熏陶下已經變得被人所“熟知”,就算不懂得其中各算法理論,叫你喊上一兩個著名算法的名字,你也能昂首挺胸脫口而出。當然了,算法之林雖大,但能者還是

Python機器學習scikit-learn

概述 scikit-learn 是機器學習領域非常熱門的一個開源庫,基於Python 語言寫成。可以免費使用。 而且使用非常的簡單,文件感人,非常值得去學習。 下面是一張scikit-learn的圖譜: 我們可以看到,機器學習分為四大塊,分別是 cla

Python機器學習scikit-learn、繪相簿Matplotlib的安裝

在windows環境下安裝scipy和sklearn是一件比較麻煩的事情。由於sklearn依賴於numpy和scipy,所以安裝sklearn之前需要先安裝numpy和scipy庫,然而使用pip安裝安裝時,pip install numpy 可以安裝成功,但是使用命令p

機器學習利器——Scikit-learn的安裝

c++ 找到 ear html 實驗室 簡單的 安裝 網站 .com 機器學習利器——Scikit-learn的安裝  由於筆者最近在進行畢業論文的準備,且畢業論文中需要用到Python版本的機器學習庫——scikit-learn。所以最近三天一直在Windows上部署這個

2018年最受歡迎Python機器學習介紹

Python Python開發 Python全棧 機器學習庫 Python是一種面向對象的解釋型計算機程序設計語言,具有豐富和強大的庫,再加上其簡單、易學、速度快、開源免費、可移植性、可擴展性以及面向對象的特點,Python成為2017年最受歡迎的最受歡迎的編程語言! 人工智能是當前最

比較好的Python機器學習有哪些?

Python是一種面向物件的解釋型計算機程式設計語言,具有豐富和強大的庫,再加上其簡單、易學、速度快、開源免費、可移植性、可擴充套件性以及面向物件的特點,Python成為2017年最受歡迎的最受歡迎的程式語言! 人工智慧是當前最熱門話題之一,機器學習技術是人工智慧實現必備技能,Python程式語

python機器學習——結巴中文分詞

結巴中文分詞 安裝: pip install jieba1 特點: 支援三種分詞模式: 精確模式,試圖將句子最精確地切開,適合文字分析; 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義; 搜尋引擎模式,在精確

阿里雲機器學習平臺PAI使用簡明教程

概述 阿里雲機器學習平臺是構建在阿里雲MaxCompute(原ODPS)計算平臺之上,集資料處理、建模、離線預測、線上預測為一體的機器學習平臺。很多使用者在初次使用PAI過程中因為對平臺比較陌生,總是會遇到這樣或那樣的困惑。本文以通用的機器學習流程為指導,結合PAI平臺逐一介紹資料準備、模型搭建與訓練

python機器學習的使用

常見機器學習演算法名單 1.線性迴歸 線性迴歸通常用於根據連續變數估計實際數值(房價、呼叫次數、總銷售額等)。我們通過擬合最佳直線來建立自變數和因變數的關係。這條最佳直線叫做迴歸線,並且用 Y= a *X + b 這條線性等式來表示。 理解線性迴歸的最好辦法是回顧一下童年。

Python機器學習sklearn裡利用感知機進行三分類(多分類)的原理

from IPython.display import Image %matplotlib inline # Added version check for recent scikit-learn 0.18 checks from distutils.vers

python機器學習sklearn——Lasso迴歸(L1正則化)

Lasso The Lasso 是估計稀疏係數的線性模型。 它在一些情況下是有用的,因為它傾向於使用具有較少引數值的情況,有效地減少給定解決方案所依賴變數的數量。 因此,Lasso 及其變體是壓縮感知領域的基礎。 在一定條件下,它可以恢復一組非零權重的

安裝機器學習框架scikit-learn

執行環境:windows 10+python3.6 Scikit-learn requires: Python (>= 2.7 or >= 3.4), NumPy (>= 1.8.2), SciPy (>= 0.13.3). C:\Windows\System32&g

python機器學習xgboost——xgboost演算法

安裝 更新:現在已經可以通過pip install xgboost線上安裝庫了。 xgboost簡介 xgboost一般和sklearn一起使用,但是由於sklearn中沒有整合xgboost,所以才需要單獨下載安裝。 xgboost是在GB

python機器學習sklearn——樸素貝葉斯分類器

在scikit-learn中,一共有3個樸素貝葉斯的分類演算法類。分別是GaussianNB,MultinomialNB和BernoulliNB。其中GaussianNB就是先驗為高斯分佈的樸素貝葉斯,MultinomialNB就是先驗為多項式分佈的樸素

python機器學習sklearn——K最近鄰、K最近鄰分類、K最近鄰迴歸

這裡只講述sklearn中如何使用KNN演算法。 無監督最近鄰 NearestNeighbors (最近鄰)實現了 unsupervised nearest neighbors learning(無監督的最近鄰學習)。 它為三種不同的最近鄰演算法

Python機器學習SKLearn資料集轉換預處理資料

資料集轉換之預處理資料:       將輸入的資料轉化成機器學習演算法可以使用的資料。包含特徵提取和標準化。       原因:資料集的標準化(服從均值為0方差為1的標準正態分佈(高斯分佈))是大多數機器學習演算法的常見要求。      如果原始資料不服從高斯分佈,在預測時

Python機器學習sklearn幾種迴歸演算法建模及分析(實驗)

最簡單的迴歸模型就是線性迴歸 資料匯入與視覺化分析 from IPython.display import Image %matplotlib inline # Added version che