2

我正在使用 openCV 中的主成分分析 ( PCA )。我感兴趣的案例的构造函数输入是:

PCA(InputArray data, InputArray mean, int flags, double retainedVariance);

关于 InputArray '数据',文档说明适当的标志应该是:

CV_PCA_DATA_AS_ROW表示输入样本存储为矩阵行。 CV_PCA_DATA_AS_COL表示输入样本存储为矩阵列。

我的问题与“样本”一词的使用有关,因为我不确定在这种情况下样本是什么。

例如,假设我有4组数据,为了便于说明,我们将它们标记为 AD。现在每个集合 A 到 D 都有8个元素。然后将它们设置在我将用作 InputArray 的 Mat 变量中,如下所示:

在此处输入图像描述

问题是,它是什么:

  • 我的套装是样品吗?
  • 我的数据元素是样本?

另一种提问方式:

  • 我有 4 个样本吗 (CV_PCA_DATA_AS_COL)
  • 还是我有 4 组 8 个样本 (CV_PCA_DATA_AS_ROW)

?

作为一种猜测,我会选择CV_PCA_DATA_AS_COL (即我有 4 个样本)——但这正是我的头脑所在……在我学会正确的术语之前,“样本”这个词似乎可以适用于任何一种推理。

4

1 回答 1

0

啊...

因此,通过反转 PCA::project 步骤文档背后的逻辑找到了答案......

Mat PCA::project(InputArray vec)

vec——输入向量;必须与 PCA 阶段使用的输入数据具有相同的维度和相同的布局,即如果指定了 CV_PCA_DATA_AS_ROW,则 vec.cols==data.cols(向量维度)

'sample'等价于'set',元素就是'dimension'。

(我的猜测是正确的:)

于 2015-07-19T06:37:27.583 回答