机器学习算法小结与收割offer遇到的问题

机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间的区别还是很有必要的。可以帮助我们做一些模型选择。本篇博文就总结一下各种机器学习算法的特点和应用场景。本文是笔者结合自身面试中遇到的问题和总结网络上的资源得到的,所有引用已给出链接,如侵删。


机器学习

SVM与LR的区别

从模型解决问题的方式来看

Linear SVM直观上是trade-off两个量

a large margin,就是两类之间可以画多宽的gap ;不妨说是正样本应该在分界平面向左gap/2(称正分界),负样本应该在分解平面向右gap/2(称负分界)

L1 error penalty,对所有不满足上述条件的点做L1 penalty

给定一个数据集,一旦完成Linear SVM的求解,所有数据点可以被归成两类

一类是落在对应分界平面外并被正确分类的点,比如落在正分界左侧的正样本或落在负分界右侧的负样本

第二类是落在gap里或被错误分类的点。

假设一个数据集已经被Linear SVM求解,那么往这个数据集里面增加或者删除更多的一类点并不会改变重新求解的Linear SVM平面。不受数据分布的影响。

求解LR模型过程中,每一个数据点对分类平面都是有影响的,它的影响力远离它到分类平面的距离指数递减。换句话说,LR的解是受数据本身分布影响的。在实际应用中,如果数据维度很高,LR模型都会配合参数的L1 regularization。

两者的区别

两个模型对数据和参数的敏感程度不同,Linear SVM比较依赖penalty的系数和数据表达空间的测度,而(带正则项的)LR比较依赖对参数做L1 regularization的系数。但是由于他们或多或少都是线性分类器,所以实际上对低维度数据overfitting的能力都比较有限,相比之下对高维度数据,LR的表现会更加稳定,为什么呢?因为Linear SVM在计算margin有多“宽”的时候是依赖数据表达上的距离测度的,换句话说如果这个测度不好(badly scaled,这种情况在高维数据尤为显著),所求得的所谓Large margin就没有意义了,这个问题即使换用kernel trick(比如用Gaussian kernel)也无法完全避免。所以使用Linear SVM之前一般都需要先对数据做normalization,而求解LR(without regularization)时则不需要或者结果不敏感。

Linear SVM和LR都是线性分类器

Linear SVM不直接依赖数据分布,分类平面不受一类点影响;LR则受所有数据点的影响,如果数据不同类别strongly unbalance一般需要先对数据做balancing

Linear SVM依赖数据表达的距离测度,所以需要对数据先做normalization;LR不受其影响

Linear SVM依赖penalty的系数,实验中需要做validation

Linear SVM和LR的performance都会收到outlier的影响,其敏感程度而言,谁更好很难下明确结论。

balance的方法

调整正、负样本在求cost时的权重,比如按比例加大正样本cost的权重。然而deep learning的训练过程是on-line的因此你需要按照batch中正、负样本的比例调整。

做训练样本选取:如hard negative mining,只用负样本中的一部分。

做训练样本选取:如通过data augmentation扩大正样本数量。

过拟合方面

LR容易欠拟合,准确度低。

SVM不太容易过拟合:松弛因子+损失函数形式

注意SVM的求解方法叫拉格朗日乘子法,而对于均方误差的优化方法是最小二乘法。

方法的选择

在Andrew NG的课里讲到过:

如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM

如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel

如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况

当你的数据非常非常非常非常非常大然后完全跑不动SVM的时候,跑LR。SVM适合于小样本学习。多大算是非常非常非常非常非常非常大? 比如几个G,几万维特征,就勉强算大吧...而实际问题上几万个参数实在完全不算个事儿,太常见了。随随便便就得上spark。读一遍数据就老半天,一天能训练出来的模型就叫高效了。所以在新时代,LR其实反而比以前用的多了=. =

应用场景方面不同

拟合程度,样本量,

距离测度,数据balance

模型简单易解释

如果数据特征维度高,svm要使用核函数来求解

Note:拉格朗日对偶没有改变最优解,但改变了算法复杂度:原问题—样本维度;对偶问题–样本数量。所以 线性分类&&样本维度<样本数量:原问题求解(liblinear默认); 非线性–升维—一般导致 样本维度>样本数量:对偶问题求解

SVM适合处理什么样的数据?

高维稀疏,样本少。【参数只与支持向量有关,数量少,所以需要的样本少,由于参数跟维度没有关系,所以可以处理高维问题】

机器学习常见算法总结

机器学习常见算法个人总结(面试用)

朴素贝叶斯

朴素贝叶斯的优点

对小规模的数据表现很好,适合多分类任务,适合增量式训练。

缺点

对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)

线性回归

线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记。均方误差是回归任务中最常用的性能度量,基于均方误差最小化来进行模型求解的方法成为最小二乘法。在线性回归中,最小二乘法就是试图找到一条直线,使得所有样本到直线上的欧式距离之和最小。这个想法和分类问题是正好相反的,分类问题是找到一个分界面离所有样本尽可能远。

优化方法

当x矩阵是列满秩的时候,可以用最小二乘法,但是求矩阵的逆比较慢

enter description here

梯度下降法,以最大似然估计的结果对权值求梯度,sigmoid函数也是如此

enter description here

均方无法的概率解释

假设根据特征的预测结果与实际结果有误差∈ (i) ,那么预测结果θ T x (i) 和真实结果y (i) 满足下

式:

enter description here

一般来讲,误差满足平均值为 0 的高斯分布,也就是正态分布。那么 x 和 y 的条件概率也就

enter description here

用条件概率最大似然估计法得到:

enter description here

LR回归

enter description here

回归用来分类 0/1 问题,也就是预测结果属于 0 或者 1 的二值分类问题

enter description here

仍然求的是最大似然估计,然后求导,得到迭代公式结果为,梯度下降法:

enter description here

优化问题的求解方法

[Math] 常见的几种最优化方法

大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型。常见的最优化方法有梯度下降法、牛顿法和拟牛顿法、共轭梯度法等等。

梯度下降法

优化思想

当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。

缺点

梯度下降法的最大问题就是会陷入局部最优,靠近极小值时收敛速度减慢。

批量梯度下降法

最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小,但是对于大规模样本问题效率低下

随机梯度下降法

最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近,适用于大规模训练样本情况。

随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经将theta迭代到最优解了,对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。但是,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。

牛顿法

牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数f (x)的泰勒级数的前面几项来寻找方程f (x) = 0的根。牛顿法最大的特点就在于它的收敛速度很快。

迭代公式

牛顿法比梯度下降法快

牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。

但是牛顿法要算hessian矩阵的逆,比较费时间。

拟牛顿法

拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。

拉格朗日法

拉格朗日乘数法

拉格朗日乘子法主要用于解决约束优化问题,它的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题。拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数。

通过引入拉格朗日乘子建立极值条件,对n个变量分别求偏导对应了n个方程,然后加上k个约束条件(对应k个拉格朗日乘子)一起构成包含了(n+k)变量的(n+k)个方程的方程组问题,这样就能根据求方程组的方法对其进行求解。

机器学习算法选择

机器学习算法选择

随机森林平均来说最强,但也只在9.9%的数据集上拿到了第一,优点是鲜有短板。SVM的平均水平紧随其后,在10.7%的数据集上拿到第一。神经网络(13.2%)和boosting(~9%)表现不错。数据维度越高,随机森林就比AdaBoost强越多,但是整体不及SVM2。数据量越大,神经网络就越强。

贝叶斯

是相对容易理解的一个模型,至今依然被垃圾邮件过滤器使用。

K近邻

典型的例子是KNN,它的思路就是——对于待判断的点,找到离它最近的几个数据点,根据它们的类型决定待判断点的类型。

它的特点是完全跟着数据走,没有数学模型可言。

三要素:

k值的选择

距离的度量(常见的距离度量有欧式距离,马氏距离等)

分类决策规则 (多数表决规则)

k值的选择

k值越小表明模型越复杂,更加容易过拟合

但是k值越大,模型越简单,如果k=N的时候就表明无论什么点都是训练集中类别最多的那个类

所以一般k会取一个较小的值,然后用过交叉验证来确定

这里所谓的交叉验证就是将样本划分一部分出来为预测样本,比如95%训练,5%预测,然后k分别取1,2,3,4,5之类的,进行预测,计算最后的分类误差,选择误差最小的k

分类决策规则

找到最近的k个实例之后,可以计算平均值作为预测值,也可以给这k个实例加上一个权重再求平均值,这个权重与度量距离成反比(越近权重越大)

优缺点:

优点

思想简单

可用于非线性分类

训练时间复杂度为O(n)

准确度高,对outlier不敏感

缺点

计算量大

样本不平衡问题不适用

需要大量的内存

KD树

KD树是一个二叉树,表示对K维空间的一个划分,可以进行快速检索

构造KD树

在k维的空间上循环找子区域的中位数进行划分的过程。

假设现在有K维空间的数据集: $T={x_1,x_2,x_3,…x_n}$, $xi={a_1,a_2,a_3..a_k}$

首先构造根节点,以坐标$a_1$的中位数b为切分点,将根结点对应的矩形局域划分为两个区域,区域1中$a_1 < b$,区域2中$a_1>b$

构造叶子节点,分别以上面两个区域中$a_2$的中位数作为切分点,再次将他们两两划分,作为深度1的叶子节点,(如果a2=中位数,则a2的实例落在切分面)

不断重复2的操作,深度为j的叶子节点划分的时候,索取的$a_i$ 的$i=j % k+1$,直到两个子区域没有实例时停止

KD树的搜索

首先从根节点开始递归往下找到包含x的叶子节点,每一层都是找对应的xi

将这个叶子节点认为是当前的“近似最近点”

递归向上回退,如果以x圆心,以“近似最近点”为半径的球与根节点的另一半子区域边界相交,则说明另一半子区域中存在与x更近的点,则进入另一个子区域中查找该点并且更新”近似最近点“

重复3的步骤,直到另一子区域与球体不相交或者退回根节点

最后更新的”近似最近点“与x真正的最近点

log(n)

决策树

决策树的特点是它总是在沿着特征做切分。随着层层递进,这个划分会越来越细。

因为它能够生成清晰的基于特征(feature)选择不同预测结果的树状结构

随机森林

器学习岗位面试问题汇总 之 集成学习

基本概念

天池离线赛 - 移动推荐算法(四):基于LR, RF, GBDT等模型的预测

它首先随机选取不同的特征(feature)和训练样本(training sample)bagging,生成大量的决策树,然后综合这些决策树的结果来进行最终的分类。

随机森林在现实分析中被大量使用,它相对于决策树,在准确性上有了很大的提升

适用场景:数据维度相对低(几十维),同时对准确性有较高要求时。

参数调节

是一种基于决策树基模型的集成学习方法,其核心思想是通过特征采样来降低训练方差,提高集成泛化能力。

max_depth 属于基学习器参数,它控制着每个决策树的深度,一般来说,决策树越深,模型拟合的偏差越小,但同时拟合的开销也越大。一般地,需要保证足够的树深度,但也不宜过大。

RF与传统bagging的区别

(1)样本采样:RF有放回选取和整体样本数目相同的样本,一般bagging用的样本<总体样本数

(2)特征采样:RF对特征进行采样,BAGGING用全部特征

RF的优点

(1)在数据集上表现良好,在当先很多数据集上要优于现有的很多算法

(2)可以并行,且不是对所有属性进行训练,训练速度相对较快

(3)防止过拟合

(4)能够处理高维特征,且不用做特征选择,可以给出特征重要性的评分,训练过程中,可以检测到feature的相互影响

缺点

①树越多,随机森林的表现才会越稳定。所以在实际使用随机森林的时候需要注意如果树不够多的时候,可能会导致不稳定的情况。

②不平衡数据集。分类结果会倾向于样本多的类别,所以训练样本中各类别的数据必须相同。Breiman在实际实现该算法的时候有考虑到了这个问题,采取了根据样本类别比例对决策树的判断赋予不同权值的方法

RF的学习算法

ID3:离散

C4.5:连续

CART:离散或连续

GBDT

基本概念

GBDT(梯度迭代决策树)是一种基于决策回归树的Boosting模型,其核心思想是将提升过程建立在对“之前残差的负梯度表示”的回归拟合上,通过不断的迭代实现降低偏差的目的。

GBDT设置大量基学习器的目的是为了集成来降低偏差,所以 n_estimators (基决策器的个数)一般会设置得大一些。

对于GBDT模型来说,其每个基学习器是一个弱学习器(欠拟合),决策树的深度一般设置得比较小,以此来降低方差(模型复杂度低),之后在经过残差逼近迭代来降低偏差,从而形成强学习器。

GBDT与传统Boosting(AdaBoost)的区别

Boosting算法,但与传统boosting有区别、拟合上一步的残差,传统意义上说不能并行,只能用CART回归树,降低偏差

迭代思路不同:传统boosting对训练样本进行加权,GBDT则是拟合残差,下一棵树沿残差梯度下降的方向进行拟合

GBDT正则化的方式

(1)同AdaBoost,通过步长

(2)CART树的剪枝

(3)子抽样,不放回,SGBT,可以实现一定程度上的并行

GBDT的优缺点

优点:(1)调参少的情况下,准确率也高(SVM)

(2)灵活处理各种数据,包括连续和离散,无需归一化处理(LR)

(3)模型非线性变换多,特征不用经过复杂处理即可表达复杂信息

(4)从一定程度上可以防止过拟合,小步而非大步拟合

缺点:(1)一般来说传统的GBDT只能串行,但是也可以通过子采样比例(0.5~0.8)实现某种意义上的并行,但一般这就不叫GBDT了。

(2)对异常值敏感,但是可以采取一些健壮的损失函数缓解,如Huber./Quantile损失函数

GBDT预测时每一棵树是否能并行?

可以,训练需串行,预测可并行

GBDT和RF的区别与联系

联系:多棵树进行训练+多棵树共同进行预测

区别:(1)取样方式

(2)预测时,RF多数投票,GBDT加权累加

(3)样本的关系—>并行和串行

(4)学期器的种类,GBDT只能用CART回归树(因为要计算连续梯度)

(5)对异常值的敏感性

(6)通过减少方差/偏差提高性能

XGBOOST相比于GBDT有何不同?XGBOOST为什么快?XGBOOST如何支持并行?

(1)GBDT只能用CART回归树,而XGBOOST可以用CART树(回归/分类),还可以用用想LR之类的线性模型,相当于加入L1、L2正则项的LR或线性回归

(2)列抽样,可以并行,不是树粒度上的,是特征粒度上的,block块,并行计算所有信息增益等信息

(3)可处理多种特征,且对缺失值也不用进行处理

(4)GBDT在残差梯度下降方向拟合,一阶导;XGBOOST泰勒展开至二阶导

(5)近似直方图算法,高效生产候选分割点

(6)shrink,缩减,叶子节点同时乘,防止过拟合

(7)可以自己定义评价函数

(8)代价函数含正则化项,防止过拟合

ababoost

daBoost的优缺点

优点:(1)容易理解、实现简单

(2)易编码

(3)分类精度高

(4)可以使用各种回归模型构建基分类器,非常灵活

(5)作为二元分类器是,构造简单、结果可理解、少参数

(6)相对来说,不宜过拟合

缺点:(1)只能串行

(2)对异常值敏感boosting对异常值敏感

集成学习与方差偏差

我觉得,避免偏差的话,首先我们需要尽量选择正确的模型,所谓“对症下药”。我觉得有位同行把机器学习算法的使用比作医生开药方,是非常不错的比喻。我们要根据数据的分布和特点,选择合适的算法。

其次,有了合适的算法,我们还要慎重选择数据集的大小。通常训练数据集越大越好,但是当大到数据集已经对整体所有数据有了一定的代表性之后,再多的数据已经不能提升模型的准确性,反而带来模型训练的计算量增加。但是,训练数据太少的话是一定不好的,这会带来过拟合的问题,过拟合就是模型复杂度太高,方差很大,不同的数据集训练出来的模型变化非常大

偏差与方差

从集成学习到模型的偏差和方差的理解

使用sklearn进行集成学习——理论

GBDT算法特征重要程度计算

机器学习中,有哪些特征选择的工程方法?

为什么说bagging是减少variance,而boosting是减少bias?

从机制上讲

为什么说bagging是减少variance,而boosting是减少bias

若各子模型独立,则有$$Var(\frac{\sum X_i}{n})=\frac{Var(X_i)}{n}$$,此时可以显著降低variance。若各子模型完全相同,则$$Var(\frac{\sum X_i}{n})=Var(X_i)$$

,此时不会降低variance。

Bagging 是 Bootstrap Aggregating 的简称,意思就是再取样 (Bootstrap) 然后在每个样本上训练出来的模型取平均。

bagging的偏差

,所以从偏差上看没有降低,但是由于各个子模型是单独训练的,有一定的独立性,所以方差降低比较多,提高泛化能力。特别是random forest这种方式,不仅对样本取样,还有特征取样。

boosting从优化角度来看,是用forward-stagewise这种贪心法去最小化损失函数,在这个过程中偏差是逐步减小的,而由于各阶段分类器之间相关性较强,方差降低得少。

举个例子

gbdt是boosting的方式,它的决策树的深度比较小,模型会欠拟合,刚开始偏差大,后来就慢慢变小了。

为什么把特征组合之后还能提升

反正这些基本都是增强了特征的表达能力,或者说更容易线性可分吧

总体性问题

分类与回归的区别

分类和回归的区别在于输出变量的类型。

定量输出称为回归,或者说是连续变量预测;

定性输出称为分类,或者说是离散变量预测。

生成模型与判别模型的区别

有监督机器学习方法可以分为生成方法和判别方法(常见的生成方法有混合高斯模型、朴素贝叶斯法和隐形马尔科夫模型等,常见的判别方法有SVM、LR等),生成方法学习出的是生成模型,判别方法学习出的是判别模型。

监督学习,预测时,一般都是在求p(Y|X)生成模型: 从数据中学习联合概率分布p(X,Y),然后利用贝叶斯公式求:$$p(Y|X)=\frac{P(X,Y)}{\Sigma P(X,Y_{i} )} $$,比如说朴素贝叶斯

判别模型:直接学习P(Y|X), 它直观输入什么特征X,就直接预测出最可能的Y; 典型的模型包括:LR, SVM,CRF,Boosting,Decision tree....

生成方法的特点:生成方法可以还原联合概率分布,而判别方法则不能;生成方法的学习收敛速度更快,即当样本容量增加的时候,学习的模型可以更快的收敛于真实的模型;当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用。

判别方法的特点:判别方法直接学习的是条件概率或者决策函数,直接面对预测,往往学习的准确率更高;由于直接学习或者,可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题

精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?

enter description here

精确率(Precision)为TP/(TP+FP)

召回率(Recall)为TP/(TP+FN)

F1值是精确率和召回率的调和均值,即F1=2PR/(P+R)

ROC曲线(Receiver operating characteristic curve),ROC曲线其实是多个混淆矩阵的结果组合,如果在上述模型中我们没有定好阈值,而是将模型预测结果从高到低排序,将每个概率值依次作为阈值,那么就有多个混淆矩阵。对于每个混淆矩阵,我们计算两个指标TPR(True positive rate)和FPR(False positive rate),TPR=TP/(TP+FN)=Recall,TPR就是召回率,FPR=FP/(FP+TN)。

enter description here

在画ROC曲线的过程中,若有一个阈值,高于此阈值的均为坏人,低于此阈值的均为好人,则认为此模型已完美的区分开好坏用户。此时坏用户的预测准确率(TPR)为1,同时好用户的预测错误率(FPR)为0,ROC曲线经过(0,1)点。AUC(Area Under Curve)的值为ROC曲线下面的面积,若如上所述模型十分准确,则AUC为1。但现实生活中尤其是工业界不会有如此完美的模型,一般AUC均在0.5到1之间,AUC越高,模型的区分能力越好

若AUC=0.5,即与上图中红线重合,表示模型的区分能力与随机猜测没有差别。

所以AUC表征的是模型的分类能力。

过拟合

如果一味的去提高训练数据的预测能力,所选模型的复杂度往往会很高,这种现象称为过拟合。所表现的就是模型训练时候的误差很小,但在测试的时候误差很大。

产生的原因

因为参数太多,会导致我们的模型复杂度上升,容易过拟合

权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征.

解决方法

交叉验证法

减少特征

正则化

权值衰减

验证数据

线性分类器与非线性分类器的区别以及优劣

如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是。

常见的线性分类器有:LR,贝叶斯分类,单层感知机、线性回归

常见的非线性分类器:决策树、RF、GBDT、多层感知机

SVM两种都有(看线性核还是高斯核)

线性分类器速度快、编程方便,但是可能拟合效果不会很好

非线性分类器编程复杂,但是效果拟合能力强

特征比数据量还大时,选择什么样的分类器?

线性分类器,因为维度高的时候,数据一般在维度空间里面会比较稀疏,很有可能线性可分

对于维度很高的特征,你是选择线性还是非线性分类器?

理由同上

对于维度极低的特征,你是选择线性还是非线性分类器?

非线性分类器,因为低维空间可能很多特征都跑到一起了,导致线性不可分

样本不均衡如何解决

从重采样到数据合成

主要三个方面,数据,模型和评估方法。

数据上重采样和欠采样,使之均衡;

模型上选对样本不均衡问题不敏感的模型,和算法集成技术,如决策树,不能用KNN;

评估方法,用查全率,查准率之类

重采样(resampling)技术:

(1).随机欠采样

随机欠采样的目标是通过随机地消除占多数的类的样本来平衡类分布。

优点

它可以提升运行时间;并且当训练数据集很大时,可以通过减少样本数量来解决存储问题。

缺点

它会丢弃对构建规则分类器很重要的有价值的潜在信息。

被随机欠采样选取的样本可能具有偏差。它不能准确代表大多数。

(2).随机过采样(Random Over-Sampling)

过采样(Over-Sampling)通过随机复制少数类来增加其中的实例数量,从而可增加样本中少数类的代表性。

优点

与欠采样不同,这种方法不会带来信息损失。

表现优于欠采样。

缺点

由于复制少数类事件,它加大了过拟合的可能性。

(3). 信息性过采样:合成少数类过采样技术

直接复制少数类实例并将其添加到主数据集时。从少数类中把一个数据子集作为一个实例取走,接着创建相似的新合成的实例。这些合成的实例接着被添加进原来的数据集。新数据集被用作样本以训练分类模型。

优点

通过随机采样生成的合成样本而非实例的副本,可以缓解过拟合的问题。

不会损失有价值信息。

缺点

当生成合成性实例时,SMOTE 并不会把来自其他类的相邻实例考虑进来。这导致了类重叠的增加,并会引入额外的噪音。



作者:在河之简

链接:https://www.jianshu.com/p/ace5051d0023

來源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容