博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跟我学算法-决策树
阅读量:6038 次
发布时间:2019-06-20

本文共 1737 字,大约阅读时间需要 5 分钟。

决策树算法:主要通过信息熵或者gini系数来作为衡量标准

当完成决策树时需要进行剪枝操作,在剪枝过程中,我们一般采用预剪枝的操作(该操作更加实用)

预剪枝过程中的几个限制条件:

                                           1. 限制深度

                                           2. 叶子节点个数

                                           3.叶子节点样本数

                                           4.信息增益量

                                           ..... 

下面以一个房屋数据为列子

from sklearn.datasets.california_housing import  fetch_california_housinghousing = fetch_california_housing()  #导入房屋数据print(housing.data.shape)from sklearn import  treedtr = tree.DecisionTreeRegressor(max_depth=2)  #设置数的限制条件dtr.fit(housing.data[:, [6,7]], housing.target) #以data数据的第6和第7个特征,以及目标函数建立模型# 图像可视化dot_data = \tree.export_graphviz(    dtr,    out_file = None,    feature_names = housing.feature_names[6:8],    filled = True,    impurity= False,    rounded= True,)import pydotplusgraph = pydotplus.graph_from_dot_data(dot_data)graph.get_nodes()[7].set_fillcolor("#FFF2DD")  #上色from IPython.display import ImageImage(graph.create_png())graph.write_png("dtr_white_background.png")  #图片保存为png格式plt.show()

现在采用所有的变量构建参数,但是速度较慢

from sklearn.model_selection import train_test_splitdata_train, data_test, target_train, target_test = train_test_split(housing.data, housing.target, \        test_size=0.1, random_state=42) #test_size 表示分割的百分比, random_state表示随机种子,每次随机的结果不变 # 分割数据dtr = tree.DecisionTreeRegressor(random_state=42) #构建树dtr.fit(data_train, target_train)  #建立模型dtr.score(data_train, target_train) #模型得分,得分越高模型效果越好#构建决策树图像dot_data = \tree.export_graphviz(    dtr, #树的名称    out_file = None,    feature_names = housing.feature_names,    filled = True,    impurity = False,    rounded = True,)import pydotplusgraph = pydotplus.graph_from_dot_data(dot_data)graph.get_nodes()[7].set_fillcolor("#FFF2DD")from IPython.display import ImageImage(graph.create_png())graph.write_png("dtr_white_background_1.png")  #png分辨率较高plt.show()

 

转载于:https://www.cnblogs.com/my-love-is-python/p/9508101.html

你可能感兴趣的文章
用查表查找汉字笔画
查看>>
top高级技能
查看>>
两张表先各自左外连接,然后在相互左外连接查找省市县的数据(业务需求必须这样做,省市去的是第一张表,而市县取的是第二张表,两张表中间通过市的名字连接)...
查看>>
sso单点登录,单点登录原理图,单点登录图解,单点登录
查看>>
原码、反码、补码的正(nao)确(can)打开方式
查看>>
《算法导论》
查看>>
ResourceBundle.getBundle方法demo
查看>>
基于Dubbo的http自动测试工具分享
查看>>
[linux] C语言Linux系统编程-TCP通信的11种状态
查看>>
{head first} --- networking 3
查看>>
SpringCloud入门之YAML格式文件规范学习
查看>>
深入理解Dalvik虚拟机- 解释器的执行机制
查看>>
android------2018 年初值得关注的 16 个新 Android 库和项目
查看>>
Mac eclipse 连接安卓手机调试 adb
查看>>
国际巨头互联网公司一些运营与管理思路
查看>>
数据库~Mysql里的Explain说明
查看>>
linux arm的存储分布那些事之一【转】
查看>>
跨域详解
查看>>
网卡bonding模式 - bond0、1、4配置
查看>>
<转>LUA语法分析
查看>>