1.思想简介
http://www.cnblogs.com/leoo2sk/archive/2010/09/19/decision-tree.html#3233302
2.评价
优点
1)决策树易于理解和实现,人们在在学习过程中不需要使用者了解很多的背景知识,这同时是它的能够直接体现数据的特点,只要通过解释后都有能力去理解决策树所表达的意义。
2)对于决策树,数据的准备往往是简单或者是不必要的,而且能够同时处理数据型和常规型属性,在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
3)易于通过静态测试来对模型进行评测,可以测定模型可信度;如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。
缺点
1)对连续性的字段比较难预测。
2)对有时间顺序的数据,需要很多预处理的工作。
3)当类别太多时,错误可能就会增加的比较快。
4)一般的算法分类的时候,只是根据一个字段来分类。
3.算法实现(python)
代码说明:
函数:createDataSet():初始化
函数:calcShannonEnt(dataSet):求取熵
函数:splitDataSet(dataSet, axis, value):依据axis,与value进行划分
函数:chooseBestFeatureToSplit(dataSet):根据信息增益,得出适合划分的特征;