前面我们学习了如何度量数据集的无序程度,分类算法除了需要测量信息熵,还需要划分数据集,计算划分数据集的熵,以便判断当前是否正确地划分了数据集。判断的方法是:
根据每个特征划分数据集的结果,计算一次信息熵,然后根据信息熵判断,根据哪种特征来划分,是最好的划分方式。
我们可以想象一下,分布在二维平面上的一些散点,假如我们需要在这些散点之间划一条线,将它们分成两部分,那我们该按照x轴,还是y轴,还是别的线去划呢?这就是我们本文要讲的内容。
首先,我们需要对数据进行一个整理,使其满足下列条件:
数据必须是由列表组成的列表,且所以的列表元素具有相同的长度;
每个实例的最后一个元素是该实例的标签。
例如:[[1,0,’跌’],[0,1,’跌’],[1,1,’涨’]]就是满足要求的,我们对list中的数据的类型没有要求。
在完成数据整理之后,我们接着就开始划分数据集。
第一步,我们根据熵的定义,计算原始数据集的熵。
第二步,我们遍历当前特征中的所有的唯一的属性值,对每个唯一属性值划分一次数据集,然后计算划分后数据集的新熵,并对所有唯一特征值得到的熵求和。
第三步,我们将每个特征值划分后的熵与原始数据集比较,得到所有特征中的信息增益,得到最好的划分特征的索引值。
到目前为止,我们已经学习了构造决策树所需要的一些基础,后面我们将介绍如何真正构建决策树。
长
按
解
锁
领取 专属20元代金券
Get大咖技术交流圈