Profile
Decision Tree,非参数的学习算法,可以解决分类问题,天然地解决多分类问题(类似KNN,不需要通过ovr或者ovo),也可以解决回归问题(先将待测样本分到某一个叶子节点,再将同一叶子节点下所有样本的平均值作为预测值),具有良好的可解释性
Example
eg.1 OFFER FOR ML ENGINEER
- +发表过顶会论文?
- Y OFFER
- N + 是否是研究生?
- Y + ML专业相关?
- Y OFFER
- N + GPA TOP10%?
- Y OFFER
- N INSPECT
- N + GPA TOP10%?
- Y OFFER
- N INSPECT
- Y + ML专业相关?
Explanation of nouns
depth: 一次决策最多需要进行判断的次数
构建决策树
- 选一个维度
- 找到这个维度的一个阈值
- 以这个阈值进行划分
信息熵
一组样本的不确定性越高(混乱程度越高),则它的信息熵越高,一个系统的熵
eg.
的系统中,
的系统中,
对于二分类问题,
基尼系数
G函数和H函数在[0,1]上具有相同的递增区间和递减区间,对于二分类二者的图像如下
横轴为概率p,纵轴为系数G或者H
信息熵的计算比基尼系数慢一些,sklearn默认使用基尼系数,二者通常没有特别的效果优劣
CART
Classification And Regression Tree(分类与回归树),根据某一个维度d以及某一个阈值v进行二分,最后得到的决策树一定是一棵二叉树,这种树叫做CART是sklearn的决策树实现方式,其他的实现方式还有ID3,C4.5,C5.0等
构造一棵CART的流程如下:
- 遍历样本的所有维度(d),在每个维度中遍历所有相邻点的中点(v),以d=v作为超平面将训练点分成X_left和X_right两份,分别对应y_left和y_right
- 计算每个每一组y_left和y_right的信息熵(或者基尼系数)H,取H得最小值,此时对应的d=v即为当前节点的决策超平面
- 递归处理X_left->y_left和X_right->y_right,直到节点的信息熵=0,此时这个节点作为叶子节点
复杂度
CART树预测时间复杂度为,训练复杂度为