環境:windows 10,python 3.7
首先需要安裝graphviz,這裡我們使用的是graphviz-2.38.msi,安裝在d:\program files (x86)\graphviz2.38。
**:
import os
from sklearn.datasets import load_iris
from sklearn.ensemble import randomforestclassifier
from sklearn.tree import export_graphviz
# 系統環境變數新增graphviz安裝路徑,以便下面**可以用dot命令
os.environ[
"path"
]+= os.pathsep +
'd:/program files (x86)/graphviz2.38/bin'
iris = load_iris(
)x, y = iris.data, iris.target
model = randomforestclassifier(n_estimators=
3, max_features=1)
model.fit(x, y)
# 迴圈列印每棵樹
for idx, estimator in
enumerate
(model.estimators_)
:# 匯出dot檔案
export_graphviz(estimator,
out_file=
'tree{}.dot'
.format
(idx)
, feature_names=iris.feature_names,
class_names=iris.target_names,
rounded=
true
, proportion=
false
, precision=2,
filled=
true
)# 轉換為png檔案
os.system(
'dot -tpng tree{}.dot -o tree{}.png'
.format
(idx, idx)
)
第一棵樹:
第二棵樹:
樹結果解釋:
1、有多少種類別,整棵樹就有多少種顏色,比如我們這裡有setosa、versicolor、virginica三個類別,顏色對應是黃、綠、紫,gini指數越小,該節點顏色越深。
2、value表示當前節點三種類別的樣本有多少,比如下面第一棵樹的根節點,value = [59,45,48],表示setosa有59個樣本,versicolor有45個樣本,virginica有48個樣本。
3、class表示當前那個類別的樣本最多,比如下面第一棵樹的根節點,class = setosa,可以看到當前節點它的樣本數是最多的。
4、為什麼三棵樹根節點每個類別的樣本數不一樣的?iris資料集不是每個類別都是50個樣本嗎?-> 務必記得隨機森林每棵樹所用的資料集都是有放回抽樣得到的!
風場視覺化 隨機重置
在繪製軌跡的效果中,過一段時間就會發現,最後只剩下固定的幾條軌跡,原文中也提到了這種現象,也提供了解決思路,個人還是想結合原始碼再看看。隨著時間推移,有些粒子產生的偏移超過了範圍就會消失,所以需要隨機重置消失的風粒子。需要考慮的問題有 在繪製軌跡中,我們知道了產生的偏移是在最後更新粒子紋理資訊階段,...
python隨機漫步資料,並視覺化
randow walk.py內的 隨機漫步 from random import choice class randomwalk 乙個生成隨機漫步資料的類 def init self,num points 5000 初始化隨機漫步的屬性 self.num points num points 所有隨機...
資料視覺化 什麼是資料視覺化
資料對應的英文單詞是data,從資訊獲取的角度看,資料是對目標觀察和記錄的結果,是現實世界中的時間 地點 事件 其他物件或概念的描述。不同學者對資料的作用也給出不同的定義,大致分為以下3類 視覺化對應的兩個英文單詞 visualize和visualization。visualize是動詞,描述 生成...