呼叫sklearn庫實現隨機森林及AdaBoost

2021-10-10 08:15:38 字數 2179 閱讀 9799

1.1 原理介紹

隨機森林(random forest)是一種遵循bagging技術的整合機器學習演算法。

bagging演算法 (英語:bootstrap aggregating,引導聚集演算法),又稱裝袋演算法,是機器學習領域的一種團體學習演算法。最初由leo breiman於2023年提出。bagging演算法可與其他分類、回歸演算法結合,提高其準確率、穩定性的同時,通過降低結果的方差,避免過擬合的發生。 給定乙個大小為n的訓練集 d,bagging演算法從中均勻、有放回地(即使用自助抽樣法)選出m個大小為 n』的子集 d_,作為新的訓練集。在這 m個訓練集上使用分類、回歸等演算法,則可得到 m個模型,再通過取平均值、取多數票等方法,即可得到bagging的結果。

隨機森林中的「森林」表示整個模型中包含了很多決策樹,「隨機」表示森林中的每棵決策樹都是隨機從資料集中取樣來訓練。更多的原理介紹見 此篇部落格。

1.2 **實現

資料集採用的是sklearn庫提供的鳶尾花資料集,這個資料集用過很多次了,此處就不對該資料集作過多介紹。

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

from sklearn.ensemble import randomforestclassifier

# 1. 載入資料集

iris = load_iris(

)x = iris.data # 資料

y = iris.target # 標籤

# 2. 劃分資料集

x_trainer, x_test, y_trainer, y_test = train_test_split(x, y, test_size=

0.2)

# 3. randomforestclassifier

clf = randomforestclassifier(n_estimators=

5, max_depth=4)

clf.fit(x_trainer, y_trainer)

score = clf.score(x_test, y_test)

# 模型得分

print

("模型得分:"

, score)

輸出結果:

模型得分: 0.9666666666666667
**的效果還是很好的。下面對randomforestclassifier的引數做一下說明:

n_estimators:設定決策樹的數量,即想要建立幾棵樹;數值設定得越大**結果越穩定,但太大就會使得速度慢了;

max_depth:設定每棵決策樹的最大深度(樹的層數)

2.1 原理介紹

自適應增強演算法(adaptive boosting),這是boosting演算法之一。其思想就是「前人栽樹,後人乘涼」。更多的原理介紹見 此篇部落格。

2.2 **實現

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

from sklearn.ensemble import adaboostclassifier

# 1. 載入資料集

iris = load_iris(

)x = iris.data # 資料

y = iris.target # 標籤

# 2. 劃分資料集

x_trainer, x_test, y_trainer, y_test = train_test_split(x, y, test_size=

0.2)

# 3. adaboostclassifier

clf = adaboostclassifier(

)clf.fit(x_trainer, y_trainer)

score = clf.score(x_test, y_test)

# 模型得分

print

("模型得分:"

, score)

輸出結果:

模型得分: 0.9666666666666667

機器學習 運用sklearn庫實現隨機森林分類

通過呼叫sklearn庫快速實現隨機森林 決策樹 極端隨機樹等分類演算法 方便大家學習以及自己以後使用 coding utf 8 created on mon sep 21 20 08 53 2020 author dell import math from sklearn.ensemble imp...

04 12 scikit learn庫之隨機森林

目錄二 randomforestregressor 人工智慧從入門到放棄完整教程目錄 本文主要介紹隨機森林的兩個模型randomforestclassifier和randomforestregressor,這兩個模型調參包括兩部分,第一部分是bagging框架,第二部分是cart決策樹的引數。本文會...

04 12 scikit learn庫之隨機森林

目錄二 randomforestregressor 更新 更全的 機器學習 的更新 更有python go 資料結構與演算法 爬蟲 人工智慧教學等著你 本文主要介紹隨機森林的兩個模型randomforestclassifier和randomforestregressor,這兩個模型調參包括兩部分,第...