Advertisement

机器学习课程:周志华老师个人练习4.3

阅读量:

编写程序实现该算法,并以信息熵为依据对数据进行划分选择;根据表4.3中的数据构建并完成一棵决策树。

刚开始看到这一章时觉得这些内容相对容易掌握。相对来说算法思路也比较清晰。到了编程实现阶段就感到有些困难。在集成学习相关内容中才真正意识到编码工作量很大。说实话,在阅读相关内容后真的觉得编码过程非常复杂。

首先需要明确区分连续属性与离散属性,并以此作为计算信息熵的基础;为了更好地实现这一目标,在数据预处理阶段将离散型变量赋值为整数形式(如1,2,3等),同时将所有连续型变量归类放置于数据序列的后部位置

(2)然后,就是对所有属性进行遍历,计算相应的信息熵;

随后选择最大信息熵对应的特征进行分析。在接近完工时突然意识到我的决策树划分节点与书中不同,具体是在触觉相关的节点上,当时选择的是连续型属性中的一个实例(具体来说是含糖率还是密度),但后来排查发现,理论上在两个特征中任选其一均能达到最大的信息增益效果,稍微放松了口气,还以为之前的算法实现可能存在错误。为了符合书本中的设定,添加了一条强制性规则:即当遇到离散型和连续型两种情况时,优先选择离散型的特征(数据较少的情况下,连续型的划分点不够精确,可靠性较低)

(4)接下来,利用书上的递归算法,用字典的形式存储决策树的内容;

(5)最后,在生成的决策树基础上进行图形展示(若仅从字典视角审视决策树,则显得异常简单;但此时我发现使用m

全部评论 (0)

还没有任何评论哟~