决策树学习算法包括哪几个部分?常用的算法有哪些?
决策树的学习算法主要包括三个部分:
1.特征选择 2.树的生成 3.树的剪枝
常用的算法有以下几种:
1.ID3 2. C4.5 3.CART
决策树的根节点、内部节点和叶节点分别表示什么?
叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集.从根结点到每个叶结点的路径对应了一个判定测试序列.
特征选择的准则有哪些(如何选择最优划分属性)?
主要是根据信息增益和信息增益增益比这两个指标来进行特征选择
信息增益
首先信息熵的定义为:Ent(D)=−∑k=1∣y∣pkEnt(D)=-\sum_{k=1}^{|y|}p_kEnt(D)=−∑k=1∣y∣pklog2pklog_2p_klog2pk
信息增益为:Gain(D,a)=Ent(D)−∑v=1V∣Dv∣∣D∣Ent(Dv)Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v)Gain(D,a)=Ent(D)−∑v=1V∣D∣∣Dv∣Ent(Dv)
信息增益比
增益比定义为:GainGainGain_ratio(D,a)=Gain(D,a)IV(a),ratio(D,a)=\frac{Gain(D,a)}{IV(a)},ratio(D,a)=IV(a)Gain(D,a),
其中: IV(a)=−∑v=1V∣Dv∣∣D∣log2∣Dv∣∣D∣IV(a)=-\sum_{v=1}^{V}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|}IV(a)=−∑v=1V∣D∣∣Dv∣log2∣D∣∣Dv∣
决策树如何防止过拟合?
剪枝是决策树学习算法对付“过拟合的重要手段”。为防止决策树将训练样本学习的太好,可通过主动去掉一些分支来降低过拟合的风险。剪枝的基本策略主要包括“预剪枝”和“后剪枝”
预剪枝
是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶节点。
后剪枝
后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶节点能带来决策树泛化能力的提升,则将该子树替换为叶节点。
连续值和缺失值如何处理?
1.连续值处理
由于连续属性的可取值数目不再有限,因此,不可能直接根据连续属性的可取值来对结点进行划分。此时,连续属性离散化技术可派上用场。最简单的策略是采用二分法对连续属性进行处理,这正是C4.5决策树算法中采用的机制。
2.缺失值处理
现实任务中常会遇到不完整样本,即样本的某些属性值缺失。例如由于诊测成本、隐私保护等因素,患者的医疗数据在某些属性上的取值(如HIV测试结果)未知;尤其是在属性数目较多的情况下,往往会有大量样本出现缺失值。如果简单地放弃不完整样本,仅适用无缺失值的样本来进行学习,显然是对数据信息极大的浪费。
1.那么如何在属性值缺失的情况下进行划分属性选择?
ρ\rhoρ表示无缺失值样本所占比例,给定训练集DDD和属性aaa,D^\hat{D}D^表示DDD在属性aaa上没有缺失值的样本子集。
Gain(D,a)=ρ∗Gain(D^,a)Gain(D,a)=\rho*Gain(\hat{D},a)Gain(D,a)=ρ∗Gain(D^,a)
2.给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
若样本xxx在划分属性aaa上的取值已知,则将xxx划入与其取值对应的子结点,且样本权值在子结点中保持为wxw_xwx;若样本XXX在划分属性aaa上的取值未知,则将XXX同时划入所有子结点,且样本权值在于属性值ava^vav对应的子结点中调整为r^v∗wx\hat{r}_v*{w_x}r^v∗wx,其中r^v\hat{r}_vr^v表示无缺失值样本中属性aaa上取值ava^vav的样本所占的比例。