我甚至有点惭愧甚至问这个,但这里有。在每个Matlab帮助文件中,输入矩阵是NxD
矩阵X
Matlab将矩阵排列描述为
数据,指定为数字矩阵。 X行对应 观察,列对应变量。
以上摘自kmeans
的帮助我对Matlab对观察和变量的意义感到困惑。
假设我有一个由100个图像组成的数据矩阵。每个图像由大小为128 x 1
的特征向量表示。所以这里有100个我的观察结果和128个变量,还是反过来呢?
我的数据矩阵的大小是128 x 100
还是100 x 128
答案 0 :(得分:5)
将观察结果视为数据集中的样本。在这种情况下,一个观察是一个图像。对于每个样本,它具有与之相关的一些维度或用于表示这样的样本的许多变量。
例如,如果我们有一组100个2D笛卡尔坐标点,则观测值的数量为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的Universe中,观察总数等于数据集中的总点数,而表示一个样本的要素/不同属性的总数是变量的总数。
tl:dr
答案 1 :(得分:1)
看起来你在谈论一些特定的统计/概率函数。在统计学或概率论中,有一些随机变量是某种测量/观察随时间(或某些其他维度)的结果。所以这样的矩阵只是D个不同随机变量的N次测量的集合。