决策树是一个很好理解的算法,其精髓在于:
- 1、熵 Entropy:Entropy = −∑i (pi) log2 (pi);
- 2、信息增益 Information Gain:增加节点后,系统熵减的程度。
说到最底层,DT的学习策略是,找到使得熵尽量小的:
- 1、变量;
- 2、变量分割点。
比如,现有如下数据集——天气、温度、湿度和风力等为Feature,出不出去打球为Label。用决策树来预测的话:
数据集范例
决策树的形式类似于“如果天气怎么样,去玩;否则,怎么着怎么着”的树形分叉。那么问题是:
-
1、用哪个Feature(即变量,如天气、温度、湿度和风力)最适合充当这颗树的根节点;
-
2、根节点之后,还要选多少个后续节点。
解决根节点问题,可按下图所示:
信息增益的计算
最后按照信息增益最大的原则选Outlook为根节点。子节点重复上面的步骤。
至于要选几个节点,可以自行在代码里设置精度。但要注意Decision Tree容易出现过拟合的问题。












网友评论
glmnet倒是听说过。我的同事说这个package对于输入数据有什么要求。
我倒觉得他如果纠结,还不如自己implement一下Lasso logit regression 的算法,也没多麻烦。
可惜我时间有限,帮不了他。