机器学习的概念非常多,从有监督到无监督,从聚类到回归,从浅层学习到深度学习,从准确率到召回率,它们究竟是什么意思呢?本章将介绍最主要的几个概念。不少机器学习初学者甚至包括业内老司机,一直被困扰的就是如何找到合适的训练数据和测试数据,针对数据的处理也花费了大量人力物力,究竟如何把身边各种形态的实物最终转换成机器可以理解的数字特征呢?本章将介绍数据集的获取与特征提取方案。本章介绍的数据集包括KDD 99、SEA、ADFA-LD等共10类,重点介绍如何针对数字型和文本型的数据进行特征提取以及常见的数据读取方式,最后介绍如何对机器学习的结果进行验证。

3.1 机器学习基本概念

1.有监督学习:对具有概念标记(分类)的训练样本进行学习,以便尽可能对训练样本集外的数据进行标记(分类)预测。这里,所有的标记(分类)是已知的。因此,训练样本的歧义性低。

2.无监督学习:对没有概念标记(分类)的训练样本进行学习,以便发现训练样本集中的结构性知识。这里,所有的标记(分类)是未知的。因此,训练样本的歧义性高。聚类就是典型的无监督学习。

3.准确率与召回率:信息检索、分类、识别、翻译等领域中有两个最基本指标:召回率(Recall Rate)和准确率(Precision Rate),召回率也叫查全率,准确率也叫查准率。

对一个二分问题来说,会出现四种情况。如果一个实例是实际为真并且也被预测成真,即为真正类(True positive, TP),如果实际为假被预测成真,称之为假正类(False positive,FP)。相应地,如果实际为假被预测成假,称之为真负类(True negative, TN),实际为真被预测成假则为假负类(false negative, FN)。

召回率和准确率的关系如表3-1所示。

表3-1 召回率与准确率的关系

召回率=TP/(TP+FN)

准确率=TP/(TP+FP)

用一个吃货都可以理解的例子来解释这两个枯燥的概念:一个池塘有10条鱼和20只小龙虾,渔夫撒网打鱼,结果捞上来8条鱼12只小龙虾,那么准确率为8/(8+12)=40%,召回率为8/10=80%。