决策树
ID3
优点:是理论清晰、方法简单、学习能力较强
缺点:只能处理分类属性的数据,不能处理连续的数据;划分过程会由于子集规模过小而造成统计特征不充分而停止;ID3算法在选择根节点和各内部节点中的分支属性时,采用信息增益作为评价标准。信息增益的缺点是倾向于选择取值较多的属性,在有些情况下这类属性可能不会提供太多有价值的信息。
C4.5
- 采用二分法对连续属性进行处理。先将特征取值排序,以连续两个值中间值作为划分标准。尝试每一种划分,并计算修正后的信息增益,选择信息增益最大的分裂点作为该属性的分裂点。
优点:克服了 ID3 仅仅能够处理离散属性的问题,以及信息增益偏向选择取值较多特征的问题。
CART
- 必须为二叉树,无论属性取值有多个还是两个。
优点:Gini 指数的计算不需要对数运算,更加高效。
Gini 指数更偏向于连续属性,熵更偏向于离散属性。
预剪枝和后剪枝的比较
判断是否带来泛化性能的提升:留出法,即预留一部分数据作为验证集来进行性能评估。根据验证集的精度是否提升进行判断。
预剪枝是指在决策树的生成过程中,对每个节点在划分前先进行评估,若当前的划分不能带来泛化性能的提升,则停止划分,并将当前节点标记为叶节点。
优点:降低过拟合,显著减少了训练时间开销和测试时间开销。
缺点:容易导致欠拟合。
后剪枝是指先从训练集生成一颗完整的决策树,然后自底向上对非叶节点进行考察,若将该节点对应的子树替换为叶节点,能带来泛化性能的提升,则将该子树替换为叶节点。(注:无提升也要剪枝,因为剪枝后的模型更简单)。
优点:欠拟合风险小,泛化性能优于预剪枝。
缺点:训练时间久。
LR
在实际应用中,对于逻辑回归需要注意正则化的问题。L1正则(也称LASSO) 假设模型参数取值满足拉普拉斯分布, L2正则(也称RIDGE) 假设模型参数取值满足高斯分布。
逻辑回归 vs 线性回归
- 两者都属于广义线性模型。
- 线性回归属于回归任务,而逻辑回归属于分类任务。线性回归在整个实数范围内进行预测,敏感度一致。逻辑回归是在线性回归的基础上,将通过 sigmoid函数,将预测值限定为 [0,1] 间的一种回归模型。
- 线性回归优化目标函数用的最小二乘法,而逻辑回归用的是最大似然估计。
- 逻辑曲线在 z=0时,十分敏感,在 z远大于0或 z远小于0处,都不敏感 。逻辑回归的鲁棒性比线性回归要好。
L1 和 L2 正则对比
- 均为了防止过拟合。
- L1 正则化,向量中各元素绝对值之和。L2 正则化,向量中各元素的平方和开根号。
- L1正则化倾向于使向量的分量尽量稀疏,L2 正则化倾向于非零分量个数尽量稠密。
- L1 会趋向于产生少量的特征,而其他的特征都是 0,而 L2 会选择更多的特征,这些特征都会接近于 0。
- L1 正则化又叫稀疏规则算子,关键在于能够实现特征的自动选择,参数稀疏可以避免非必要的特征引入的噪声。
LR与感知机的异同点:
- 两类都是线性分类器;
- 损失函数两者不同:逻辑斯蒂回归使用极大似然(对数损失函数),感知机使用的是均方损失函数(即错误点到分离平面的距离,最小化这个值)
- 逻辑斯蒂比感知机的优点在于对于激活函数的改进。
- 前者为sigmoid function,后者为阶跃函数。这就导致LR是连续可导,而阶跃函数则没有这个性质。
- LR使得最终结果有了概率解释的能力(将结果限制在0-1之间),sigmoid为平滑函数,能够得到更好的分类结果,而step function为分段函数,对于分类的结果处理比较粗糙,非0即1,而不是返回一个分类的概率。
SVM
应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解。优点:
- 一是对偶问题往往更容易求解;
- 二是自然引入核函数,进而推广到非线性分类问题。
优缺点
缺点:
- 时空开销比较大,训练时间长;
- 核函数的选取比较难,主要靠经验。
优点:
- 在小训练集上往往得到比较好的结果;
- 使用核函数避开了高纬空间的复杂性;
- 泛化能力强。
LR和SVM的区别
- Linear SVM和LR都是线性分类器
- Linear SVM和LR都是判别模型
- Linear SVM不直接依赖数据分布,分类平面不受一类点影响,受支持向量的影响;LR则受所有数据点的影响,如果数据不同类别处于极其不平衡的状态, 一般需要先对数据做平衡处理。
- Linear SVM依赖数据表达的距离测度,所以需要对数据先做标准化;LR不受其影响
- Linear SVM依赖惩罚项的系数,实验中需要做交叉验证
- Linear SVM和LR的执行都会受到异常值的影响,其敏感程度而言,谁更好很难下明确结论。
- Linear SVM和LR损失函数不同, LR为logloss, SVM为hinge loss.
SVM与感知机的区别
SVM分类超平面的解是唯一的,要满足间隔最大化
感知机的解不唯一,没有间隔最大化的约束条件,满足分开数据点的分界面都是可以的
随机森林
优点:
- 由于每次不再考虑全部的属性,而是一个属性子集,所以相比于 Bagging 计算开销更小,训练效率更高;
- 由于增加了属性的扰动,随机森林中基学习器的性能降低,使得在随机森林在起始时候性能较差,但是随着基学习器的增多,相比于 Bagging,随机森林通常会收敛于更低的泛化误差;
- 两个随机性的引入,使得随机森林不容易陷入过拟合,具有很好的抗噪声能力;
- 对数据的适应能力强,可以处理离散和连续的,无需要规范化;
- 可以得到变量的重要性, 基于oob错误率(包外错误率out-of-bag error)和基于 Gini 系数的变化;
- 不同决策树可以由不同主机并行训练生成,效率很高。
缺点:
- 在噪声较大的时候容易过拟合。
boosting
主要关注降低偏差。对训练样本分布调整,主要是通过增加误分类样本的权重,降低正确分类样本的权重。
训练目标:最小化指数损失函数。
- 先从初始训练集中学习一个基学习器;
- 根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续收到更多关注;
- 基于调整后的样本分布来训练下一个基学习器;
- 如此反复,直到基学习器数目达到 T,最终将这 T 个基学习器进行加权结合。