scikit learn 隨機森林

2021-10-02 05:59:18 字數 2282 閱讀 6007

在隨機森林中,集合中的每棵樹都是根據訓練集中的替換樣本(即引導樣本)構建的。

此外,在樹的構造過程中拆分每個節點時,可以從所有輸入要素或size的隨機子集中找到最佳拆分 max_features。

這兩個隨機性**的目的是減少森林估計量的方差。實際上,單個決策樹通常表現出較高的方差並且傾向於過度擬合。森林中注入的隨機性產生決策樹,其**誤差有些解耦。(乙個樹有誤差不會對總體結果有太大影響。)通過取這些**的平均值,可以消除一些誤差。隨機森林通過組合不同的樹木來減少變化,有時會以略微增加偏差為代價。

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

from sklearn.ensemble import randomforestclassifier,extratreesclassifier

from sklearn import datasets

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn.tree import decisiontreeclassifier

# 隨機森立 :多顆決策樹構建而成,每一顆決策樹都是剛才講到的決策樹原理

# 多顆決策樹一起運算------------>整合演算法

# 隨機森林,隨機什麼意思

#意味著通過在分類器構造中引入隨機性來建立多樣化的分類器集

#隨機在抽樣上 100棵樹意味著100種子樣本 每一棵樹的裂分條件也會不同 最後的結果會結合10棵樹進行決策 使用平均數提高準確率 防止過擬合

wine = datasets.load_wine(

)wine

#...'target_names': array(['class_0', 'class_1', 'class_2'], dtype='x = wine[

'data'

]y = wine[

'target'

]x.shape

#(178, 13)

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size =

0.2)

#n_estimators預設10個分類器 gini係數 深度

clf = randomforestclassifier(

)clf.fit(x_train,y_train)

y_ = clf.predict(x_test)

from sklearn.metrics import accuracy_score

accuracy_score(y_test,y_)

#1.0

dt_clf = decisiontreeclassifier(

)dt_clf.fit(x_train,y_train)

dt_clf.score(x_test,y_test)

#0.9444444444444444

score =

0for i in

range

(100):

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size =

0.2)

dt_clf = decisiontreeclassifier(

) dt_clf.fit(x_train,y_train)

score+=dt_clf.score(x_test,y_test)

/100

print

('決策樹多次執行準確率:'

,score)

#決策樹多次執行準確率: 0.909166666666666

score =

0for i in

range

(100):

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size =

0.2)

clf = randomforestclassifier(n_estimators=

100)

clf.fit(x_train,y_train)

score+=clf.score(x_test,y_test)

/100

print

('隨機森林多次執行準確率:'

,score)

#隨機森林多次執行準確率: 0.9808333333333332

《scikit learn》隨機森林之回歸

今天我們學習下隨機森林做回歸的用法 話不多說直接上測試 看的更加清晰,總體上和回歸樹是一樣的使用流程 from sklearn.datasets import load boston from sklearn.model selection import cross val score from s...

scikit learn中的隨機森林模型

和決策樹模型類似,scikit learn中的隨機森林模型也提供了基於普通decision tree的random forest學習器和基於隨機化extra tree的extratrees學習器。鑑於decision tree和extra tree差別甚小,本文以random forest為例進行介...

scikit learn 極限森林

from sklearn.ensemble import extratreesclassifier,randomforestclassifier from sklearn.tree import decisiontreeclassifier from sklearn.model selection ...