白话机器学习算法 第6-12章 读书笔记

回归分析

趋势线

预测 一般只涉及单个预测变量

也可用于比较个个预测变量的强弱

梯度下降法

优化参数的方法

梯度下降法先初步猜测合适的权重组合,再通过一个迭代过程,把这些权重应用于每个数据点做预测,然后调整权重,以减少整体预测误差。

在这里插入图片描述

但是梯度下降法可能会受到初始参数值的影响,如下

在这里插入图片描述

为了降低这种风险–> 随机梯度下降法

在这种方法中,每次迭代并不是采用所有数据点,而是只从其中选取一个来调整参数。这样做就引入了多变性,有助于算法逃离凹坑。

梯度下降法的这个缺点通常只出现在更为复杂的模型中,做回归分析时根本无须担心这一点。

回归系数

即回归预测变量权重,它表示某个预测变量相比于其他预测变量的影响大小。

它表示相关预测变量的增加值,而非绝对预测强度。

注意预测变量的度量单位影响回归系数的解释

为了避免这个问题,应该在做回归分析之前先对预测变量的度量单位进行标准化

相关系数

当只存在一个预测变量时,该预测变量的标准化回归系数也被称为相关系数,记作r,如图6-6所示。相关系数的取值范围为-1到1,它提供了两部分信息。

在这里插入图片描述

  • 关联方向:相关系数为正表示预测变量和结果变化的方向一致;

    ​ 为负则表示两者变化方向相反。

  • 关联强度:r值越接近-1或1,预测变量起的作用就越大。

    ​ 若r值为0,则表示预测变量和结果之间不存在关系。因为相关系数表示单个预测变量的绝对强度,所以相比于回归系数,相关系数在对预测变量进行排序时更可靠。

调节参数

正则化参数(针对套索回归和岭回归)

局限性

  • 对异常值敏感:由于回归分析平等地对待所有的数据点,因此只要存在几个有异常值的数据点,就会给趋势线造成很大的影响

    为了避免出现这种情况,在做进一步分析之前,可以先使用散点图找出异常值。

  • 造成相关预测变量权重失真:如果回归模型包含高度相关的预测变量,那么这些变量的权重会失真,这就是所谓的多重共线性问题。

    为了解决这个问题,可以在分析之前先把相关预测变量排除,或者使用更高级的技术,比如套索回归或岭回归。

  • 弯曲的趋势:在本章所举的例子中,趋势由直线表示。但是有些趋势可能是弯曲的。对于这种情况,可能需要对预测变量的值进行转换,或者使用支持向量机(详见第8章)等其他算法。

  • 并不说明存在因果关系:假设我们发现养狗和房价是正相关关系。我们知道养宠物狗不会让房子增值,但是那些养得起狗的家庭往往会有较高的收入,并且很有可能住在房价较高的社区。

尽管回归分析有上述局限性,但是它仍然是做预测时最常用、最易用、最直观的一种技术。

在下面几种情况下,回归分析的效果最好:

  1. 预测变量之间的关系不强;
  2. 无异常值;
  3. 趋势可以用直线表示。

k最近邻算法和异常检测

k最近邻算法

k最近邻算法根据周围数据点的类型对某个数据点进行分类。

k最近邻算法还可以通过合计周围数据点的值来预测连续值。

在这里插入图片描述

在上面的例子中,k为5。

选择k值的过程叫作参数调优,它对预测的准确度起着至关重要的作用。

如果k值太小,数据点只与最近的“邻居”匹配,并且随机噪声所产生的误差也会被放大,模型过拟合。

如果k值太大,数据点会尝试与更远的“邻居”匹配,其中隐含的模式会被忽略,则是欠拟合。

只有当k值恰到好处时,数据点才会参考合适数量的“邻居”,这使得误差相互抵消,有利于揭示数据中隐藏的趋势,达到理想拟合。

为实现理想拟合并把误差降到最低,可以使用交叉验证法对参数k进行调优,确定k表示用作参考的数据点的个数;

对于二分类问题,可以把k设置成一个奇数,以避免出现平局的情况。

异常检测

k最近邻算法还可以用来识别异常,比如检测欺诈行为。而且,在异常检测过程中还可能会有新的发现,比如发现之前被忽略的预测变量。

数据可视化让异常检测变得简单。不过,并非所有数据都可以用二维图表示,此时可以考虑k最近邻等预测模型。

因为k最近邻算法利用数据中的隐藏模式做预测,所以如果出现预测误差,就说明数据点和总体趋势不一致。事实上,任何能够产生预测模型的算法都可以用来检测异常。比如,在回归分析中,如果某个数据点明显偏离最佳拟合线,那么就会被识别为异常点。

调节参数

最近岭数量

局限性

  • 类别不平衡:如果待预测的类别有多个,并且在大小方面存在很大的不同,那么那些属于最小类别的数据点可能会被来自更大类别的数据点所掩盖,它们被错误分类的风险更大。

    为了提高准确度,可以使用加权投票法来取代少数服从多数的原则,这会确保较近数据点类别的权重比较远的更大。

  • 预测变量过多:如果待考虑的预测变量太多,在多个维度上识别和处理近邻会导致计算量大增。需要考虑降维。

当预测变量数目不多,并且类别大小差别不大时,k最近邻算法才能产生非常好的效果。不准确的分类可能会被标记为潜在异常。

支持向量机

一种新的预测技术,借助这种技术可以得到最优分类边界,并分组。

向量机预测模型在医学中是通过记录患者的多项生理指标,对患者做影响扫描,判断是否患有心脏病。

支持向量机具备在高维空间操纵数据的能力,这使得它在分析有多个变量的数据集时大受欢迎。

支持向量机的常见应用场景包括遗传信息破译以及文本情感分析。

勾画最佳分界

支持向量机的主要目标是得到一条能用于分组的最佳分界线。这并不像听上去那么简单,因为能用于分组的分界线可能有多条(如图8-2所示)。

在这里插入图片描述

在这里插入图片描述

为了找出最佳分界线,首先需要从一组中找出距离另一组最近的外围数据点,然后在两组的外围数据点之间画出最佳分界线(如图8-3所示)。由于这些外围数据点在寻找最佳分界线的过程中起了支持作用,因此它们叫作支持向量。

优点是计算速度快,它仅依靠外围数据点就能找到决策边界;同时可以找到决策边界的凸弧。支持向量机不会直接在数据平面上绘制有凸弧的分界线,而是会首先把数据映射到高维空间,然后在高维空间中将数据点用直线分开。

缺点是决策边界对支持向量的位置比较敏感,选取不同的数据点作为训练模型,相应支持向量的位置也不同,而且,实际的数据点很少想图上那样容易划分。

–> 因此,缓冲带 它允许一定数量的训练数据点位于错误的一边,得到一条更软的分界线,他对异常值有更强的耐扰性,因此对新数据有更强的泛化能力

调节参数

软间隔常量

核参数

不敏感参数

局限性

  • 小数据集:由于支持向量机依靠支持向量确定决策边界,因此样本量少意味着用来对分界线进行准确定位的数据也少。
  • 多组数据:支持向量机每次只能对两组进行分类。如果存在两个以上的组,则需要对每组都应用支持向量机,以便将其从其余组中分出来。这个技术叫作多类支持向量机。
  • 两组之间存在大量重叠:支持向量机根据数据点落在决策边界哪一边对其进行分类。**当两组的数据点存在大量重叠时,靠近边界的数据点可能更容易发生分类错误。**而且,支持向量机没有给出每个数据点遭遇错误分类的概率。但是,可以通过数据点到决策边界的距离来估计其被正确分类的可能性。

当需要把大样本中的数据点分为两组时,支持向量机能够发挥最佳作用。

决策树

决策树有许多用处,比如预测疾病的存活率,估计员工的辞职概率,或者检测欺诈交易等。此外,决策树还可以用来处理分类问题(比如男性和女性)或连续值问题(比如工资)。请注意,连续值问题有时可以转化为分类问题,比如比较高于和低于平均值的值。

生成决策树

决策树通过询问一系列二元选择题来做预测。

若要生成决策树,首先根据相似性把所有数据点分为两组,然后针对每组重复这个二分过程。每一层叶节点都比上一层包含更少的数据点,但同质性更高。决策树的理论基础是,相同路径上的数据点彼此是相似的。这个反复拆分数据以得到同质组的过程被称为递归拆分,它只包含如下两个步骤。

终止条件可能有多个,可以使用交叉验证法(详见1.4.3节)进行选取。

  • 每个叶节点中的数据点全属于同一类或有相同的值;
  • 叶节点包含的数据点少于5个;
  • 进一步分支会超出阈值并且不能提高同质性。

调节参数

终端节点的最小尺寸

终端节点的最大数量

最大数深度

局限性

  • 不稳定:决策树是通过把数据点分组生成的,数据中的细微变化可能影响拆分结果,并导致生成的决策树截然不同。此外,每次拆分数据点时都力求找到最佳拆分方式,这很容易产生过拟合问题(详见1.3节)。
  • 不准确:一开始就使用最佳二元选择题拆分数据点,并不能保证结果最准确。有时,先用不太有效的分法反而会产生比较好的预测结果。

因此,尽量让决策树多样化以克服缺点:

  • 随机森林:随机选择不同的二元选择题,生成多棵决策树,然后综合这些决策树的预测结果。第10章将详解这种方法。
  • 梯度提升:有策略地选择二元选择题,以逐步提高决策树的预测准确度;然后将所有预测结果的加权平均数作为最终结果。

但多样化(随机森林/梯度提升)会可能会面临可视化的难题,

较之决策树易于可视化和评估预测变量及其相互作用。

随机森林

集体智慧

这种通过组合不同模型来提高预测准确度的方法被称为集成方法。

如前文的随机森林就是基于决策树的一种集成方法。

集成模型

随机森林是决策树的集成模型。集成模型是通过组合许多模型的预测结果得到的预测模型。在组合模型时,既可以遵循少数服从多数的原则,也可以取平均值。同时子模型必须是不相关的。

有一种系统化方法可以用来生成不相关的决策树,这种方法叫作自助聚集法

自助聚集法通过随机限制数据拆分过程所用的变量来生成一系列不相关的决策树,集成方法则把决策树的预测结果组合在一起。

调节参数

决策树的所有参数

决策树数量

每次拆分所选的变量数

神经网络

神经网络是自动图像识别的基础,由神经网络衍生出的一些技术在执行速度和准确度上都超过了人类。

优势:

  • 数据存储和共享技术取得进步:这为训练神经网络提供了海量数据,有助于改善神经网络的性能。
  • 计算能力越来越强大:GPU(graphics processing unit,图形处理器)的运行速度最快能达到CPU(central processing unit,中央处理器)的150倍。之前,GPU主要用来在游戏中显示高品质图像。后来,人们发现它能为在大数据集上训练神经网络提供强大的支持。
  • 算法获得改进:虽然目前神经网络在性能上还很难与人脑媲美,但是已有一些能大幅改善其性能的技术。本章会介绍其中一些技术。

自动图像识别是神经网络技术的有力例证,它被应用于许多领域,包括视觉监控和汽车自主导航,甚至还出现在智能手机中,用来识别手写体。

神经网络的构成

为了识别手写数字,神经网络使用多层神经元来处理输入图像,以便进行预测。

在这里插入图片描述

输入层该层处理输入图像的每个像素。如此说来,神经元的数量应该和输入图像的像素数一样多。为简单起见,图11-7把大量神经元“凝聚”成一个节点。

​ 为了提高预测准确度,可以使用卷积层。卷积层并不处理单个像素,而是识别像素组合的特征,比如发现“6”有一个圈和一条朝上的尾巴。这种分析只关注特征是否出现,而不关注出现的位置,所以即使某些关键特征偏离了中心,神经网络仍然能够正确识别。这种特性叫作平移不变性。

隐藏层:在像素进入神经网络之后,它们经过层层转换,不断提高和那些标签已知的图像的整体相似度。标签已知是指神经网络以前见过这些图像。虽然转换得越多,预测准确度就会越高,但是处理时间会明显增加。一般来说,几个隐藏层就足够了。

输出层该层产生最终预测结果。在这一层中,神经元可以只有一个,也可以和结果一样多。

损失层:虽然图11-7并未显示损失层,但是在神经网络的训练过程中,损失层是存在的。该层通常位于最后,并提供有关输入是否识别正确的反馈;如果不正确,则给出误差量。

​ 在训练神经网络的过程中,损失层至关重要。若预测正确,来自于损失层 的反馈会强化产生该预测结果的激活路径;若预测错误,则错误会沿着路 径逆向返回,这条路径上的神经元的激活条件就会被重新调整,以减少错 误。这个过程称为反向传播。通过不断重复这个训练过程,神经网络会学 习输入信号和正确输出标签之间的联系,并且把这些联系作为激活规则编 入每个神经元。因此,为了提高神经网络的预测准确度,需要调整管理激 活规则的部件。

激活规则

为了产生预测结果,需要沿着一条路径依次激活神经元。每个神经元的激活过程都由其激活规则所控制,激活规则指定了输入信号的来源和强度。在神经网络的训练过程中,激活规则会不断调整。

在这里插入图片描述

这些联系的强度各不相同,联系强度也被称为权重,记作w。

​ 在图11-8中,与神经元C相比(w=1),神经元A激活后发送的信号更强(w=3)。联系也是有方向的,例如神经元D(w=-1)实际上会减弱传送给神经元G的输入信号。在计算神经元G的输入信号总强度时,把上一层与之有关联的所有激活神经元的权重加起来。如果信号强度大于指定的阈值,神经元G就会被激活。在图11-8中,最终的信号强度为2(即3-1),由于神经元G的阈值为3,因此它仍然处于未激活状态。

一个神经元是否被激活取决于输入信号的来源和强度,这由其激活规则指定。激活规则会根据预测结果的反馈不断调整,这个过程被称为反向传播。

良好的激活规则有助于产生准确的预测结果,其关键在于确定合适的权重和阈值。另外,神经网络的其他参数也需要调整,比如隐藏层的数量、每层的神经元数量等。可以使用**梯度下降法(**详见6.3节)优化这些参数。

调节参数

隐藏层数量

每层神经元数量

训练迭代数

学习速度

初始权重

局限性

需要大样本:数据量小,容易过拟合。如下技术避免过拟合:

  1. 二次取样:为了降低神经元对噪声的敏感度,需要对神经网络的输入进行“平滑化”处理,即针对信号样本取平均值,这个过程叫作二次取样。
  2. 畸变:当缺少训练数据时,可以通过向每幅图像引入畸变来产生更多数据。每幅畸变图像都可以作为新的输入,以此扩大训练数据的规模。畸变应该能够反映原数据集的特征。
  3. 丢弃: 为了解决这个问题,可以在训练期间随机丢弃一半的神经元。这些遭丢弃的神经元将处于未激活状态,剩下的神经元则正常工作。下一次训练丢弃一组不同的神经元。这迫使不同的神经元协同工作,从而揭示训练样本所包含的更多特征。

计算成本高:对硬件要求高

  1. 随机梯度下降法:在每次迭代中只用一个训练样本来更新参数。
  2. 小批次梯度下降法:虽然使用随机梯度下降法能够提升速度,但最终参数可能不准确,算法也可能无法收敛,导致某个参数上下波动。一个折中方法是每次迭代使用训练样本的一个子集,这就是小批次梯度下降法。
  3. 全连接层:随着加入的神经元越来越多,路径的数量呈指数增长。为了避免查看所有可能的组合,可以使初始层(处理更小、更低级的特征)的神经元部分连接。只有最后几层(处理更大、更高级的特征)才对相邻层的神经元进行全连接。

不可解释:神经网络由多层组成,每层都有几百个神经元,这些神经元由不同的激活规则控制。这使得我们很难准确地找到产生正确预测结果的输入信号组合。

A/B测试和多臂老虎机

局限性

  • 测试结果具有偶然性
  • 潜在的收入损失

这两个问题分别体现了A/B测试中的两个权衡因素:探索和利用。如果增加广告的受测人数(探索),那么可以提高测试结果的可信度;但是,这样做会失去潜在的顾客,他们本来会购买商品(利用)。

epsilon递减策略

epsilon指的是探索时间与总时间的比例。随着对效果较好的广告越来越有信心,我们使epsilon值递减,这个方法属于强化学习的范畴。

如果在前100个浏览者中,A版广告的点击量比B版广告多,那么在接下来的100个浏览者中,可以把A版广告的曝光率提高到60%,同时把B版广告的曝光率降低到40%。这样一来,就可以开始利用初期结果,同时继续探索B版广告改善表现的可能性。随着越来越多的证据倾向于A版广告,我们逐渐提高它的曝光率,同时降低B版广告的曝光率。

在这里插入图片描述

局限性

更难实施

还依赖如下假设:

  • 返还率恒定不变。某一则广告可能在早上受欢迎,在晚上则不然;而另一则广告全天的受欢迎程度可能都一般。如果比较这两则广告在早上的受欢迎程度,就会得出不准确的结论。
  • 返还率与上一次游戏无关。广告出现的次数越多,顾客就越有可能点击它。这意味着需要反复探索才能确定真正的返还率。
  • 玩游戏和观察返还率之间的延迟极小。如果广告是通过电子邮件发送的,潜在买家可能几天后才能回应。这让我们无法立即得知真实的探索结果,所有利用行为只能基于不完整的信息进行。

虽然epsilon递减策略在大多数情况下能够提供比A/B测试更高的回报,但是确定资源分配的最佳更新速度并非易事。

更多评估指标

接受者操作特征曲线下面积常简称为曲线下面积。这个指标允许我们在最大化正例率和最小化假正例率之间做权衡。

  • 正例率指被模型正确预测为正类别的样本所占的比例。

    ​ 正例率=正例数/(正例数+假负例数)

  • 假正例率指被模型错误预测为正类别的样本所占的比例。

    ​ 假正例率=假正例数/(假正例数+负例数)

在极端情况下,可以把所有样本全部预测为正类别,以此实现正例率最大化,即正例率为1。虽然这样做可以避免出现假负例,但会明显增加假正例。换言之,我们必须在最大化正例率和最小化假正例率之间做权衡。这种权衡可以通过接受者操作特征曲线(也称ROC曲线)可视化。

在这里插入图片描述

因为模型性能通过ROC曲线下方的面积来衡量,所以该指标被称为曲线下面积。模型的准确度越高,曲线越靠近左上角。完美的预测模型会产生一条曲线下面积为1的曲线,即曲线下面积等于整个图形的面积。相比之下,对于一个随机预测模型,其ROC曲线可以表示为图D-1中的虚线对角线,即曲线下面积为0.5。

借助ROC曲线可以选择想避免的误差类型。不过,还可以使用对数损失指标惩罚所有预测误差。

回归指标

平均绝对误差:对所有数据点的预测值和实际值之差取平均值。

介绍了均方根误差这个指标,它可以加大对大误差的惩罚力度。除了考虑误差大小之外,还可以通过均方根对数误差把误差方向纳入考虑范围。

image-20201215202359259" style=“zoom: 67%;” />

因为模型性能通过ROC曲线下方的面积来衡量,所以该指标被称为曲线下面积。模型的准确度越高,曲线越靠近左上角。完美的预测模型会产生一条曲线下面积为1的曲线,即曲线下面积等于整个图形的面积。相比之下,对于一个随机预测模型,其ROC曲线可以表示为图D-1中的虚线对角线,即曲线下面积为0.5。

借助ROC曲线可以选择想避免的误差类型。不过,还可以使用对数损失指标惩罚所有预测误差。

回归指标

平均绝对误差:对所有数据点的预测值和实际值之差取平均值。

介绍了均方根误差这个指标,它可以加大对大误差的惩罚力度。除了考虑误差大小之外,还可以通过均方根对数误差把误差方向纳入考虑范围。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值