董圆成的公众号
学习篇
个人总结 | 学习借鉴 | 经验分享
用一个简单的事例来理解决策树,花了几天时间怎么也看不懂可视化之后的图形到底是个什么鬼,重新坐在那里整理思路,按照数据集进行划分,按照熵增益程度作判断首要和次要,判断条件是否符合要求,得到True和Flase,然后依照数据源进行按照树模型推断结果才理解,有时候越是简单的东西越需要时间去看清它。
数据集的观测值很少只有14行,是某公司客户买电脑的数据,字段分别有:年龄,收入,学生,信用率,买电脑。
样本数据截图
这里做一个数据集的标准化,是作为1;否作为0,等级变量为1.2.3,这里做标准化只是为了更加清晰的了解。
数据标准化之后
导入需要的模块,导入数据集,分离解释变量和被解释变量(建树需要),使用sklearn.tree建树,设置参数情况,这里使用熵增益(也可以使用基尼系数),最大深度开始可以随便设置,样本最小分割量大于1就可以,后期通过网格搜索调整参数数值(后面介绍),这次只是把决策树建立出来。因为python建树后,是看不到图形的,sklearn只能导出dot文件,而我们需要一个工具读取这个dot文件然后绘制成图形。需要安装graphviz.msi(可以在官网进行下载),安装后将bins路径设置为环境变量,安装完环境变量需要重启电脑,然后安装2个包graphviz和pydotplus,使用pip3 install/pip install 在cmd窗口执行命令。
最终得到的决策树
-LOVE&PEACE-
领取专属 10元无门槛券
私享最新 技术干货