鱼C论坛

 找回密码
 立即注册
查看: 1344|回复: 0

[技术交流] 机器学习系列------决策树

[复制链接]
发表于 2018-6-20 09:26:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        今天用决策树预测鸢尾花数据,先建立决策树模型,代码如下:
  1. from sklearn.datasets import load_iris
  2. from sklearn.tree import DecisionTreeClassifier

  3. iris=load_iris()
  4. X=iris.data[:,2:]
  5. y=iris.target

  6. tree_clf=DecisionTreeClassifier(max_depth=2)
  7. tree_clf.fit(X,y)
复制代码

        决策树是一棵树型的逻辑图,许多个决策树就组成了随机森林,我们可以把以上模型做成一个.dot文件的树形图:
  1. from sklearn.tree import export_graphviz

  2. export_graphviz(
  3.     tree_clf,
  4.     out_file="iris_tree.dot",
  5.     feature_names=iris.feature_names[2:],
  6.     class_names=iris.target_names,
  7.     rounded=True,
  8.     filled=True
  9. )
复制代码

        以上代码会在你电脑里生成个iris_tree.dot文件,也可以转传承png文件,但是必须在Linux系统下,输入如下命令:
  1. dot -Tpng iris_tree.dot -o iris_tree.png
复制代码

        这里就不做演示了。下面预测下5厘米长1.5厘米宽的花瓣的准确率:
  1. tree_clf.predict_proba([[5,1.5]])
复制代码

        输出为:array([[ 0.        ,  0.90740741,  0.09259259]])。然后看下预测结果:
  1. tree_clf.predict([[5,1.5]])
复制代码

        输出为:array([1])。是第二种花。以上是决策树的分类模型,我们也可以用决策树建回归模型,与分类模型的区别是,回归模型每个节点是一个数,而分类模型是一个类。代码如下:
  1. from sklearn.tree import DecisionTreeRegressor

  2. tree_reg=DecisionTreeRegressor(max_depth=2)
  3. tree_reg.fit(X,y)
复制代码

        决策树的优点是模型的使用上运算速度快,但是建立模型的时间长,就跟我们学数据结构和算法里的map一样,缺点是不稳定。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 04:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表