找回密码
 立即注册
搜索

为什么需求机器学习?

数据无处不在。此时此刻,成千上万的系统正在搜集构成特定服务的历史记录、日志、用户交互数据,以及许多其他相关元素。仅在几十年前,大多数公司甚至无法有效地管理 1%的数据。出于这个缘由,数据库会被定期清算,只要重要数据才能永世存储在服务器中。
而现如今,几乎每家公司都可以应用可扩展的云基础架构来应对不断增长的数据量。Apache Hadoop或Apache Spark等工具允许数据迷信家和工程师完成大数据的复杂传输。在这一点上,一切的妨碍都被扫除,大众化的进程曾经到位。但是,这些大数据集合的真正价值又是什么呢?从商业角度看,信息只要在有助于做出正确决策、减少不确定性并提供更好的情境洞察时才有价值。这意味着,没有合适的工具和知识,一堆数据对于公司来说只会添加成本,需求限制以添加利润。
机器学习是计算机迷信(特别是人工智能)的一个大分支,其目的是经过应用现有数据集来完成理想中描画性预测性的模型。由于本书努力于适用的无监督处理方案,我们将只关注经过寻觅隐藏缘由和关系来描画此类状况的算法。虽然仅从实际角度出发,也有助于展现机器学习成绩之间的次要差异,但是只要对目的有完全的看法(不局限于技术方面),才能对最后的成绩产生感性回答。这就是我们需求机器学习的缘由。
我们可以说人类非凡的认知才能启示了许多系统,但是当影响要素的数量分明添加时,人类就缺乏分析技能了。例如,假如你是第一次与班级先生见面的教师,在阅读整个小组后你能粗略地估计女生的百分比。通常,即便是对两个或更多人做出的估算,也能够是准确的或接近实践值的。但是,假如我们将全校一切人聚集在操场来反复这个实验,性别的区分就显得不那么分明了。这是由于一切先生在课堂上都是了如指掌的,但是在操场里区分性别会遭到某些要素的限制(例如较矮的人会被较高的人遮挡)。抛开这一层要素,我们可以以为大量的数据通常带有大量的信息。为了提取和分类信息,我们有必要采取自动化的方法。
在进入1.2.1节前,让我们讨论一下最后由高德纳(Gartner)定义的描画性分析(Descriptive Analysis)、诊断性分析(Diagnostic Analysis)、预测性分析(Predictive Analysis)和规范性分析(Prescriptive Analysis)的概念。但是,在这种状况下,我们希望关注正在分析的系统(例如通用状况),以便对其行为停止越来越多的控制。
描画性分析、诊断性分析、预测性分析和规范性分析的流程如图1-1所示。



图1-1 描画性分析、诊断性分析、预测性分析和规范性分析的流程

1.2.1 描画性分析

几乎一切的数据迷信场景中要处理的第一个成绩都是了解其本质。我们需求知道系统如何工作或数据集描画的内容是什么。假如没有这种分析,我们的知识又是有限的,将无法做出任何假设。例如我们可以经过图表观察一个城市几年的平均温度,但是假如我们无法描画发现现象的相关性、季节性、趋向性的工夫序列,其他任何成绩就不能够被处理。在详细状况下,假如没有发现对象组之间的相似性,就无法找到一种方法来总结它们的共同特征。数据迷信家必须针对每个特定成绩运用特定工具,但在此阶段结束时,一切能够(以及有用的)的成绩将得到解答。
此外,这个过程具有明白的商业价值,让不同的利益相关者参与的目的是搜集他们的知识并将其转化为共同言语。例如在处理医疗保健数据时,医生能够会议论遗传要素,但就我们的目的而言,最好是某些样本之间存在相关性,因此我们并未完全将它们视为统计上的独立要素。普通而言,描画性分析的结果包含一切度量评价和结论的摘要,这些评价和结论是对某种状况停止限定和减少不确定性所必需的。在温度图表的例子中,数据迷信家应该可以解答自动关联、峰值的周期、潜在异常值的数量以及趋向的出现等成绩。
1.2.2 诊断性分析

到目前为止,我们曾经处理了输入数据,这是在特定的基础流程生成之后观察到的。系统描画的自然成绩与很多要素有关。温度更多取决于气候和地理要素,这些要素既易于观测,又可以完全隐藏。工夫序列中的季节性显然受一年中的周期影响,但所出现的异常值又该如何解释呢?
例如我们在一个处于冬季的地区发现了一个温度峰值,我们怎样才能证明它的合感性呢?在简单的方法中,我们可以将其视为可过滤掉的噪声异常值。但是,假如该值曾经被观察到并且有存在价值(例如一切各方都以为这不是错误),我们应该假设存在隐藏(或潜在)缘由。
这能够是令人诧异的,但大多数复杂的场景都具有大量难以分析的潜在缘由(有时称为要素)。总的来说,这不是一个蹩脚的状况,但正如我们将要讨论的那样,将它们包含在模型中并经过数据集了解它们的影响是非常重要的。
另一方面,决议丢弃一切未知元素意味着降低模型的预测才能,并且会成比例地降低准确性。因此,诊断分析的次要目的不一定是找出一切要素,而是列出可观察和可测量的要素(也称为因子),以及一切的潜在要素(通常概括为单个全局要素)。
在某种程度上,由于我们可以轻松监控效果,诊断分析通常相似于逆向工程的过程,但要检测潜在缘由与可观察效果之间存在的关系就较为困难。因此这种分析通常是概率性的,并且有助于找出某个确定的缘由带来特定影响的概率。这样,扫除非影响分量和确定最后扫除的关系也更容易。但是,这个过程需求更深化的统计学知识,除了一些例子如高斯混合之外,这类分析将不会在本书中讨论。
1.2.3 预测性分析

假如搜集了全体描画性知识并且对潜在缘由的看法已令人称心,那么我们就可以创建预测模型了。创建预测模型的目的是根据模型本身的历史和结构来推断将来的结果。在许多状况下,我们将这个阶段与下一个阶段一同分析,由于我们很少对系统的自在演化感兴味(例如温度将在下个月如何变化),而是对我们可以影响输入的方式感兴味。
也就是说,我们只关注预测,思索最重要的要素。第一个需求思索的要素就是流程性质。我们不需求机器学惯用于确定性过程,除非这些过程的复杂性太高以致于我们不得不将它们视为黑匣子。在本章将要讨论的大多数例子都是无法消弭不确定性的随机过程。例如一天中的温度可以建模为条件概率(例如高斯),详细取决于后面的观测值。因此,预测不是将系统变为确定性系统,而是减少分布的方差,使概率只要在小的温度范围内,才会很高。另外,正如我们所知,许多潜在要素在幕后工作,该选择会对最终的准确定性产生极大的不利影响,因此不能接受基于尖峰分布的模型(例如基于概率为1的单一结果)。
假如模型被参数化,变量受学习过程影响(例如高斯的均值和协方差矩阵),那么我们的目的是在偏向-方差权衡中找出最佳平衡。由于本章只是概述,我们不用数学公式讲解概念,只需求一个定义即可(更多细节可以在Mastering Machine Learning Algorithms一书中找到)。
定义统计预测模型的常用术语是估计量估计量偏向受不正确的假设和学习过程可测量的影响。换句话说,假如一个过程的平均值是5.0,但我们的估计量平均值为3.0,那就可以说该模型是有偏向的。思索到后面的例子,假如观测值和预测之间的误差不为零,则我们运用有偏估计。重要的是要了解并不是说每个估计都必须有一个零误差,而是在搜集足够的样本并计算均值时,它的值应该非常接近零(只要有限样本才能为零)。当它大于零时,就意味着我们的模型无法正确预测训练值。很分明,我们正在寻觅无偏估计量,这些估计量基本上可以产生准确的预测。
另一方面,估计量方差可以衡量不属于训练集的样本的鲁棒性。在本节扫尾,我们提到过程通常是随机的。这意味着任何数据集都必须被视为从特定数据生成过程pdata中提取的。假如我们有足够的代表性元素xiX,我们可以假设运用有限数据集X训练分类器会生成一个模型,该模型可以对从pdata中提取的一切潜在样本停止分类。
例如假如需求对仅限于肖像的面部分类器停止建模(不允许进一步的面部姿态),那么我们可以搜集一些不同个体的肖像。建模过程需求关注的是不扫除理想生活中能够存在的类别。假设我们有10000张不同年龄和性别的人物免冠照片,但没有任何戴帽子的肖像。当系统投入消费时,就会收到客户打来的电话,反映系统对许多图片停止了错误分类。经过分析,会发现发生错误分类的是戴帽子的人。显然,这个肖像模型对错误不担任,由于它用仅代表数据生成过程的一个区域的样本停止训练。因此,为了处理成绩,我们要搜集其他样本,并反复训练。但是,如今我们决议运用更复杂的模型,希望它能更好地运转。结果我们观察到更差的验证准确性(例如在训练阶段未运用子集的准确性)以及更高的训练精度。这里发生了什么?
当估计量学会完美地对训练集停止分类但是对未见过的样本分类才能较差时,我们可以说它是过拟合的,并且其方差对于特定义务来说太高(反之,一个欠拟合模型则具有较大的偏向,并且一切预测都非常不准确)。直观地讲,该模型对训练数据过于了解,曾经得到了概括才能。为了更好地了解这个概念,让我们看一下高斯数据的生成过程,如图1-2所示。



图1-2 高斯数据的生成过程(实线)和样本数据的直方图

假如训练集没有以完全一致的方式,采样或者部分不平衡(某些类的样本比其他类少),或者模型过度拟合,则结果能够由不准确的分布表示,如图1-3所示。



图1-3 不准确的分布

在这种状况下,模型会被迫学习训练集的细节,直到它从分布中扫除了许多潜在的样本。该结果不再是高斯分布,而是双峰分布,此时一些概率会偏低。当然,测试和验证集是从训练集未覆盖的小区域中采样的(由于训练数据和验证数据之间没有堆叠),因此模型将在其义务中失败,从而提供完全错误的结果。
换句话说,模型曾经学会了处理太多细节而导致方差太高,在合理的阈值范围内添加了不同分类的能够性范围。例如从肖像分类器可以了解到,戴蓝色眼镜的人是年龄范围在 30~40 岁的男性(这是不实在践的状况,由于细节程度通常非常低,但是对了解成绩的本质是有协助的)。
可以总结一下,一个好的预测模型必须具有非常低的偏向和适当低的方差。不幸的是,通常不能够有效地最小化这两个值,因此我们必须接受平衡。
具有良好泛化才能的系统能够具有较高的偏向,由于它无法捕获一切细节。相反,高方差允许非常小的偏向,但模型的才能几乎限于训练集。在本书中,我们不打算讨论分类器,但是你应该完全了解这些概念,以便了解在处理项目时能够遇到的不同行为。
1.2.4 规范性分析

这样做的次要目的是回答以下成绩:如何影响系统的输入?为了避免混淆,最好将这个概念翻译成纯机器学习言语,因此成绩能够是获得特定输入需求哪些输入值?
如1.2.3节所述,此阶段通常与预测性分析合并,由于模型通常用于这两个义务。但是,在某些特定状况下,预测仅限于空输入演化(例如在温度示例中),并且必须在规定阶段分析更复杂的模型。次要在于控制影响特定输入的一切要素。
有时,当没有必要时,我们就只做表面分析。当缘由不可控时(例如气候事情),或者当包含全局潜在参数集更简单时,就会发生这种状况。后一种选择在机器学习中非常普遍,并且曾经开发了许多算法,在已存在潜在要素(例如EM或SVD引荐系统)的状况下仍可以高效工作。出于这个缘由,我们并没有关注这一特定方面(这在系统实际中非常重要),同时,我们隐含地假设模型有研讨不同输入产生许多能够输入的才能。
例如在深度学习中,我们可以创建反向模型来生成输入空间的分明映射,从而强迫产生特定的输入类。以肖像分类器为例,我们能够有兴味发现哪些视觉要素会影响类的输入。诊断性分析通常对此是有效的,由于缘由非常复杂并且其程度太低(例如轮廓的外形)。因此,反向模型可以经过显示不同几何区域的影响来协助处理规范性成绩。但是,残缺的规范性分析超出了本书的范围,在许多状况下,也没有必要运用规范性分析,因此不会在后续章节中思索这样的步骤。如今让我们来分析不同类型的机器学习算法。
本文摘自《Python无监督学习》



用scikit-learn、TensorFlow完成机器学习和深度学习,拥抱机器学习,用Python完成无监督学习算法,构建高效且适用的处理方案。
本书经过Python言语讲解无监督学习,全书内容包括10章,后面9章由浅入深地讲解了无监督学习的基础知识、聚类的基础知识、高级聚类、层次聚类、软聚类和高斯混合模型、异常检测、降维和分量分析、无监督神经网络模型、生成式对抗网络和自组织映射,第10章以成绩解答的方式对后面9章触及的成绩给出了处理方案。
本书合适数据迷信家、机器学习从业者和普通的软件开发人员阅读,经过学习本书引见的无监督学习实际和Python编程方法,读者可以在业务虚践中获得有价值的参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评3

rice米生生 2020-9-7 15:23:13 显示全部楼层
没人回帖。。。我来个吧
回复

使用道具 举报

热爱冬天 2020-9-8 09:59:32 显示全部楼层
话不多说,【抱拳了,老铁】。
回复

使用道具 举报

眨眼泡泡鱼 2020-9-9 10:03:01 来自手机 显示全部楼层
向楼主学习
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies