1017-《Python数据科学手册》读书笔记

《Python数据科学手册》读书笔记

机器学习

机器学习在许多方面都可以看作是数据科学能力延伸的主要手段。机器学习是用数据科学的计算能力和算法能力去弥补统计方法的不足,其最终结果是为那些目前既没有高效的理论支持、又没有高效的计算方法的统计推理与数据探索问题提供解决方法。

什么是机器学习

机器学习经常被归类为人工智能(artificial intelligence)的子领域,但我觉得这种归类方法存在误导嫌疑。虽然对机器学习的研究确实是源自人工智能领域,但是机器学习的方法却应用于数据科学领域,因此我认为把机器学习看作是一种数学建模更合适。

机器学习的本质就是借助数学模型理解数据。当我们给模型装上可以适应观测数据的可调参数时,“学习”就开始了;此时的程序被认为具有从数据中“学习”的能力。一旦模型可以拟合旧的观测数据,那么它们就可以预测并解释新的观测数据。数学模型的“学习”过程其实与人脑的“学习”过程相似。

1.机器学习的分类

机器学习一般可以分为两类:有监督学习(supervised learning)和无监督学习(unsupervised learning)。
有监督学习是指对数据的若干特征与若干标签(类型)之间的关联性进行建模的过程;只要模型被确定,就可以应用到新的未知数据上。这类学习过程可以进一步分为分类(classification)任务与回归(regression)任务。在分类任务中,标签都是离散值;而在回归任务中,标签都是连续值。我们会在后面的内容中介绍这两种有监督学习方法。

无监督学习是指对不带任何标签的数据特征进行建模,通常被看成是一种“让数据自己介绍自己”的过程。这类模型包括聚类(clustering)任务和降维(dimensionality reduction)任务。聚类算法可以将数据分成不同的组别,而降维算法追求用更简洁的方式表现数据。

我们同样会在后面的内容中介绍这两种无监督学习方法。另外,还有一种半监督学习(semi-supervised learning)方法,介于有监督学习与无监督学习之间。半监督学习方法通常可以在数据标签不完整时使用。

2.机器学习应用的定性示例
1. 分类:预测离散标签

先来看一个简单的分类任务。假如我们有一些带标签的数据点,希望用这些信息为那些不带标签的数据点进行分类。

假如这些数据点的分布如图 5-1 所示(生成这幅图和本节中的其他所有图形的代码都在GitHub 的在线附录中)。

我们看到的是二维数据,也就是说每个数据点都有两个特征,在平面上用数据点的 (x, y)位置表示。另外,我们的数据点还用一种颜色表示一个类型标签,一共有两种类型,分别用两种颜色表示。我们想根据这些特征和标签创建一个模型,帮助我们判断新的数据点是“蓝色”还是“红色”。

在这里插入图片描述
图 5-1:简单的分类学习数据集

虽然有许多可以解决分类任务的模型,但是这里还是先用最简单的一种。假设平面上有一条可以将两种类型分开的直线,直线的两侧分别是一种类型。那么,我们的模型其实就是“一条可以分类的直线”,而模型参数其实就是直线位置与方向的数值。这些模型参数的最优解都可以通过学习数据获得(也就是机器学习的“学习”),这个过程通常被称为训练模型。
图 5-2 是为这组数据分类而训练的模型。
在这里插入图片描述
图 5-2:简单的分类模型

模型现在已经训练好了,可以对一个新的、不带标签的数据进行分类了。也就是说,我们可以拿一组新数据,把这个模型的直线画在上面,然后根据这个模型为新数据分配标签。
这个阶段通常被称为预测,如图 5-3 所示。
在这里插入图片描述
图 5-3:对新数据应用分类模型

这就是机器学习中最基本的分类思想,这个“分类”指的是数据具有离散的类型标签。刚一开始,你可能会觉得分类非常简单:不就是直接观察数据,然后画一条分割线就可以了。但是,机器学习方法的真正用途是要解决大型高维度数据集的分类问题。

以常见的分类任务——垃圾邮件自动识别为例。在这类任务中,我们通常会获得以下特征与标签。

  • 特征 1、特征 2……特征 n → 垃圾邮件关键词与短语出现的频次归一化向量(“Viagra”“Nigerian prince”等)。
  • 标签 →“垃圾邮件”或“普通邮件”。

在训练数据集中,这些标签可能是人们通过观察少量邮件样本得到的,而剩下的大量邮件都需要通过模型来判断标签。一个训练有素的分类算法只要具备足够好的特征(通常是成千上万个词或短语),就能非常高效地进行分类。

2.回归:预测连续标签

下面将要介绍的回归任务与离散标签分类算法相反,其标签是连续值。

观察如图 5-4 所示的数据集,所有样本的标签都在一个连续的区间内。

和前面的分类示例一样,我们有一个二维数据,每个数据点有两个特征。数据点的颜色表示每个点的连续标签。
在这里插入图片描述
图 5-4:一个简单的回归数据集

虽然有许多可以处理这类数据的回归模型,但是我们还是用简单线性回归模型来预测数据。用简单线性回归模型作出假设,如果我们把标签看成是第三个维度,那么就可以将数据拟合成一个平面方程——这就是著名的在二维平面上线性拟合问题的高阶情形。

我们可以将数据可视化成图 5-5 的形式。
在这里插入图片描述
图 5-5:回归数据的三维视角

请注意,这里特征 1 与特征 2 平面与之前的二维图形是一样的,只不过用了颜色和三维坐标轴的位置表示标签。通过这个视角,就有理由相信:如果将三维数据拟合成一个平面,就可以对任何输入参数集进行预测。回到原来的二维投影图形上,拟合平面时获得的结果如图 5-6 所示。
在这里插入图片描述
图 5-6:回归模型的结果

这个拟合平面为预测新数据点的标签提供了依据。我们可以直观地找到结果,如图 5-7所示
在这里插入图片描述
图 5-7:对新数据应用回归模型

和之前介绍的分类示例类似,这个回归示例在低维度时看起来可能也非常简单。但是这些方法的真实价值在于,它们可以直截了当地处理包含大量特征的数据集。类似的任务有计算通过天文望远镜观测到的星系的距离——在这类任务中,可能会用到以下特征与标签。

  • 特征 1、特征 2……特征 n → 具有若干波长或颜色的星系的亮度。
  • 标签 → 星系的距离或红移(redshift)。

少量星系的距离可以通过直接观察(通常成本也非常高)进行测量。之后,我们就可以利用适当的回归模型估计其他星系的距离,而不需要为整个星系集合使用昂贵的观察设备。在天文学领域中,这种问题通常被称为“测光红移”(photometric redshift)。

3.聚类:为无标签数据添加标签

前面介绍的回归与分类示例都是有监督学习算法,需要建立一个模型来预测新数据的标签。无监督学习涉及的模型将探索没有任何已知标签的数据。

无监督学习的普遍应用之一就是“聚类”——数据被聚类算法自动分成若干离散的组别。
例如,我们有如图 5-8 所示的一组二维数据。
在这里插入图片描述
图 5-8:聚类数据

仅通过肉眼观察,就可以很清晰地判断出这些点应该归于哪个组。一个聚类模型会根据输入数据的固有结构判断数据点之间的相关性。通过最快、最直观的 k-means 聚类算法(详情请参见 5.11 节),就可以发现如图 5-9 所示的类簇(cluster)。
在这里插入图片描述
图 5-9:k-means 聚类模型给出的数据标签

k-means 会拟合出一个由 k 个簇中心点构成的模型,最优的簇中心点需要满足簇中的每个点到该中心的总距离最短。显然,在二维平面上用聚类算法显得非常幼稚,但随着数据量越来越大、维度越来越多,聚类算法对于探索数据集的信息会变得十分有效。

4. 降维:推断无标签数据的结构

降维是另一种无监督算法示例,需要从数据集本身的结构推断标签和其他信息。虽然降维比之前看到的示例要抽象一些,但是一般来说,降维其实就是在保证高维数据质量的条件下从中抽取出一个低维数据集。不同的降维算法用不同的方式衡量降维质量。
下面用一个示例进行演示,数据如图 5-10 所示。
在这里插入图片描述
图 5-10:降维示例数据

从图中可以清晰地看出数据存在某种结构:这些数据点在二维平面上按照一维螺旋线整齐地排列。从某种程度上,你可以说这些数据“本质上”只有一维,虽然这个一维数据是嵌在高维数据空间里的。适合这个示例的降维模型不仅需要满足数据的非线性嵌套结构,而且还要给出低维表现形式。

图 5-11 是通过 Isomap 算法得到的可视化结果,它是一种专门用于解决这类问题的流形学习算法。
在这里插入图片描述
图 5-11:降维算法给出的数据标签

请注意,图中的颜色(表示算法提取到的一维潜在变量)沿着螺旋线呈现均匀变化,表明这个算法的确发现了肉眼所能观察到的结构。和之前介绍的示例类似,降维算法同样要在处理高维数据时才能大展拳脚。例如,我们可能需要对一个包含 100 或 1000 个特征的数据集内部的关联性进行可视化。要对一个 1000 维的数据进行可视化是个巨大的挑战,一种解决办法就是通过降维技术,让我们可以在更容易处理的二维或三维空间中对数据进行可视化。

3.小结

有监督学习
可以训练带标签的数据以预测新数据标签的模型。
分类
可以预测两个或多个离散分类标签的模型。
回归
可以预测连续标签的模型。
无监督学习
识别无标签数据结构的模型。
聚类
检测、识别数据显著组别的模型。
降维
从高维数据中检测、识别低维数据结构的模型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值