首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习 第二十八期

1、如何权衡偏差和方差?

偏差越小,对模型或住居的期望预测越靠近预测正确值。

方差越小,数据集越稳定。

概念性定义:

由偏差引起的误差:我们将模型的期望(或平均)预测和我们正在试图预测正确值之间的差定义为偏差。当然,如何你只能有一个模型,在谈论期望或平均预测值可能看起来有点怪。但是,想象一下,我们可以多次重复整个建模过程:每次收集新得数据来拟合一个新的模型。由于数据集获取中得一些随机性,我们拟合的模型将具有一定的预测范围。

由方差引起的误差:我们将模型之间的多个拟合预测之间的偏离程度定义为方差。同样,想象你可以重复多次整个建模过程。

偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声则表达了学习问题本省的难度。偏差-方差分解说明,泛化能力是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的,给定学习任务,为了取得好的泛化性能,需使偏差较小,即能够充分拟合数据,并使方差较小,使数据扰动产生的影响最小。

当模型过于简单,容易发生欠拟合,高偏差(high bias)

当模型过于复杂,容易发生过拟合,高方差(high variance)

机器学习中全部都是关于给定输入数据X和给定输出数据Y,然后去寻找一个最佳的映射函数F,这个映射函数通常也被称为目标函数。

偏差误差-----

偏差误差一般是由于简单的假设所造成的,因为我们的假设越简单,我们的模型就更加容易去训练。

低偏差:对目标函数提出更少的假设

高偏差:对目标函数提出更多的假设

低偏差模型例子:KNN和SVM

高偏差模型例子:线性回归和逻辑回归

方差误差-----

如果我们使用不同的数据去训练同一个模型,那么我们最后得到的目标函数估计也是会改变的

目标函数是机器学习的训练数据所估计得到的,所以我们期望训练数据拥有一定的方差。理想情况下,我们不希望目标函数从一个训练数据集到另一个训练数据集有太大的变化,也就是说我们的算法需要很好的从训练数据中找到一些映射的特征关系,这样可以保证不同训练集都有一个差不多的目标函数。

低方差:随着训练数据集的变化,对目标函数估计值的变化非常小;

高方差:随着训练数据集的变化,对目标函数估计值的变化非常大;

一般而言,具有很大灵活性的非参数学习算法都具有很高的方差。

高方差例子:KNN 和 SVM。

偏差—方差之间的权衡-----

在上面的例子中我们可以看到一个趋势:参数或者线性的机器学习算法一般都会有一个很高的偏差和一个很低的方差。但是,非参数或者非线性的机器学习算法一般都有一个很低的偏差和一个很高的方差。所有,我们需要在这两者之间找到一个平衡点,来优化我们的算法。

比如,KNN 算法有很低的偏差和很高的方差,但是我们可以通过调整 k 的值来改变偏差和方差之间的权衡关系,从而达到一个比较平衡的状态。

因此,我们增加偏差会导致方差的减少,同理,我们增加方差会导致偏差的减少。但在实践中,我们无法去计算真正的偏差和方差值,因为我们不知道实际的目标函数。但是,作为一种方法,偏差和方差为我们提供了一种去判断机器学习算法性能的方法。

2、什么是梯度下降?

参考链接:

https://www.jianshu.com/p/c7e642877b0e

梯度下降法的基本思想可以类比为一个下山的过程。假设这样一个场景:一个人被困在山上,需要从山上下来(i.e. 找到山的最低点,也就是山谷)。但此时山上的浓雾很大,导致可视度很低。因此,下山的路径就无法确定,他必须利用自己周围的信息去找到下山的路径。这个时候,他就可以利用梯度下降算法来帮助自己下山。具体来说就是,以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降的地方走,同理,如果我们的目标是上山,也就是爬到山顶,那么此时应该是朝着最陡峭的方向往上走。然后每走一段距离,都反复采用同一个方法,最后就能成功的抵达山谷。

首先,我们有一个可微分的函数。这个函数就代表着一座山。我们的目标就是找到这个函数的最小值,也就是山底。根据之前的场景假设,最快的下山的方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走,对应到函数中,就是找到给定点的梯度,然后朝着梯度相反的方向,就能让函数值下降的最快!因为梯度的方向就是函数之变化最快的方向(在后面会详细解释)

所以,我们重复利用这个方法,反复求取梯度,最后就能到达局部的最小值,这就类似于我们下山的过程。而求取梯度就确定了最陡峭的方向,也就是场景中测量方向的手段。那么为什么梯度的方向就是最陡峭的方向呢?

3. 解释一下过拟合和欠拟合,如何解决这两种问题?

所谓过拟合(over-fitting)其实就是所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳。打个比喻就是当我需要建立好一个模型之后,比如是识别一只狗狗的模型,我需要对这个模型进行训练。恰好,我训练样本中的所有训练图片都是二哈,那么经过多次迭代训练之后,模型训练好了,并且在训练集中表现得很好。基本上二哈身上的所有特点都涵括进去,那么问题来了!假如我的测试样本是一只金毛呢?将一只金毛的测试样本放进这个识别狗狗的模型中,很有可能模型最后输出的结果就是金毛不是一条狗(因为这个模型基本上是按照二哈的特征去打造的)。所以这样就造成了模型过拟合,虽然在训练集上表现得很好,但是在测试集中表现得恰好相反,在性能的角度上讲就是协方差过大(variance

is large),同样在测试集上的损失函数(cost function)会表现得很大。

过拟合 模型太复杂,导致测试集的损失函数过大。

所谓欠拟合呢(under-fitting)?相对过拟合欠拟合还是比较容易理解。还是拿刚才的模型来说,可能二哈被提取的特征比较少,导致训练出来的模型不能很好地匹配,表现得很差,甚至二哈都无法识别。

欠拟合 模型太简单,导致测试集的达不到想要的结果。

解决欠拟合,多训练几次,如果还欠拟合,可以增加特征。

4、主成分分析原理

参考链接:

需要找到一个合理的方法,在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。由于各变量间存在一定的相关关系,因此有可能用较少的综合指标分别综合存在于各变量中的各类信息。主成分分析与因子分析就属于这类降维的方法。

剩下的可见PPT。

1、决策树

2、K聚类算法

3、SVM支持向量机

4、关联分析

5、极大似然估计

6、Google pagerank算法(网页排名)

7、集成学习

8、近邻算法

9、朴素贝叶斯

10、CART树算法

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190122F1FB1200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券