python决策树sklearn_机器学习之决策树在sklearn中的实现

4bed2e738bd4b31c8f067b8b30ba5e7b9e2ff8bd.jpeg?token=3e915171b93eaf95432dd0792581d176&s=12B77C84C60168E74BA41548030050D8

小伙伴们大家好~o( ̄▽ ̄)ブ,首先声明一下,我的开发环境是Jupyter lab,所用的库和版本大家参考:

Python 3.7.1(你的版本至少要3.4以上

Scikit-learn 0.20.0 (你的版本至少要0.20

Graphviz 0.8.4 (没有画不出决策树哦,安装代码conda install python-graphviz

Numpy 1.15.3, Pandas 0.23.4, Matplotlib 3.0.1, SciPy 1.1.0

用SKlearn 建立一棵决策树

这里采用的数据集是SKlearn中的红酒数据集。

1 导入需要的算法库和模块

from sklearn import tree #导入tree模块from sklearn.datasets import load_wine #导入红酒数据集from sklearn.model_selection import train_test_split #导入训练集和测试集切分包

2 探索数据

wine = load_wine()wine.datawine.data.shapewine.targetwine.target.shape

运行的结果是这样子的:

a08b87d6277f9e2fbd58020aa55c9020b899f330.jpeg?token=3a18c1329145e8a7440a49c1ec62510a&s=08AA7C3201C9514B4AD4C1DA0000C0B2

data就是该数据集的特征矩阵,从运行结果可以看出,该红酒数据集一共有178条记录,13个特征。

9e3df8dcd100baa18b5c3f81ff7cc016c8fc2e0c.jpeg?token=90d1f73d6f8afee82dabf753c02043bd&s=08A87C320193DDCE4E7D00CA0000C0B2

特征矩阵中有178条记录,相对应的标签Y就有178个数据。

如果wine是一张表,应该长这样:

import pandas as pdpd.concat([pd.DataFrame(wine.data),pd.DataFrame(wine.target)],axis=1)

71cf3bc79f3df8dc3a3b1dcc7a7d0b8f461028de.jpeg?token=42339f7d83fd41162944c1c51bb7b5f0&s=4AAA3C6211DFC9CA1CDD95CA0000C0B2

这是数据集特征列名和标签分类

wine.feature_nameswine.target_names

c2fdfc039245d68861516fcd1cae041ad31b24fd.jpeg?token=4d84e3742a89bc802f1ba6a26f0db329&s=88AA7C3213524C6D5A55A0DA000080B2

3 分训练集和测试集

这里选取30%作为测试集。切分好之后,训练集有124条数据,测试集有54条数据。

Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size=0.3)Xtrain.shapeXtest.shape

7acb0a46f21fbe0980f5dcc3dc0c75378644ad2b.jpeg?token=6bc71018bd3ecc5ec7d43b661c096e13&s=09AA74324F224D200CD581DA0000C0B1

4 建立模型

clf = tree.DecisionTreeClassifier(criterion="entropy") #初始化树模型clf = clf.fit(Xtrain, Ytrain) #实例化训练集score = clf.score(Xtest, Ytest) #返回预测的准确度score

503d269759ee3d6d667a6168f67a14264e4ade42.jpeg?token=ede20c4e3aaa8d48b94d3d6454ada987&s=01887432CD664D20404568DE0000C0B1

5 画出一棵树吧

feature_name = ['酒精','苹果酸','灰','灰的碱性','镁','总酚','类黄酮','非黄烷类酚类','花青素','颜色强度','色调','od280/od315稀释葡萄酒','脯氨酸']import graphvizdot_data = tree.export_graphviz(clf,out_file=None,feature_names= feature_name,class_names=["琴酒","雪莉","贝尔摩德"],filled=True,rounded=True)graph = graphviz.Source(dot_data)graph

267f9e2f0708283806be39600ff5d0054d08f180.jpeg?token=8995e6a271c1ced8ae5953fbeab4446d&s=2CB8E012450F46E84EC864D1030080B2

6 探索决策树

#特征重要性clf.feature_importances_[*zip(feature_name,clf.feature_importances_)]

9f510fb30f2442a750b4f8c9672fd44fd0130290.jpeg?token=9bb62548af14246e1bdc643dabae40fe&s=8AAA7422194A554D1CFDA5DA000050B2

到现在为止,我们已经学会建立一棵完整的决策树了。有兴趣的话,动手建立一棵属于自己的决策树吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值