本文主要参考Peter Harrington著的《Machine Learning in Action》一书以及华南理工大学的王国强同学的论文《基于深度图像的人体部位识别及动作识别》,若有不妥之处欢迎指出。
ID3算法的基本原理:
ID3算法是采用自上而下构造的决策树进行学习的,其中的关键自然是如何是构建一个决策树。对于决策树构造,我们在每一个分裂节点采用统计测试的方法来确定此分裂分类属性的分类能力。具有最强分类能力的属性将被作为本分类节点的分类属性。然后以此属性将分裂节点的样本分类到此分裂节点所属的分支,在每个分支的节点上形成新的分类样本。然后递归此过程,将分支所得到的分类样本根据以上的方法进行分类直到树生成的截止条件,形成最后具有分类属性的叶子节点。这样就形成了我们所需要的自上而下的构造的决策树,采用贪婪搜索且不用考虑以前的选择。
我们看一个书中的实例:
表中的数据包含5个海洋生物,特征包括:不浮出水面是否可以生存,以及是否有脚蹼,我们可以将这些动物分成两类:鱼类和非鱼类,现在我们想要决定依据第一个特征还是第二个特征划分数据,在回答这个问题之前,我们必须采用量化的方法判断如何划分数据。
def createDataset():
dataset={[1,1,'yes'];
[1,1.'yes'],
[1,0,'no'],
[0,1,'no'],
[0,1,'no']}
labels = ['no surfacing','flippers']
return dataset,labels