sklearn的DecisionTreeClassifier的參數random_state

剛剛使用SKLearn學習機器學習進行數據分析,分享一些概念和想法,希望可以大家一起討論,如果理解或者表達有不準確的地方,請多多指點,不吝賜教,非常感謝~~

本文將繼續介紹sklearn的決策樹模塊的其他參數

涉及到的理論知識,請轉至上篇《決策樹和隨機森林》:https://blog.csdn.net/weixin_42969619/article/details/98853206
涉及到數據集相關操作,請轉至《探索sklearn的數據集》:https://blog.csdn.net/weixin_42969619/article/details/99294615
涉及決策樹其他參數,請轉至《DecisionTreeClassifier的參數criterion 與使用紅酒數據集創建一個樹)》:https://blog.csdn.net/weixin_42969619/article/details/98884082


  • DecisionTreeClassifier及重要參數:

class sklearn.tree.DecisionTreeClassifier (criterion=’gini’, splitter=’best’, max_depth=None,
min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None,
random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None,
class_weight=None, presort=False)

  1. random_state 參數

用來設置分枝中的隨機模式的參數,默認值None;
之前已經說過,決策樹的生成是非常“隨機”的,且維度越高,隨機性越大。給 random_state 參數賦值任意整數,都可以使模型在同一個訓練集和測試集下穩定。

  • 穩定一個樹
from sklearn import tree
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
import graphviz

# 數據集實例化,並劃分訓練集和測試集
# test_size 參數表示:測試集在數據集中的比例
wine = load_wine()
Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size=0.3)

clf=tree.DecisionTreeClassifier(criterion="entropy"
                               , random_state=30
                                 ,splitter="random")
clf=clf.fit(Xtrain,Ytrain)

#  畫出一棵樹
feature_name = ['酒精','蘋果酸','灰','灰的鹼性','鎂','總酚','類黃酮','非黃烷類酚類','花青素','顏色強度','色調','od280/od315稀釋葡萄酒','脯氨酸']
dot_data = tree.export_graphviz(clf
                               ,out_file = None
                               ,feature_names= feature_name			
                               ,class_names=["琴酒","雪莉","貝爾摩德"]			
                               ,filled=True		
                               ,rounded=True		
                               )
graph = graphviz.Source(dot_data)
graph

# 查看結果
score=clf.score(Xtest,Ytest)
score
# 查看特徵變量的使用情況
[*zip(feature_name,clf.feature_importances_)]

------------------------
# 結果 
0.9444444444444444
[('酒精', 0.09675223719525075),
 ('蘋果酸', 0.0),
 ('灰', 0.0),
 ('灰的鹼性', 0.0),
 ('鎂', 0.051731632744201506),
 ('總酚', 0.0),
 ('類黃酮', 0.34045893563278185),
 ('非黃烷類酚類', 0.0),
 ('花青素', 0.0),
 ('顏色強度', 0.0),
 ('色調', 0.08814246536013912),
 ('od280/od315稀釋葡萄酒', 0.23390394552014476),
 ('脯氨酸', 0.18901078354748188)]

說明:
確定了random_state 參數,無論運行多少次“建模”,模型都沒有改變;但是不同數據賦值給random_state,會有不同結果
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章