定义
决策树是一种基于规则的方法,它用一组嵌套的规则进行预测。在树的每个决策节点处,根据判断结果进入一个分支,反复执行这种操作直到到达叶子节点,得到预测结果。这些规则是通过训练得到的,而不是认为设定的。
规则是每一次分裂时的特征及其阀值。
基本原理
先列举决策树算法最有名的几个版本,版本之间最明显的差异就是用于分裂节点的特征的选择标准不同,另外在应用场景(自变量离散或连续、因变量离散或连续)、剪枝、缺失值处理等操作上也有区别。
-
函数假设:分段函数(分类树的映射是多为空间的分段线性划分,即用平行于各坐标轴的超平面对空间进行切分;回归树的映射函数是分段函数。决策树是分段线性函数而不是线性函数,它具有非线性建模能力。)
-
损失函数:
-
学习方法:贪心算法
ID3
Step 1.计算在当前节点上的数据集的信息熵和未用于过节点分裂的特征的条件熵,选择信息增益最大的特征进行节点分裂,选择的特征有多少个取值则分裂为多少个叶子节点;
Step 2.继续下一个节点分裂,并进行Step 1,直至节点只包含单一特征或单一样本则停止分裂;
- 应用场景:自变量离散(多叉树),因变量离散(分类)
- 分裂节点的特征选择标准:信息增益
信息增益:
G a i n ( D , A ) = H ( D ) − H ( D ∣ A ) Gain(D,A)=H(D)-H(D|A) Gain(D,A)=H(D)−H(D∣A)
其中 H ( D ) H(D) H(D)为数据集 D D D的信息熵, H ( D ∣ A ) H(D|A) H(D∣A)为数据集 D D D基于特征 A A A的条件熵,即数据集 D D D在用特征A进行数据划分前提下的信息熵。
信息熵是度量数据集信息量大小的指标,信息量越大,代表数据集不纯度越高:
H ( D ) = − ∑ k = 1 K p k l o g 2 p k H(D)=-\sum_{k=1}^{K}p_klog_{2}p_k H(D)=−∑k=1Kpklog2pk, p k = ∣ C k ∣ ∣ D ∣ p_k=\frac{|C_k|}{|D|} pk=∣D∣∣Ck∣,
其中 K K K为数据集 D D D的类别数, C k C_k Ck为数据集D属于类别 k k k的样本集合, ∣ . ∣ |.| ∣.∣表示数据集样本数。
条件熵是度量数据集在某种划分下的信息量大小,这里是按特征A的特征值划分:
H ( D ∣ A ) = − ∑ m = 1 M p m H ( D m ) = − ∑ m = 1 M p m ( − ∑ k m = 1 K p k m l o g 2 p k m ) H(D|A)=-\sum_{m=1}^{M}p_mH(D_m)=-\sum_{m=1}^{M}p_m(-\sum_{k_m=1}^{K}p_{k_m}log_{2}p_{k_m}) H(D∣A)=−∑m=1MpmH(Dm)=−∑m=1Mpm(−∑k