Matlab中观测值和变量的区别

3
我有点不好意思问这个问题,但还是问一下。在每个Matlab帮助文件中,输入矩阵都是一个NxD矩阵X,Matlab将矩阵排列描述为:
数据,指定为数字矩阵。X的行对应于观测值,列对应于变量。
以上摘自kmeans的帮助文档。
我有点困惑Matlab所说的“观测值”和“变量”是什么意思。
假设我有一个由100个图像组成的数据矩阵。每个图像由大小为128 x 1的特征向量表示。那么这里有100个观测值和128个变量,还是反过来?
我的数据矩阵的大小是128 x 100还是100 x 128

1
100个观测值,128个变量。 - knedlsepp
2个回答

5
尤金的统计和概率构建解释很好,但我希望从数据分析和图像处理的角度更加详细地解释一下。
将观察视为数据集中的一个样本。在这种情况下,一个观察是一个图像。每个样本都有与之相关联的一些维度或用于表示该样本的变量数量。
例如,如果我们有一组100个2D笛卡尔点,则观测次数为100,而用于描述该点的维度或总变量数为2:我们有一个x点和一个y点。因此,在MATLAB宇宙中,我们会将所有这些数据点放入单个矩阵中。矩阵的每一行表示数据集中的一个点。因此,在这里创建的矩阵是100×2。
现在,回到你的问题。我们有100张图片,每张图片可以用128个特征来表达。这看起来非常像你正在尝试使用SIFT或SURF来表示一张图片,因此请将每张图片想象成可以用128维向量或具有128个元素的直方图来描述。每个特征都是构成图像的维度组成部分。因此,您将拥有一个100 x 128矩阵。每行代表一个图像,其中每个图像表示为1 x 128特征向量。
一般来说,MATLAB的机器学习和数据分析算法假定您的矩阵为M x N,其中M是构成您的数据集的点的总数,而N是数据集中一个这样的点的维度。在MATLAB宇宙中,观测次数等于数据集中点的总数,而用于表示一个样本的特征/不同属性的总数则是变量的总数。
tl:dr - 观察:数据集中的一个样本 - 变量:帮助描述数据集中观察或样本的一个特征/属性。 - 观测次数:数据集中点的总数 - 变量数量:构成数据集中观察或样本的特征/属性的总数。

感谢您提供如此详尽的答案。是的,您说得对,这些都是SIFT特征,但我必须使用RootSIFT将SIFT矩阵转换为向量。这就是为什么所有的SIFT向量都有128个元素的长度。假设我有100张图片,每张图片都用一个大小为“128 x 50”的矩阵表示,那么在这种情况下输入矩阵会被如何排列呢?谢谢 - StuckInPhDNoMore
1
@FarazKhan - 很高兴为您效劳 :). 人们常用的一种技术是将矩阵展开,使其成为一个单独的 128 x 50 向量。特别是在处理机器学习算法(如 SVM)时,人们会这样做。因此,您将拥有一个变成 100 x (128*50) 的矩阵。取出您的矩阵并执行 matrix(:).'。这将把矩阵展开成一个行向量。matrix(:) 将矩阵转换为列向量,然后我们进行转置,使其成为行向量。 - rayryeng

1

看起来你在谈论一些特定的统计/概率函数。在统计学或概率理论中,有一些随机变量是通过某种时间(或其他维度)上的测量/观察得出的。因此,这样的矩阵只是对D个不同随机变量进行N次测量的集合。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接