我有点不好意思问这个问题,但还是问了。在每个Matlab帮助文件中,当输入矩阵是一个NxD
矩阵X
时,Matlab描述矩阵排列的方式是
数据,指定为数值矩阵。X的行对应于观察值,列对应于变量。
以上内容摘自kmeans的帮助文件
我对Matlab所说的观察值和变量有些困惑。
假设我有一个由100张图像组成的数据矩阵。每张图像由一个大小为128 x 1
的特征向量表示。那么这里100是我的观察值而128是变量,还是反过来呢?
我的数据矩阵应该是128 x 100
还是100 x 128
?
回答:
Eugene在统计和概率结构中的解释很好,但我希望从数据分析和图像处理的角度来进一步解释这个问题。
把观察值看作是你数据集中的一个样本。在这种情况下,一个观察值就是一张图像。对于每个样本,它有一些相关的维度或用于表示该样本的变量数量。
例如,如果我们有一组100个二维笛卡尔点,观察值的数量是100,而描述点的维度或总的变量数量是2:我们有一个x
点和一个y
点。因此,在MATLAB的世界中,我们会将所有这些数据点放入一个单一的矩阵中。矩阵的每一行表示数据集中的一个点。因此,你在这里创建的矩阵是100 x 2
。
现在,回到你的问题。我们有100张图像,每张图像可以用128个特征来表示。这看起来像是你试图使用SIFT或SURF来表示图像,所以考虑这种情况,每张图像可以用一个128维的向量或一个具有128个元素的直方图来描述。每个特征都是构成图像的维度的一部分。因此,你会有一个100 x 128
的矩阵。每行代表一张图像,每张图像表示为一个1 x 128
的特征向量。
一般来说,MATLAB的机器学习和数据分析算法假设你的矩阵是M x N
,其中M
是你数据集中的总点数,而N
是你数据集中一个点的维度。在MATLAB的世界中,总的观察值数量等于你数据集中的总点数,而表示一个样本的总特征/不同属性的数量是总的变量数量。
tl:dr
- 观察值:你数据集中的一个样本
- 变量:帮助描述观察值或样本的一个特征/属性
- 观察值数量:你数据集中的总点数
- 变量数量:构成观察值或样本的总特征/属性数量