3.2 监督学习与非监督学习

模型与最优化算法的选择,很大程度上取决于能得到什么样的数据。如果数据集中样本点只包含模型的输入x,则需要采用非监督学习算法;如果这些样本点以〈x,y〉输入-输出二元组的形式出现,则可以采用监督学习算法。

3.2.1 监督学习

在监督学习中,我们根据训练集中的观测样本点来优化模型f(·),使得给定测试样例x′作为模型输入,输出尽可能接近正确输出y′

监督学习算法主要适用于两大类问题:回归和分类。它们的区别在于,回归问题的输出是连续值,分类问题的输出是离散值。

1.回归

回归问题在生活中非常常见,其最简单的形式是一个连续函数的拟合。如果一个购物网站想要计算出其在某个时期的预期收益,研究人员会将相关因素,如广告投放量、网站流量、优惠力度等,纳入自变量,根据现有数据拟合函数,得到未来某一时刻的预测值。

回归问题中通常使用均方损失函数作为度量模型效果的指标,最简单的求解例子是最小二乘法。

2.分类

分类也是生活中非常常见的一类问题,如从金融市场的交易记录中分类出正常的交易记录以及潜在的恶意交易。

度量分类问题的指标通常为准确率(Accuracy):对于测试集中D个样本,有k个被正确分类,有D-k个被错误分类,则准确率的计算方式为:

然而在一些特殊的分类问题中,属于各类的样本并不是均一分布,甚至出现概率相差很多个数量级的情况,这就是不平衡类问题。在不平衡类问题中,准确率没有多大意义。例如,检测一批产品是否为次品时,若次品出现的频率为1%,那么即使某个模型完全不能识别次品,只要它每次都“蒙”这件产品不是次品,它仍然能够达到99%的准确率。显然我们需要一些别的指标。

通常在不平衡类问题中,使用F-度量来作为评价模型的指标。以二元不平衡分类问题为例,这种分类问题往往是异常检测,模型的好坏往往取决于能否很好地检出异常,同时尽可能不误报异常。其中定义占样本少数的类为正类(Positive class),占样本多数的类为负类(Negative class),预测只可能出现以下4种状况。

● 将正类样本预测为正类(True Positive, TP)。

● 将负类样本预测为正类(False Positive, FP)。

● 将正类样本预测为负类(False Negative, FN)。

● 将负类样本预测为负类(True Negative, TN)。

定义召回率(Recall):

召回率度量了在所有的正类样本中,模型正确检出的比率,因此也被称为查全率

定义精确率(Precision):

精确率度量了在所有被模型预测为正类的样本中,正确预测的比率,因此也被称查准率

F-度量是在召回率与精确率之间调和平均数;有时候在实际问题上,若我们更看重其中某一个度量,还可以给它加上一个权值α,称为度量:

α=1时:

可以看到,如果模型“不够警觉”,没有检测出一些正类样本,那么召回率就会受损;而如果模型倾向于“滥杀无辜”,精确率就会下降。因此较高的F-度量意味着模型倾向于“不冤枉一个好人,也不放过一个坏人”,是一个较为适合不平衡类问题的指标。

可用于分类问题的模型很多,如Logistic回归分类器、决策树、支持向量机、感知器、神经网络等。

3.2.2 非监督学习

在非监督学习中,数据集中只有模型的输入,并不提供正确的输出y(i)作为监督信号。

非监督学习通常用于这样的分类问题:给定一些样本的特征值,而不给出它们正确的分类,也不给出所有可能的类别,而是通过学习确定这些样本可以分为哪些类别、它们各自属于哪一类。因此,这一类问题被称为聚类

非监督学习得到的模型效果应使用何种指标衡量呢?由于通常没有正确的输出y,我们采取如下方法度量其模型效果。

● 直观检测:这是一种非量化的方法。例如对文本的主题进行聚类,我们可以在直观上判断属于同一类的文本是否具有某个共同的主题,是否有明显的语义上的共同点。由于这种评价非常主观,通常不采用。

● 基于任务的评价:如果聚类得到的模型被用于某个特定的任务,我们可以维持该任务中其他的设定不变,而使用不同的聚类模型,通过某种指标度量该任务的最终结果来间接判断聚类模型的优劣。

● 人工标注测试集:有时候采用非监督学习的原因是人工标注成本过高,导致标注数据缺乏,只能使用无标注数据来训练。在这种情况下,可以人工标注少量的数据作为测试集,用于建立量化的评价指标。