这是一个基础入门的算法,思想很简单,利用attribute进行树枝节点的分类,从而达到training set的分类。xgboost等算法也是基于decision tree。不过现在行业中已经很少用了。
1. 关于entropy。经常会搞混这个概念。其实就是熵的混乱度。未知的“可能性”。比如抛起一个硬币,得到正面和反面的概率。在抛起硬币前,一切都是未知的,正反概率是一半一半,所以始终不知道到底是什么样的结果。所以这时候entropy是最大的,即为1。另一方面,如果从一堆红球中抽取一个小球,那么结果肯定是红色的小球,这个结果是在抽取前就知道的,所以entropy为0。
entropy=-和(p*log p)
2. 还有overfitting的问题,一般使用方法是剪枝。可以是预剪枝,在从上至下的简历dt的时候,验证crossvalidation,精度是否改变,精度增大则继续划分子节点,否则停止划分。或者是后剪枝,在dt建立完成之后进行剪枝,也是判断节点的crossvalidation,决定是否剪枝。
或者在error达到某个设定threshold的时候就停止。