二、树模型(3)

GBDT 特征筛选方法

https://blog.csdn.net/yangxudong/article/details/53899260

GBDT 用于分类
树形结构为什么不需要归一化?

因为数值缩放不影响分裂点位置,对树模型的结构不造成影响。树形结构按照特征值进行排序的,排序的顺序不变,那么所属的分支以及分裂点就不会有不同。

GBDT不适合使用高维稀疏特征

1.一方面,树模型训练是一个贪婪选择的过程,从候选特征集合中选出增益最大的特征做分裂,特征稀疏时,计算量大耗时;另一方面,如果划分过细,容易产生过拟合。加入有1w个样本,其中有10个样本的类别是1;有100维特征,其中f1特征的取值为0和1,且刚好这10个样本的f1特征值都是1,其余9990个样本的f1值是0(在高维稀疏的情况下这种情况很常见),很容易拟合出一个使用f1为分类节点的树直接将数据划分的很好,这种模型的泛化能力却很差。
2.高维稀疏特征通常使用LR模型,在高维稀疏空间中,往往样本更加线性可分。同时,LR正则项是对权重的惩罚,权重一旦过大,惩罚就会很大,进一步压缩权重,使之不过与太大。而树模型的正则项一般是叶子节点数或深度等。对于上面的case,决策树只需要一个节点就可以完美分割,惩罚项非常小。因此,带正则化的线性模型比较不容易对高维稀疏特征过拟合。

stacking

https://www.cnblogs.com/geeksongs/p/15416820.html

Adaboost能否做回归问题

https://www.heywhale.com/mw/project/5d5ba7178499bc002c04b369

为什么Adaboost方式能够提高整体模型的学习精度

根据前向分布加法模型,Adaboost算法每一次都会降低整体的误差,虽然单个模型误差会有波动,但是整体的误差却在降低,整体模型复杂度在提高。
每轮训练结束后,AdaBoost 会对样本的权重进行调整,调整的结果是越到后面被错误分类的样本权重会越高。而后面的分类器为了达到较低的带权分类误差,会把样本权重高的样本分类正确。这样造成的结果是,虽然每个弱分类器可能都有分错的样本,然而整个 AdaBoost 却能保证对每个样本进行正确分类,从而实现快速收敛。

AdaBoost 与 GBDT 对比有什么不同?

区别在于两者boosting的策略:Adaboost通过不断修改权重、不断加入弱分类器进行boosting;GBDT通过不断在负梯度方向上加入新的树进行boosting

Adaboost 的优缺点?

​优点:能够基于泛化性能相当弱的的学习器构建出很强的集成,不容易发生过拟合。
缺点:对异常样本比较敏感,异常样本在迭代过程中会获得较高的权值,影响最终学习器的性能表现。

随机森林为什么不容易过拟合

​每个基学习器学到的都是训练集的子集。而"过拟合"通俗地来讲就是拟合了整个训练集的大部分数据。所以只训练子集显然更难做到拟合该子集以外的其它数据。随机森林可认为是寻找多个窄小领域的专家通过投票产生结果,泛化能力强。实际上随机森林和最近邻方法都可认为是对特征空间的分解。随机森林在训练过程中预先分解好,而最近邻方法根据测试样本再分解特征空间。

影响随机森林分类效果的因素
  • 森林中任意两棵树的相关性:相关性越大,错误率越大;
  • 森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。
    减小特征个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围)。
随机森林优缺点

优点:

  • 继承树模型的优点,无需特征预处理,不需要特征选择,可以计算特征重要度,可以找到特征间的复杂非线性关系;
  • 泛化性能好,不容易过拟合;
  • 训练速度快,可并行;
  • 对噪声不敏感,boosting算法是基于梯度的,对噪声非常敏感而很容易过拟合;
  • 适应高维特征大样本(高维不稀疏,树模型无法很好处理稀疏数据)。小样本时随机森林相对经典算法如SVM或Boosting并不占优势,甚至效果更差,这主要由于要么随机性无处施展;大样本时当其他算法基本不work时,随机森林反而有上佳表现;
  • 在对缺失数据进行估计时,由于随机选取特征,随机森林依然十分有效;
  • 当存在分类不平衡的情况时,随机森林能够提供平衡数据集误差的有效方法,比如对于 10:1 的数据,将多数数据分为 10份,做 10个 1:1 的单模型然后 Bagging 起来即可。

缺点:

  • 随机森林在解决回归问题时,并没有像它在分类中表现的那么好。因为它并不能给出一个连续的输出。当进行回归时,随机森林不能够做出超越训练集数据范围的预测,这可能导致在某些特定噪声的数据进行建模时出现过度拟合。(PS:随机森林已经被证明在某些噪音较大的分类或者回归问题上会过拟合);
  • 对于小数据或者低维数据(特征较少的数据),可能不能产生很好的分类。(处理高维数据,处理特征遗失数据,处理不平衡数据是随机森林的长处)。
集成学习有效的前提
  • 分类器之间有差异性(各个分类器“好而不同”);
  • 每个分类器的精度大于0.5;
为什么要集成
  • 强分类器较难获得,集成学习将若分类器组合形成强分类器,实现难度更低;
集成学习一定要用弱分类器吗
  • 不一定,但通常用弱分类器集成,在 RF中通过随机特征或样本构造多样性,这样的单个模型效果通常较弱。弱只是实现多样性的一个结果;
  • bagging一般期望强的基模型,并且差异越大越好。有人说强的基模型趋同,实在是不能苟同,毕竟弱模型的模型空间更小。一般我们会在超参,样本,特征上都加上随机性,让模型的差异尽量大一些。而更大的模型空间,模型的差异有可能更大。实践中,一般随机森林都不剪枝,就是一个典型的例子。boosting一般用欠拟合的弱分类器(同时计算代价也小,可以结合更多的分类器),基模型越强,那留给boosting优化的空间就越小。你可以自由调整两者的贡献;
集成学习常用的基分类器是决策树,为什么?
  • 决策树可以较为方便地将样本的权重整合到训练过程中,而不需要使用过采样的方法来调整样本权重;
  • 决策树的表达能力和泛化能力,可以通过调节树的层数来做折中;
  • 数据样本的扰动对于决策树的影响较大,因此不同子样本集合生成的决策树基分类器随机性较大,这样的“不稳定学习器”更适合作为基分类器。此外, 在决策树节点分裂的时候,随机地选择一个特征子集,从中找出最优分裂属性, 很好地引入了随机性;
  • 除了决策树外,神经网络模型也适合作为基分类器,主要由于神经网络模型也比较“不稳定”,而且还可以通过调整神经元数量、连接方式、网络层数、初始权值等方式引入随机性;
可否将随机森林中的基分类器,由决策树替换为线性分类器或K-近邻
  • Bagging所采用的基分类器,最好是对样本分布比较敏感(即不稳定的分类器)。线性分类器或者K-近邻都是较为稳定的分类器,本身方差就不大,所以以它们为基分类器使用Bagging并不能在原有基分类器的基础上获得更好的表现,甚至可能因为Bagging的采样,而导致他们在训练中更难收敛,从而增大了集成分类器的偏差。
为什么信息增益偏向取值较多的特征(缺点)?
  • 当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较 偏向取值较多的特征。
决策树算法的停止条件?
  • 最小节点数:当节点的数据量小于一个指定的数量时,不继续分裂。两个原因:一是数据量较少时,再做分裂容易强化噪声数据的作用;二是降低树生长的复杂性。提前结束分裂一定程度上有利于降低过拟合的影响。
  • 熵或者基尼值小于阀值:当熵或者基尼值过小时,表示数据的纯度比较大,如果熵或者基尼值小于一定程度数,节点停止分裂。
  • 决策树的深度达到指定的条件:决策树的深度是所有叶子节点的最大深度,当深度到达指定的上限大小时,停止分裂。
  • 所有特征已经使用完毕,不能继续进行分裂
决策树怎么做回归?
  • 给回归定义一个损失函数,比如 L2 损失,可以把分叉结果量化;最终的输出值,是分支下的样本均值。 [切分点选择:最小二乘法]; [输出值:单元内均值]
朴素贝叶斯原理
  • 利用贝叶斯公式根据先验概率,计算后验概率,并将样本归为后验概率最大的那一类
贝叶斯算法的前提假设
  • 特征之间相互独立
  • 每个特征同等重要
怎么理解朴素贝叶斯中的“朴素”?
  • 要求特征之间相互独立
为什么属性独立性假设在实际情况中很难成立,但朴素贝叶斯仍能取得较好的效果?
  • 在使用分类器之前,首先做的第一步往往是特征选择,这个过程的目的就是为了排除特征之间的共线性、选择相对较为独立的特征;
  • 对于与分类任务来说,只要各类别的条件概率排序正确,无需精准概率值就可以导获得正确分类;
  • 如果属性间依赖对所有类别影响相同,或依赖关系的影响能相互抵消,则属性条件独立性假设在降低计算复杂度的同时不会对性能产生负面影响。
为什么要后验概率最大化?
  • 等价于期望风险最小化。假设选取0-1损失函数,即分类正确取1,错误取0,这时的期望风险最小化为
    在这里插入图片描述
条件概率、先验概率、后验概率、联合概率、贝叶斯公式的概念
  • 贝叶斯公式: P ( Y ∣ X ) = P ( X ∣ Y ) P ( Y ) P ( X ) P(Y∣X) = \frac{P(X∣Y)P(Y)}{P(X)} P(YX)=P(X)P(XY)P(Y)
  • 条件概率: P ( X ∣ Y ) P(X∣Y) P(XY)表示给定 Y Y Y的条件下 X X X发生的概率
  • 先验概率:**表示事件发生前的预判概率。**这个可以是基于历史数据统计,也可以由背景常识得出,也可以是主观观点得出。一般都是单独事件发生的概率,如 P ( X ) P(X) P(X)
  • 后验概率:基于先验概率求得的反向条件概率,形式上与条件概率相同(若 P ( X ∣ Y ) P(X∣Y) P(XY)为正向,则 P ( Y ∣ X ) P(Y∣X) P(YX)为反向
  • 联合概率:事件X与事件Y同时发生的概率, P ( X , Y ) P(X,Y) P(X,Y)
什么是朴素贝叶斯中的零概率问题?如何解决?
  • 零概率问题:在计算实例的概率时,如果某个量x xx,在观察样本库(训练集)中没有出现过,会导致整个实例的概率结果是0。
  • 解决办法:若P ( x ) P(x)P(x)为零则无法计算。为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。
  • 如,X有3个类别,则 P ( X = 1 ∣ Y = 1 ) = 2 / 9 P(X=1|Y=1)=2/9 P(X=1Y=1)=2/9会变为(2+1)/(9+3)
    在这里插入图片描述
朴素贝叶斯为什么适合增量计算?
  • 因为朴素贝叶斯在训练过程中实际只需要计算出先验概率和各个特征的类条件概率,这些概率值可以快速的根据增量数据进行更新,无需重新全量训练,所以其十分适合增量计算,该特性可以使用在超出内存的大量数据计算和按小时级等获取的数据计算中。
朴素贝叶斯与LR的区别?
  • 首先,Navie Bayes通过已知样本求得先验概率P(Y), 及条件概率P(X|Y), 对于给定的实例,计算联合概率,进而求出后验概率。也就是说,它尝试去找到底这个数据是怎么生成的(产生的),然后再进行分类。哪个类别最有可能产生这个信号,就属于那个类别。
    优点: 样本容量增加时,收敛更快;隐变量存在时也可适用。
    缺点: 时间长;需要样本多;浪费计算资源
  • 相比之下,Logistic回归不关心样本中类别的比例及类别下出现特征的概率,它直接给出预测模型的式子。设每个特征都有一个权重,训练样本数据更新权重w,得出最终表达式。梯度法。
    优点: 直接预测往往准确率更高;简化问题;可以反应数据的分布情况,类别的差异特征;适用于较多类别的识别。
    缺点: 收敛慢;不适用于有隐变量的情况。
朴素贝叶斯的优缺点
  • 优点
    • 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率;
    • 对小规模数据表现很好,能够处理多分类任务,适合增量式训练;
    • 对缺失数据不太敏感;
    • 适用于文本分类任务,对待预测样本进行预测时,过程简单速度快(想想邮件分类的问题,预测急救室分词后进行概率乘积,在log域直接做加法更快)。
  • 缺点
    • 特征条件独立性假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好;
    • 需要计算先验概率,而先验概率很多时候取决于假设,假设的模型可以有很多种,因此在 某些时候会由于假设的先验模型的原因导致预测效果不佳;
    • 对输入数据的表达形式很敏感(离散、连续、值极大极小之类的)。
KNN原理
  • 当预测新的实例x,根据它距离最近的k个点是什么类别来判断x属于哪个类别,少数服从多数
2,KNN算法有哪些优点和缺点?
  • 优点
    • 思想简单,既可以分类也可以回归
    • 可用于非线性分类
    • 训练时间复杂度比支持向量机之类的算法低,仅为O(n)
    • 和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感
  • 缺点
    • 效率低,计算量大,尤其是特征数非常多的时候,每一次分类或者回归,都需要计算目标分类点与训练数据所有点之间的距离。
    • 样本不平衡的时候,新的未知实例容易被归类到这个主导样本, 对稀有类别的预测准确率低
    • 维数灾难,KNN对多维度的数据处理也不是很好。随着维度增加,看似相近的两个点之间的距离越来越大,就会越来越不像
    • KD树之类的模型建立需要大量的内存
    • 不具有显示的学习过程,使用懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归之类的算法慢
不平衡的样本可以给KNN的预测结果造成哪些问题,有没有什么好的解决方式?
  • 样本不平衡的时候,对稀有类别的预测准确率低。有时候我们会遇到这样的问题,即样本中某系类别的样本非常的少,甚至少于K,这导致稀有类别样本在找K个最近邻的时候,会把距离其实较远的其他样本考虑进来,而导致预测不准确。为了解决这个问题,我们限定最近邻的一个最大距离,也就是说,我们只在一个距离范围内搜索所有的最近邻,这避免了上述问题。这个距离我们一般称为限定半径。
  • 可以使用权值来改进,距实例较近的点赋予较高的权值,较远的赋予较低的权值。
如何选择合适的距离衡量???

不用曼哈顿距离,因为它只计算水平或垂直距离,有维度的限制。另一方面,欧氏距离可用于任何空间的距离计算问题。因为,数据点可以存在于任何空间,欧氏距离是更可行的选择。众所周知当变量数越多,欧式距离的区分能力就越差。此时要用什么距离??

变量值域对距离的影响
  • 值域越大的变量常常会在距离计算中占据主导作用,因此应先对变量进行标准化。
逻辑回归原理
  • 逻辑回归用来解决分类问题,线性回归的结果带入一个非线性变换的sigmoid函数中,得到[0,1]取值范围的数,可以看作概率值,如果分类阈值设为0.5,那么大于0.5分类为正样本。
逻辑回归的假设
  • y符合伯努利分布
  • 在给定 x x x θ \theta θ的条件下 y = 1 y=1 y=1的概率符合如下公式:在这里插入图片描述
逻辑回归的损失函数在这里插入图片描述##### 逻辑回归的求解方法在这里插入图片描述
逻辑回归怎么解决多分类问题
  • softmax多分类
逻辑回归在训练的过程当中,如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响?
  • 如果在损失函数最终收敛的情况下,有很多特征高度相关也不会影响分类器的效果。对特征本身来说的话,假设只有一个特征,在不考虑采样的情况下,你现在将它重复100遍。训练以后完以后,数据还是这么多,但是这个特征本身重复了100遍,实质上将原来的特征分成了100份,每一个特征都是原来特征权重值的百分之一。如果在随机采样的情况下,其实训练收敛完以后,还是可以认为这100个特征和原来那一个特征扮演的效果一样,只是可能中间很多特征的值正负相消了
逻辑斯特回归是否要对特征进行离散化,为什么?

离散化可以得到更好的效果

  • 非线性。逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合; 离散特征的增加和减少都很容易,易于模型的快速迭代;
  • 速度快。稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
  • 鲁棒性。离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
  • 方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
  • 稳定性:特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;
  • 简化模型:特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
  • 模型是使用离散特征还是连续特征,其实是一个“海量离散特征+简单模型” 同 “少量连续特征+复杂模型”的权衡。既可以离散化用线性模型,也可以用连续特征加深度学习。就看是喜欢折腾特征还是折腾模型了。
K-Means聚类效果评估

轮廓系数:结合内聚度和分离度两种因素,值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优。最后将所有样本点的轮廓系数求平均,就是该聚类结果总的轮廓系数。在这里插入图片描述

K-Means k值选取方法
  • 每个类的畸变程度等于该类重心与其内部成员位置距离的平方和。也即我们前面所说的每个类的类内离差平方和。若类内部的成员彼此间越紧凑则类的畸变程度越小,反之,若类内部的成员彼此间越分散则类的畸变程度越大。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值