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

2020-01-30 作者:前端教学   |   浏览(199)

图片 1

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

针对Quora上的一个老问题:不同分类算法的优势是什么?Netflix公司工程总监Xavier Amatriain近日给出新的解答,他根据奥卡姆剃刀原理依次推荐了逻辑回归、SVM、决策树集成和深度学习,并谈了他的不同认识。他并不推荐深度学习为通用的方法,这也侧面呼应了我们之前讨论的问题:深度学习能否取代其他机器学习算法。不同分类算法的优势是什么?例如有大量的训练数据集,上万的实例,超过10万的特征,我们选择哪种分类算法最好?Netflix公司工程总监Xavier Amatriain认为,应当根据奥卡姆剃刀原理来选择算法,建议先考虑逻辑回归。选择一个合理的算法可以从很多方面来考察,包括:训练实例的数量?特征空间的维度?是否希望该问题线性可分? 特征是否是独立的?是否预期特征能够线性扩展?过度拟合是否会成为一个问题?系统在速度/性能/内存使用等方面的要求如何?逻辑回归作为一般的经验法则,我建议先考虑逻辑回归。逻辑回归是一个漂亮乖巧的分类算法,可以训练你希望的特征大致线性和问题线性可分。你可以很容易地做一些特征引擎把大部分的非线性特征转换为线性。逻辑回归对噪声也相当强劲,能避免过度拟合,甚至使用L2或L1正则化做特征选择。逻辑回归也可以用在大数据场景,因为它是相当有效的,并且可以分布使用,例如ADMM。 逻辑回归的最后一个优点是,输出可以被解释为概率。这是一个好的附加作用,例如,你可以使用它排名而不是分类。即使在你不希望逻辑回归100%地工作,你也可以帮自己一个忙,在使用“票友”办法之前,运行一个简单的L2正则化逻辑回归作为基线。好了,现在你已经设置逻辑回归基线,下一步你应该做的,我基本上会推荐两个可能的方向:支持向量机或者决策树集成。如果我不知道你的具体问题,我肯定会选择后者,但我将开始描述为什么SVM可能是一个值得考虑的方法。支持向量机支持向量机使用一个与LR不同的损失函数。它们也有不同的解释。然而,在实践中,用线性核函数的SVM和逻辑回归是没有很大的不同的。用SVM代替逻辑回归的一个主要原因可能是因为你的问题线性不可分。在这种情况下,你将不得不使用有非线性内核的SVM。事实上,逻辑回归也可以伴随不同的内核使用,但出于实际原因你更可能选择SVM。另一个使用SVM的相关理由可能是高维空间。例如,SVM已经被报道在工作文本分类方面做得更出色。不幸的是,SVM的主要缺点是,它们的训练低效到痛苦。所以,对于有大量训练样本的任何问题,我都不会推荐SVM。更进一步地说,我不会为大多数“工业规模”的应用程序推荐SVM。任何超出玩具/实验室的问题可能会使用其他的算法来更好地解决。决策树集成第三个算法家族:决策树集成。这基本上涵盖了两个不同的算法:随机森林和梯度提升决策树。它们之间的差异随后再谈,现在先把它们当做一个整体和逻辑回归比较。决策树集成有超过LR的不同优势。一个主要优势是,它们并不指望线性特征,甚至是交互线性特性。在LR里我没有提到的是,它几乎不能处理分类特性。而决策树集成因为仅仅是一堆决策树的结合,可以非常好地处理这个问题。另一主要优点是,因为它们构造了的算法,能很好地处理高维空间以及大量的训练实例。至于RF和GBDT之间的差别,可以简单理解为GBDT的性能通常会更好,但它们更难保证正确。更具体而言,GBDT有更多的超参数需要调整,并且也更容易出现过度拟合。RF几乎可以“开箱即用”,这是它们非常受欢迎的一个原因。深度学习最后但并非最不重要,没有深度学习的次要参考,这个答案将是不完整的。我绝对不会推荐这种方法作为通用的分类技术。但是,你可能会听说这些方法在某些情况下表现如何。如果你已经通过了前面的步骤并且感觉你的解决方案还有优化的空间,你可能尝试使用深度学习方法。事实是,如果你使用一个开源工具实现,你会知道如何使这些方法在你的数据集中非常快地执行。总结综上所述,先用如逻辑回归一样简单的方法设定一个基准,如果你需要,再使问题变得更加复杂。这一点上,决策树集成可能正是要走的正确道路,特别是随机森林,它们很容易调整。如果你觉得还有改进的余地,尝试GBDT,或者更炫一些,选择深度学习。你还可以看看Kaggle比赛。如果你搜索关键字“分类”,选择那些已经完成的,你能找到一些类似的东西,这样你可能会知道选择一个什么样的方法来赢得比赛。在这一点上,你可能会意识到,使用集成方法总容易把事情做好。当然集成的唯一问题,是需要保持所有独立的方法并行地工作。这可能是你的最后一步,花哨的一步。编辑点评:Xavier Amatriain不推荐深度学习为通用算法的理由,并不能说是因为深度学习不好,而是因为深度学习会增加复杂性及成本,却无法保证在所有的场景表现出比逻辑回归、SVM及决策树集成更优的结果。事实上,Xavier Amatriain的Netflix团队早已开始研究人工神经网络和深度学习技术,希望借助AWS云服务和GPU加速的分布式神经网络,分析网民最爱看的电影电视剧,实现节目的个性化推荐。Netflix推荐系统架构此后,Xavier Amatriain还分享了Netflix机器学习实践的十大经验教训,大致包括:更多的数据需要与更好的模型之匹配你可能不需要所有的大数据更复杂的模型未必意味着更好的结果,可能是你的样本集太简单要充分考虑你的训练数据学会处理偏差UI是联系算法和最重要的用户之间唯一通道正确的演进方式比数据和模型更重要分布式算法重要,知道在哪个层级使用它更重要选择合适的度量自动超参数优化并非所有的事都能离线完成,近线处理也是一种选择原文链接:What are the advantages of different classification algorithms?

图片 2

机器学习

SVM与LR的区别

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

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

  1. a large margin,就是两类之间可以画多宽的gap ;不妨说是正样本应该在分界平面向左gap/2(称正分界),负样本应该在分解平面向右gap/2(称负分界)
  2. L1 error penalty,对所有不满足上述条件的点做L1 penalty

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

  1. 一类是落在对应分界平面外并被正确分类的点,比如落在正分界左侧的正样本或落在负分界右侧的负样本
  2. 第二类是落在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的方法

  1. 调整正、负样本在求cost时的权重,比如按比例加大正样本cost的权重。然而deep learning的训练过程是on-line的因此你需要按照batch中正、负样本的比例调整。
  2. 做训练样本选取:如hard negative mining,只用负样本中的一部分。
  3. 做训练样本选取:如通过data augmentation扩大正样本数量。

过拟合方面

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

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

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

方法的选择

在Andrew NG的课里讲到过:

  1. 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
  2. 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
  3. 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况

当你的数据非常非常非常非常非常大然后完全跑不动SVM的时候,跑LR。SVM适合于小样本学习。多大算是非常非常非常非常非常非常大?

比如几个G,几万维特征,就勉强算大吧...而实际问题上几万个参数实在完全不算个事儿,太常见了。随随便便就得上spark。读一遍数据就老半天,一天能训练出来的模型就叫高效了。所以在新时代,LR其实反而比以前用的多了=.

应用场景方面不同

拟合程度,样本量,

距离测度,数据balance

模型简单易解释

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

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

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

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

机器学习常见算法总结

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

朴素贝叶斯

朴素贝叶斯的优点
对小规模的数据表现很好,适合多分类任务,适合增量式训练。
缺点
对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)

线性回归

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

优化方法

  1. 当x矩阵是列满秩的时候,可以用最小二乘法,但是求矩阵的逆比较慢
![](https://www.github.com/DragonFive/CVBasicOp/raw/master/1505183290340.jpg)
enter description here
  1. 梯度下降法,以最大似然估计的结果对权值求梯度,sigmoid函数也是如此

图片 3

enter description here

均方无法的概率解释
假设根据特征的预测结果与实际结果有误差∈ (i) ,那么预测结果θ T x (i) 和真实结果y (i) 满足下
式:

图片 4

enter description here

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

图片 5

enter description here

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

图片 6

enter description here

LR回归

图片 7

enter description here

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

图片 8

enter description here

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

图片 9

enter description here

优化问题的求解方法

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

梯度下降法

优化思想

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

缺点

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

批量梯度下降法

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

随机梯度下降法

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

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

牛顿法

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

图片 10

迭代公式

牛顿法比梯度下降法快

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

但是牛顿法要算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,它的思路就是——对于待判断的点,找到离它最近的几个数据点,根据它们的类型决定待判断点的类型。

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

三要素:

  1. k值的选择
  2. 距离的度量(常见的距离度量有欧式距离,马氏距离等)
  3. 分类决策规则 (多数表决规则)

k值的选择

  1. k值越小表明模型越复杂,更加容易过拟合
  2. 但是k值越大,模型越简单,如果k=N的时候就表明无论什么点都是训练集中类别最多的那个类

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

分类决策规则

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

优缺点:

优点

  1. 思想简单
  2. 可用于非线性分类
  3. 训练时间复杂度为O(n)
  4. 准确度高,对outlier不敏感
    缺点
  5. 计算量大
  6. 样本不平衡问题不适用
  7. 需要大量的内存

KD树

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

构造KD树

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

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

  1. 首先构造根节点,以坐标$a_1$的中位数b为切分点,将根结点对应的矩形局域划分为两个区域,区域1中$a_1 < b$,区域2中$a_1>b$
  2. 构造叶子节点,分别以上面两个区域中$a_2$的中位数作为切分点,再次将他们两两划分,作为深度1的叶子节点,(如果a2=中位数,则a2的实例落在切分面)
  3. 不断重复2的操作,深度为j的叶子节点划分的时候,索取的$a_i$ 的$i=j % k+1$,直到两个子区域没有实例时停止

KD树的搜索

  1. 首先从根节点开始递归往下找到包含x的叶子节点,每一层都是找对应的xi
  2. 将这个叶子节点认为是当前的“近似最近点”
  3. 递归向上回退,如果以x圆心,以“近似最近点”为半径的球与根节点的另一半子区域边界相交,则说明另一半子区域中存在与x更近的点,则进入另一个子区域中查找该点并且更新”近似最近点“
  4. 重复3的步骤,直到另一子区域与球体不相交或者退回根节点
  5. 最后更新的”近似最近点“与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对异常值敏感

集成学习与方差偏差

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

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

图片 11

偏差与方差

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

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

GBDT算法特征重要程度计算

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

本文由永利官网发布于前端教学,转载请注明出处:机器学习算法小结与收割offer遇到的问题

关键词: