首页 » python机器学习 » python机器学习全文在线阅读

《python机器学习》1.2.1 通过监督学习对未来事件进行预测

关灯直达底部

监督学习的主要目的是使用有类标的训练(training)数据构建模型,我们可以使用经训练得到的模型对未来数据进行预测。此处,术语监督(supervised)是指训练数据集中的每个样本均有一个已知的输出项(类标(label))。

以(过滤)垃圾邮件为例:基于有类标的电子邮件样本库,可以使用监督学习算法训练生成一个判定模型,用来判别一封新的电子邮件是否为垃圾邮件;其中,在用于训练的电子邮件样本库中,每一封电子邮件都已被准确地标记是否为垃圾邮件。监督学习一般使用离散的类标(class label),类似于过滤垃圾邮件的这类问题也被称为分类(classification)。监督学习的另一个子类是回归(regression),回归问题的输出项是连续值。

1.利用分类对类标进行预测

分类是监督学习的一个子类,其目的是基于对过往类标已知示例的观察与学习,实现对新样本类标的预测。这些类标是离散的、无序的值,它们可以视为样本的组别信息(group membership)。前面提到的检测垃圾邮件的例子是一个典型的二类别分类(binary classification)任务,机器学习算法会生成一系列的规则用以判定邮件属于垃圾邮件还是非垃圾邮件。

然而,类标集合并非一定是二类别分类的。通过监督学习算法构造的预测模型可以将训练样本库中出现的任何类标赋给一个尚未被标记的新样本。手写字符识别就是一个典型的多类别分类(multi-class classification)的例子。在此,我们可以将字母表中每个字母的多个不同的手写样本收集起来作为训练数据集。此时,若用户通过输入设备给出一个新的手写字符,我们的预测模型能够以一定的准确率将其判定为字母表中的某个字母。然而,如果我们的训练样本库中没有出现0~9的数字字符,那么模型将无法正确辨别任何输入的数字。

下图通过给出具有30个训练样本的实例说明二类别分类任务的概念:15个样本被标记为负类别(negative class)(图中用圆圈表示);15个样本被标记为正类别(positive class)(图中用加号表示)。此时,我们的数据集是二维的,这意味着每个样本都有两个与其关联的值:x1和x2。现在,我们可以通过有监督的机器学习算法获得一条规则,并将其表示为一条黑色虚线标识的分界线、它可以将两类样本分开,并且可以根据给定的x1、x2值将新样本划分到某个类别中。

2.使用回归预测连续输出值

通过上一节的学习,我们知道了分类的任务就是将具有类别的、无序类标分配给各个新样本。另一类监督学习方法针对连续型输出变量进行预测,也就是所谓的回归分析(regression analysis)。在回归分析中,数据中会给出大量的自变量(解释变量)和相应的连续因变量(输出结果),通过尝试寻找这两种变量之间的关系,就能够预测输出变量。

例如,假定我们想预测学生SAT考试中数学科目的成绩。如果花费在学习上的时间和最终的考试成绩有关联,则可以将其作为训练数据来训练模型,以根据学习时间预测将来要参加考试的学生的成绩。

“回归”一词最早是由Francis Galton于1886年在其论文“Regression Towards Mediocrity in Hereditary Stature”中提出来的。他在文章中描述了这样一种生物现象,即人口身高的方差没有随着时间的推移而增加。他发现:父辈并未将其身高直接遗传给子辈,而子辈的身高更接近于人们的平均身高。

下面用图例阐述了线性回归(linear regression)的概念。给定一个自变量x和因变量y,拟合一条直线使得样例数据点与拟合直线之间的距离最短,最常用的是采用平均平方距离来计算。这样我们就可以通过对样本数据的训练来获得拟合直线的截距和斜率,从而对新的输入变量值所对应的输出变量值进行预测。