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,会有不同结果
在这里插入图片描述

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值