1.决策树的优缺点
优点:
-
决策树易于理解和实现. 人们在通过解释后都有能力去理解决策树所表达的意义
-
对于决策树,数据的准备往往是简单或者是不必要的 . 其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性
-
能够同时处理数据型和常规型属性,其他的技术往往要求数据属性的单一
-
在相对短的时间内能够对大型数据源做出可行且效果良好的结果
-
对缺失值不敏感
-
可以处理不相关特征数据
-
效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度
缺点:
-
对连续性的字段比较难预测
-
对有时间顺序的数据,需要很多预处理的工作
-
当类别太多时,错误可能就会增加的比较快
-
在处理特征关联性比较强的数据时表现得不是太好
2.决策树的划分标准是什么
有三种:最大信息增益、最大信息增益率、基尼系数 而这三种不同的划分标准就对应了三种典型决策树:ID3(最大信息增益)、C4.5(最大信息增益率)、CART(基尼系数)
信息增益:指的是使用某一个属性a进行划分后,所带来的纯度(信息熵用来度量样本集合的纯度)提高的大小。一般而言,信息增益越大,意味着使用属性a来进行划分所获得的“纯度提升”越大。但信息增益对可取值较多的属性有所偏好
而信息增益率则解决了特征偏好的问题。
但是不论是信息增益还是信息增益率,存在的问题是涉及对数运算,计算量大,为了解决这个问题。可以采用基尼系数作为节点划分的标准。
3.ID3和C4.5的区别
最大的区别是划分标准的不同:ID3采用信息增益,而C4.5采用的是信息增益率。
C4.5继承了ID3的优点,并在以下几个方面对ID3算法进行了改进:
-
用信息增益率来选择属性,克服了用信息增益选择属性是偏向选择去之多的属性的不足
-
在树的构造过程中进行剪枝
-
能够对连续的属性进行离散化处理
-
能够对不完整的数据进行处理
4.树模型对离散特征怎么处理的
树模型是要寻找最佳分裂点,对于离散特征,树模型会评估每个离散值的信息增益,将信息增益最大的数值作为分裂点,因此,树模型不需要对离散特征进行事先one-hot处理,否则会使特征维度增大且稀疏,不仅会增加模型的计算量,而且会损失数据的信息量造成模型的效果不佳,以及过拟合的风险。也不需要进行归一化处理。
5.树模型怎么决定一个叶子结点是否要分裂
有三种:最大信息增益、最大信息增益率、基尼系数。而这三种不同的划分标准就对应了三种典型决策树:ID3(最大信息增益)、C4.5(最大信息增益率)、CART(基尼系数)。
信息增益:指的是使用某一个属性a进行划分后,所带来的纯度(信息熵用来度量样本集合的纯度)提高的大小。一般而言,信息增益越大,意味着使用属性a来进行划分所获得的“纯度提升”越大。但信息增益对可取值较多的属性有所偏好。
而信息增益率则解决了特征偏好的问题。
但是不论是信息增益还是信息增益率,存在的问题是涉及对数运算,计算量大,为了解决这个问题。可以采用基尼系数作为节点划分的标准。
6.决策树出现过拟合的原因及解决办法
原因
-
在决策树构建的过程中,对决策树的生长没有进行合理的限制(剪枝);
-
样本中有一些噪声数据,没有对噪声数据进行有效的剔除;
解决办法
-
选择合理的参数进行剪枝,可以分为预剪枝和后剪枝,我们一般采用后剪枝的方法;
-
利用K-folds交叉验证,将训练集分为K份,然后进行K次交叉验证,每次使用K-1份作为训练样本数据集,另外一份作为测试集;
-
减少特征,计算每一个特征和响应变量的相关性,常见得为皮尔逊相关系数,将相关性较小的变量剔除;
7.如何对决策树进行剪枝?
剪枝是防止决策树过拟合的方法。一棵完全生长的决策树很可能失去泛化能力,因此需要剪枝。
剪枝的策略
剪枝分为预剪枝和后剪枝两种,预剪枝是在构建决策树时抑制它的生长,后剪枝是决策树生长完全后再对叶子节点进行修剪。
预剪枝
-
设置一个树的最大高度/深度或者为树设置一个最大节点数,达到这个值即停止生长
-
对每个叶子节点的样本数设置最小值,生长时叶子节点样本数不能小于这个值
-
判断每次生长对系统性能是否有增益
后剪枝
-
错误率降低剪枝(Reduced-Error Pruning)
-
悲观剪枝(Pessimistic Error Pruning)
-
代价复杂度剪枝(Cost-Complexity Pruning)
预剪枝和后剪枝的优缺点比较
-
时间成本方面,预剪枝在训练过程中即进行剪枝,后剪枝要在决策树完全生长后自底向上逐一考察。显然,后剪枝训练时间更长。预剪枝更适合解决大规模问题。
-
剪枝的效果上,预剪枝的常用方法本质上是基于贪心的思想,但贪心法却可能导致欠拟合,后剪枝的欠拟合风险很小,泛化性能更高。
-
另外,预剪枝的有些方法使用了阈值,如何设置一个合理的阈值也是一项挑战。
8.决策树需要进行归一化处理吗
概率模型不需要归一化,因为他们不关心变量的值,而是关心变量的分布和变量之间的条件概率。决策树是一种概率模型,数值缩放,不影响分裂点位置。所以一般不对其进行归一化处理。
9.决策树与逻辑回归的区别
-
对于拥有缺失值的数据,决策树可以应对,而逻辑回归需要挖掘人员预先对缺失数据进行处理;
-
逻辑回归对数据整体结构的分析优于决策树,而决策树对局部结构的分析优于逻辑回归;
-
逻辑回归擅长分析线性关系,而决策树对线性关系的把握较差。线性关系在实践中有很多优点:简洁,易理解,可以在一定程度上防止对数据的过度拟合。
-
逻辑回归对极值比较敏感,容易受极端值的影响,而决策树在这方面表现较好。
-
执行速度上:当数据量很大的时候,逻辑回归的执行速度非常慢,而决策树的运行速度明显快于逻辑回归。
10.决策树的损失函数
设决策树TT的叶结点个数为|T|∣T∣,tt是树TT的叶结点,该叶结点有N_tNt个样本点,其中kk类的样本点有N_{tk}Ntk个,k=1,2,...,Kk=1,2,...,K,H_t(T)Ht(T)为叶结点tt上的经验熵,\alpha \geq 0α≥0为参数,则决策树学习的损失函数可以定义为:
其中经验熵为:
公式中H_t(T)Ht(T)可以理解为这个叶子节点的熵。如果把决策树一直划分下去,叶子节点的熵应该为0,只有一个类。但是如果使用一些剪枝规则,每个节点中仍然可以有熵值,也就是可以继续划分。
N_tNt是这个节点中的样本的个数,可以看做这个节点的权重。节点中样本数越多,权重越大。
所以,公式前面一项代表决策树所有叶子节点的熵值的加权和。每个节点的样本分类纯度越高,这个值就越小。
后面一项是对整棵决策树的复杂度的惩罚项,结点数越多,越复杂。相当于一个正则项,也可以理解为先验概率:较小的树有较大的先验概率。
将之前的零碎知识点整理了一下 以便日后复习。。