1.1 数据
数据是经验的另一种说法,也是信息的载体。数据可被分为结构型数据和非结构型数据,也可被分为原始数据和加工后的数据,还可被分为样本内数据和样本外数据。第一种是根据数据具体类型划分的,第二种是根据数据的表达形式划分的,第三种是根据数据统计性质划分的。
1.1.1 结构型与非结构型数据
结构型数据是用二维表结构来逻辑表达和实现的数据。非结构型数据是没有预定义的数据模型,不便用二维表来表现的数据。
1.非结构型数据
非结构型数据包括图片、文字、语音等,如图所示。
对于以上非结构型数据,相关应用实例有:
● 深度学习的卷积神经网络(Convolutional Neural Network,CNN),用于对图像数据做人脸识别或物体分类。
● 深度学习的循环神经网络(Recurrent Neural Network,RNN),用于对语音数据做语音识别或机器对话,对文本数据进行文本生成或阅读理解。
● 增强学习的阿尔法狗(AlphaGo)在对棋谱数据学习无数遍后,最终打败了世界围棋高手李世石和柯洁。
本书的机器学习模型主要使用的是结构型数据,即二维的数据表。
非结构型数据
2.结构型数据
首先介绍干净数据的定义。假设我们收集了勒布朗·詹姆斯(Lebron James)四场比赛的数据,见下表。
根据Wickham在Tide Data论文[2]中对干净数据的定义:
● 每一列代表一个特征,比如得分、篮板和助攻是3个特征。
● 每一行代表一个示例,比如第1行的示例(得分=27,篮板=10,助攻=12)。
可知表格中的数据是干净的。
对于下面的术语,读者在深入了解机器学习前一定要弄清楚:
● 每行的记录(这里是在一场比赛中对詹姆斯的个人得分统计),被称为一个示例(Instance)。
● 反映对象在某方面的表现或性质,例如得分、篮板、助攻,被称为特征(Feature)或输入(Input)。
● 特征上的取值,例如示例1对应的27、10、12被称为特征值(Feature Value)。
假设我们想分析詹姆斯的得分、篮板、助攻达到什么水平就可以帮助骑士队赢得比赛,下表在上表的基础上多加了一列数据标签,记录每场比赛的输赢。
乍一看,会发现詹姆斯的助攻在10次以上就可以帮助骑士队赢得比赛,反之得分再多也不能赢得比赛。这也合理,因为助攻多会让全队配合流畅,就会赢得比赛。但是这只是直觉,不是模型。
模型还需要考虑得分和篮板次数对比赛结果的影响。
其中涉及的术语如下所示。
● 关于示例结果的信息,例如赢,被称为标签(Label)或输出(Output)。
● 包含标签信息的示例,则被称为样例(Example),即样例=(特征,标签)。
● 从数据中学习并得到模型的过程被称为学习(Learning)或训练(Training)。
● 在训练数据中,每个样例被称为训练样例(Training Example),整个集合被称为训练集(Training Set)。
下面将以上内容浓缩为一张图,如下图所示。
结构型数据及术语
1.1.2 原始数据与加工
计算机在处理数值型的结构型数据时效率是最高的,但是,在现实世界里,原始数据通常有以下两种情况。
● 非结构型数据,比如图片型数据和文本型数据(情况一)。
● 结构型数据,但是某些特征不是数值型数据(情况二)。
在情况一中,以图片为例,通过特定函数imread将彩色图片用RGB[2]像素表示出来,再按红色、绿色、蓝色的顺序,将所有像素排成一个数值列向量(Column Vector),而计算机可以接受这样的输入。具体转换过程见图。
将原始图片转换成数值向量
在情况二中,结构型数据是一个二维数据表,每列的特征可能是数值型变量或分类型变量。
● 数值型变量:其变量值是定量的,是被人为定义的数字(如整数、小数、实数等)。
● 分类型变量:其变量值是定性的,表现为互不相容的类别或属性。
数值型变量不需要进行转换,比如将表中的得分直接表示成
x 得分=[27 33 51 40]
分类型变量用0-1编码,比如将比赛结果={赢,输}表示成y=[1 0 0 1],1代表赢,0代表输。
假如现在有一场足球比赛,那么结果有赢、平、输(见表),分别用0、1、2来表示,那么y=[0 1 0 2]。但更常见的是用独热编码(One-Hot Encoding)表示:
1.1.3 样本内数据与样本外数据
在统计学中,把研究对象的全体称为总体(Population),把组成总体的各个元素称为个体,把从总体中抽取的若干个体称为样本(Sample)(见下图)。
总体和样本
下面举一个调查中国男性平均身高的例子,其中:
● 全国的男性就是总体。
● 每个男性是个体。
如果要调查中国所有男性的身高,则所需的金钱和时间成本太高。通常会抽取若干名男性作为样本,通过计算样本里的男性平均身高作为总体里的所有男性平均身高。
统计学的工作就是根据样本数据的统计来推出总体数据的参数(Parameter)。样本数据也被称为样本内数据,除样本内数据外的总体数据被称为样本外数据。
在机器学习中,样本内数据和样本外数据的定义有一些不同,如下图所示。
机器学习的难点就是如何通过准确的样本内数据预测来保证准确的样本外数据预测,这也是第2章重点介绍的内容。
样本内数据和样本外数据
● 样本内数据:用来训练模型的数据,也被称为训练数据。它们是已知的,是可计算的。
● 样本外数据:模型未来没见过的数据。它们是未知的,是不可计算的。
机器学习在样本内数据中训练模型用来做以下预测。
● 样本内预测:根据训练模型对样本内数据进行预测,可与已知的标签比较来评估模型效果。
● 样本外预测:根据训练模型对样本外数据进行预测,不能与未知的标签比较。