隨機森林的原理以及使用(集成算法)


1.什么是隨機森林?

隨機森林其實就是多棵決策樹.

通過對樣本重新采樣的方法得到不同的訓練樣本集,在這些新的訓練樣本集上分別訓練學習器,最終合並每一個學習器的結果,作為最終的學習結果,其中,每個樣本的權重是一樣的.具體過程如下:

 

 

在該 方法中,b個學習器之間彼此是相互獨立的,這樣的特點使該方法更容易並行

2.隨機森林的原理

 1 #導包
 2 import numpy as np
 3 
 4 import matplotlib.pyplot as plt
 5 %matplotlib inline
 6 
 7 # RandomForestClassifier為隨機森林  ExtraTreesClassifier為極限森林
 8 from sklearn.ensemble import RandomForestClassifier,ExtraTreesClassifier
 9 
10 from sklearn import datasets
11 
12 import pandas as pd
13 
14 from sklearn.model_selection import train_test_split
15 
16 from sklearn.tree import DecisionTreeClassifier

隨機森林 :多顆決策樹構建而成,每一顆決策樹都是剛才講到的決策樹原理
多顆決策樹一起運算------------>集成算法

1 # 加載數據,葡萄酒
2 wine = datasets.load_wine()
3 wine
 1 # 取出數據和目標值
 2 X = wine['data']
 3 y = wine['target']
 4 X.shape
 5 
 6 #將數據分類,訓練數據和測試數據
 7 X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2)
 8 
 9 # 隨機森林進行訓練預測,計算准確率
10 clf = RandomForestClassifier()
11 clf.fit(X_train,y_train)
12 y_ = clf.predict(X_test)
13 from sklearn.metrics import accuracy_score
14 accuracy_score(y_test,y_)

 

# 決策樹預測的准確率
dt_clf = DecisionTreeClassifier()

dt_clf.fit(X_train,y_train)

dt_clf.score(X_test,y_test)

 

 1 # 決策樹多次運行的准確率
 2 score = 0 
 3 for i in range(100):
 4     X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2)
 5     
 6     dt_clf = DecisionTreeClassifier()
 7 
 8     dt_clf.fit(X_train,y_train)
 9 
10     score+=dt_clf.score(X_test,y_test)/100
11     
12 print('決策樹多次運行准確率:',score)

 1 # 隨機森林多次運行的准確率
 2 score = 0 
 3 for i in range(100):
 4     X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2)
 5     # n_estimators表示樹的個數
 6     clf = RandomForestClassifier(n_estimators=100)
 7     
 8     clf.fit(X_train,y_train)
 9 
10     score+=clf.score(X_test,y_test)/100
11     
12 print('隨機森林多次運行准確率:',score)

3.極限森林

 隨機森林相對決策樹來說,是樣本隨機了

極限森林相對決策樹來說,不僅樣本隨機,而且分裂條件隨機,盡管這並不是最好的分裂條件.(決策樹的裂分條件是信息增益最大)

像在隨機森林中一樣,使用候選特征的隨機子集,但不是尋找最有區別的閾值,
而是為每個候選特征隨機繪制閾值,
並選擇這些隨機生成的閾值中的最佳閾值作為划分規則

3.總結

隨機森林的生成方法:

1.從樣本集中通過重采樣的方式產生n個樣本

2.假設樣本特征數目為a,對n個樣本選擇a中的k個特征,用建立決策樹的方式獲得最佳分割點

3.重復m次,產生m棵決策樹

4.多數投票機制來進行預測

優缺點:

隨機森林是一個比較優秀的模型,在我的項目的使用效果上來看,它對於多維特征的數據集分類有很高的效率,還可以做特征重要性的選擇。

運行效率和准確率較高,實現起來也比較簡單。但是在數據噪音比較大的情況下會過擬合,過擬合的缺點對於隨機森林來說還是較為致命的。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM