iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
AI & Data

我比機器更需要學習系列 第 18

Day18 隨機森林法實作

https://github.com/PacktPublishing/Machine-Learning-Algorithms

使用sci-kit learn

一樣先導入套件,上面的是用來算數學的;下面的是用來畫畫的,並且幫它們取綽號(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)

https://ithelp.ithome.com.tw/upload/images/20210922/20137546yPS3Wc3gym.png

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)

https://ithelp.ithome.com.tw/upload/images/20210924/20137546bSMf4Lwd8c.png


上一篇
Day17 決策樹實作
下一篇
Day19 K平均演算法實作
系列文
我比機器更需要學習23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言