决策树算法
决策树是一种基本的分类与回归算法,其实就是if-then的集合。
主要包括三个部分:
(1) 特征选择
(2) 决策树的生成
(3) 决策树的剪枝
决策树由结点和有向边组成。结点有两种类型:内部结点和叶子结点。内部结点表示一个特征或者属性。叶子结点表示一个类。决策树学习的损失函数通常是正则化的极大似然函数。
常用的算法有ID3,C4.5,CART算法。
ID3
ID3算法只能适应于离散属性,不能用于连续属性。
特征选择的方式是信息增益。 不确定性减少的程度
信息增益=经验熵-经验条件熵。
即g(D/A)=H(D)-H(D/A)
迭代终止条件:
(1) 所有的特征都用了,没有特征可以继续来进行特征选择
(2) 当前特征集中的最大的信息增益小于我们设定的阈值。
ID3算法使用了信息增益。信息增益的缺点是:对取值数目比较多的属性有偏好。一个特征的信息增益越大,表明属性对样本熵减少的能力越强,不确定性变成确定性的能力越强。用信息增益训练出来的决策树深度很浅的树。
C4.5
与ID3不同之处就是:特征选择使用的是信息增益比,同时可以对连续属性进行处理。
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
2) 在树构造过程中进行剪枝;
3) 能够完成对连续属性的离散化处理;
4) 能够对不完整数据进行处理。
连续属性的一般处理方式:
将连续属性的属性值进行排序,如[x1,x2,x3....xn],将连续属性离散化,最简单的方式就是取相邻两个值的终点作为属性划分点,即[(x1+x2)/2, (x2+x3)/2....]。每次划分的时候对划分点进行遍历,选取最佳的划分点。
CART
回归树:损失函数:最小均方误差。
回归树基本流程:
(1) 选择最优变量与最优切分点。使得均方误差最小
(2) 确定每个区域的输出值
(3) 继续对划分的两个子区域调用(1)(2),直到满足停止条件。
(4) 将输入空间划分成M个区域,生成决策树。
分类树:分类树使用基尼指数选择最优特征,同时决定该特征的最优二值切分点。
CART算法分类流程:
输入:训练数据集,停止计算的条件
(1) 计算现有特征对该数据集的基尼指数。
(2) 选择基尼指数最下的特征及其对应的最好的切分点。
(3) 递归调用(1)(2),直到满足停止条件
(4) 生成CART决策树。
算法停止计算的条件是:结点中样本个数小于预定阈值,或者样本集的基尼指数小于预定阈值,或者没有更多的特征。 如果此时该叶子结点的纯度还不是很高,只能使用多数表决法。
CART剪枝算法基于代价复杂度思想:就是不断剪枝,构造出不同的子树序列,对不同的子树序列交叉验证,判断出好的子树序列。
总结:
决策树停止条件:
(1)特征集合都用完了。
(2)当前集合最大信息增益/信息增益比/基尼指数小于阈值。
(3)当前节点中的样本数目已经小于限定的最小值。
决策树的优缺点:
相对于其他数据挖掘算法,决策树在以下几个方面拥有优势:
• 决策树易于理解和实现. 人们在通过解释后都有能力去理解决策树所表达的意义。
• 对于决策树,数据的准备往往是简单或者是不必要的 . 其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。
• 能够同时处理数据型和常规型属性。其他的技术往往要求数据属性的单一。
• 在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
• 对缺失值不敏感
• 可以处理不相关特征数据
• 效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。
决策树的缺点
1)对连续性的字段比较难预测。
2)对有时间顺序的数据,需要很多预处理的工作。
3)当类别太多时,错误可能就会增加的比较快。
4)一般的算法分类的时候,只是根据一个字段来分类。
5)在处理特征关联性比较强的数据时表现得不是太好
决策树的学习策略:正则化的极大似然估计
决策树损失函数:对数似然损失
决策树进行特征选择的三种方式:信息增益,信息增益比,基尼指数。分别用在不同的算法中,信息增益与信息增益比的联系与区别。