数学要素(全彩图解 + 微课 + Python编程)
上QQ阅读APP看书,第一时间看更新

1.5 矩阵:数字排列成长方形

矩阵(matrix)将一系列数字以长方形方式排列,如

通俗地讲,矩阵将数字排列成表格,有行、有列。式(1.9)给出了三个矩阵,形状分别是2行3列(记作2×3)、3行2列(记作3×2)和2行2列(记作2×2)。

鸢尾花书用大写、斜体字母代表矩阵,比如矩阵A和矩阵B

图1.16所示为一个n×Dn by capital D)矩阵Xn矩阵的行数(number of rows in the matrix),D矩阵的列数(number of columns in the matrix)。X可以展开写成表格形式,即

图1.16 n×D矩阵X

再次强调:先说行序号,再说列序号。鸢尾花书中,数据矩阵一般采用大写、粗体、斜体X表达。

矩阵X中,元素(element)xi,j被称作i,j元素(i j entry或i j element),也可以说xi,j出现在ij列(appears in row i and column j)。比如,xn,1是矩阵X的第n行、第1列元素。

表1.4总结了如何用英文读矩阵和矩阵元素。

表1.4 矩阵有关英文表达

Bk3_Ch1_09.py利用numpy.array()定义矩阵,并提取矩阵的某一列、某两列、某一行、某一个位置的具体值。

鸢尾花数据集

绝大多数情况,数据以矩阵形式存储、运算。举个例子,图1.17所示的鸢尾花卉数据集,全称为安德森鸢尾花卉数据集(Anderson’s Iris data set),是植物学家埃德加·安德森(Edgar Anderson)在加拿大魁北克加斯帕半岛上采集的150个鸢尾花样本数据。这些数据都属于鸢尾属下的三个亚属。每一类鸢尾花收集了50条样本记录,共计150条。

图1.17中数据第一列是序号,不算作矩阵元素。但是它告诉我们,鸢尾花数据集有150个样本数据,即n=150。紧随其后的是被用作样本定量分析的四个特征——花萼长度(sepal length)、花萼宽度(sepal width)、花瓣长度(petal length)和花瓣宽度(petal width)。

图1.17中表格最后一列为鸢尾花分类,即标签(label)。三个标签分别为——山鸢尾(setosa)、变色鸢尾(versicolor)和维吉尼亚鸢尾(virginica)。最后一列标签算在内,矩阵有5列,即D=5。

图1.17 鸢尾花数据表格(单位:cm)

这个150×5的矩阵的每一列,即列向量为鸢尾花一个特征的样本数据。矩阵的每一行,即行向量,代表某一个特定的鸢尾花样本。

鸢尾花数据集可以说是鸢尾花书最重要的数据集,没有之一。我们将用各种数学工具从各种视角分析鸢尾花数据。图1.18所示给出了几个例子,鸢尾花书会陪着大家理解其中每幅图的含义。

图1.18 用各种概率统计、数据科学、机器学习工具分析鸢尾花数据

矩阵形状记号

大部分数学教科书表达矩阵形状时采用m×n;鸢尾花书表达矩阵形状时,一般用n×Dn表示行数,D表示列数。

采用n×D这种记号有以下几方面的考虑。

首先mn这两个字母区分度不高。两者长相类似,而且发音相近,这会让初学者辨别行、列时有很大疑惑。而nD,一个小写字母,一个大写字母,且发音有显著区别,很容易辨识。

此外,在处理数据时大家会发现,比如pandas.DataFrame定义的数据帧中,列代表特征,如性别、身高、体重、年龄等;行一般代表样本,如小张、小王、小姜等。而统计中,一般用n代表样本数,因此决定用n来代表矩阵的行数。字母D取自dimension(维度)的首字母,方便记忆。

鸢尾花书横跨代数、线性代数、概率统计几个板块,n×D这种记法方便大家把矩阵运算和统计知识联系起来。

本书编写之初,也有考虑用feature(特征)的首字母F来表达矩阵的列数,但最终放弃。一方面,是因为鸢尾花书后续会用F代表一些特定函数;另一方面,nF的发音区分度不如nD那么高。

基于以上考虑,鸢尾花书后续在表达样本数据矩阵形状时都会默认采用n×D这一记法,除非特别说明。