python实现西瓜书《机器学习》习题4.3信息增益决策树

首先这篇的格式可能会乱,markdown装上以后,有时候是用csdn原来的编辑器,有时候就变成了markdown编辑器,蒙。
更蒙的是,大牛的代码太飘逸了,有点看不懂,惯例先来原地址:https://blog.csdn.net/Snoopy_Yuan/article/details/68959025
核心步骤有一个思路很赞,就是求信息增益时,用数组存储按某属性分类后,类别样本数,从而便于对熵求和。
没有写注释的,就是实在坚持不住贴了源代码的,例如删去节点、k折验证、画树等,以后得重新看一遍。
另外,pycharm编译画树那段不能通过,write_png函数会报错
‘GraphViz’s executables not found’)
pydotplus.graphviz.InvocationException: GraphViz’s executables not found
估计是graphviz的环境变量设置有关,但mac系统不知道怎么整,留坑。

感觉自己孕傻了,小柚子,努力比你老母亲聪明一些啊

上代码
分两个程序,主程序entropydecisiontree

import pandas as pd

#data_file_encode="gb18030"   #gb18030支持汉字和少数民族字符,是一二四字节变长编码。这么用的时候with open需要增加encoding参数,但会报错gb18030不能解码
# with open相当于打开文件,保存成str对象,如果出错则关闭文件。参数r表示只读
with open("/Users/huatong/PycharmProjects/Data/watermelon_33.csv",mode="r") as data_file:
    df=pd.read_csv(data_file)

你可能感兴趣的:(python)