Matlab 中观察值和变量之间的差异

Difference between observations and variables in Matlab

我什至都不好意思问这个问题,但就这样吧。在输入矩阵为 NxD 矩阵的每个 Matlab 帮助文件中 X Matlab 将矩阵排列描述为

Data, specified as a numeric matrix. The rows of X correspond to observations, and the columns correspond to variables.

以上摘自 kmeans

的帮助

我对 Matlab 中观察和变量的含义感到有点困惑。

假设我有一个由 100 张图像组成的数据矩阵。每张图片都由一个大小为 128 x 1 的特征向量表示。所以这是我的 100 个观察结果和 128 个变量,还是相反?

我的数据矩阵的大小是 128 x 100 还是 100 x 128

您似乎在谈论一些特定的 statistical/probabilistic 功能。在统计学或概率论中,有一些随机变量是某种 measurements/observations 随着时间(或其他维度)的结果。所以这样的矩阵只是D个不同随机变量的N个测量值的集合。

尤金在统计和概率构造方面的解释很棒,但我想从数据分析和图像处理的角度解释更多。

将观察视为数据集中的一个 样本。在这种情况下,一次观察就是一幅图像。对于每个样本,它都有一些相关联的维度或用于表示此类样本的多个变量。

例如,如果我们有一组 100 个二维笛卡尔点,观察值 的数量为 100,而 变量的维度或总数用来描述点是2:我们有一个x点和一个y点。因此,在 MATLAB 宇宙中,我们会将所有这些数据点放入一个矩阵中。矩阵的每个 表示数据集中的一个点。因此,您要在此处创建的矩阵是 100 x 2.

现在,回到你的问题。我们有 100 张图像,每张图像可以用 128 个特征表示。这看起来很可疑,就像您正在尝试使用 SIFT 或 SURF 来表示图像,因此请考虑这种情况,其中每个图像都可以用 128 维向量或具有 128 个元素的 bin 的直方图来描述。每个特征都是构成图像的维度构成的一部分。因此,您将有一个 100 x 128 矩阵。每行代表 一张图像 ,其中每张图像表示为 1 x 128 个特征向量。

一般来说,MATLAB 的机器学习和数据分析算法假设您的矩阵是 M x N,其中 M 是构成数据集的总点数,而 N是数据集中一个这样的点的维数。在 MATLAB 的宇宙中,观察总数等于数据集中点的总数,而代表一个样本的特征/不同属性的总数就是变量总数。

tl:dr

  • 观察:您的数据集中的一个样本
  • 变量:一种有助于描述数据集中观察或样本的特征/属性。
  • 观测数:数据集中的总点数
  • 变量数:构成数据集中观察或样本的特征/属性总数。