https://github.com/PacktPublishing/Machine-Learning-Algorithms
一樣先導入套件,上面的是用來算數學的;下面的是用來畫畫的,並且幫它們取綽號(np & plt)。
import numpy as np
import matplotlib.pyplot as plt
再來,用seed()隨機產生整數的亂數後,設定樹的數量100,再用for迴圈將準確率加到rf_accuracy裡面。根據下圖結果,可以知道大概在30到40棵樹之間,準確率會高達95%,最後會趨近穩定。
from sklearn.datasets import make_classification rf_accuracy = [] np.random.seed(1000) nb_classifications = 100 for i in range(1, nb_classifications): a = cross_val_score(RandomForestClassifier(n_estimators=i), digits.data, digits.target, scoring='accuracy',cv=10).mean() rf_accuracy.append(a)
sci-kit learn還有提供一種可選出最佳門檻的版本,使用ExtraTreesClassifier類別,可以幫助減少變異數。可以看到大概在20棵樹左右就有約95%的準確率了。
from sklearn.ensemble import ExtraTreesClassifier for i in range(1, nb_classifications): a = cross_val_score(ExtraTreesClassifier(n_estimators=i), digits.data, digits.target, scoring='accuracy',cv=10).mean() et_accuracy.append(a)