决策树和k-近邻算法:
决策树,数据形式易于理解。
k-近邻算法,完成很多分类任务。
决策树的构造:
优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
缺点:可能会产生过度匹配问题。
适用数据类型:数值型和标称型。
一般流程:
收集数据:可以使用任何方法。
准备数据:树构造算法只适用于标称型数据,因此数值型数据必须离散化。
分析数据:可以使用任何方法,构造树完成之后,我们应该检查图形是否符合预期。
训练算法:构造树的数据结构。
测试算法:使用经验树计算错误率。
使用算法:此步骤可以适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义。
(另一个度量集合无序程度的方法:基尼不纯度 Gini impurity,从一个数据集中随机选取子项,度量其被错误分类到其他分组里的概率。)
chapter 3.3.1 测试算法:使用决策树执行分类
执行数据分类时,需要决策树以及用于构造树的标签向量。然后,程序比较测试数据与决策树上的数值,递归执行该过程直到进入叶子点;最后将测试数据定义为叶子节点所属的类型。
chapter 3.3.2 使用算法:决策树的存储
为了节省计算时间,最好能够在每次执行分类时调用已经构造好的决策树。为了解决这个问题,需要使用Python模块pickle序列化对象,参见程序清单3-9。序列化对象可以在磁盘上保存对象,并在需要时读取出来。任何对象都可以执行序列化操作,字典对象也不例外。
================================我是决策树的分割线================================
尼玛终于知道为什么计算结果和书上的不一样了,隐形眼镜那堆数据。
原来是打字员少缩进一行,我傻乎乎地连续缩进了2行。。。结果程序没报错,然而熵的结果完全错误了。(深刻教训)
决策树可以非常好地匹配实验数据,然而这些匹配选项可能太多了。。。(书的原话,借着吐槽一下)