【发布时间】:2014-11-13 15:21:52
【问题描述】:
我在两个不同的时间点测量了 5 台设备。测量基本上由对应于相应位置的位值的 1 和 0 数组组成:
whos measurement1_dev1_time1
Name Size Bytes Class Attributes
measurement1_dev1_time1 4096x8 32768 logical
我假设对于特定设备,测量时间 1 和 2 之间的变化是唯一的。但是,由于我在不同位置处理 32768 位,因此很难想象是否存在某种依赖关系。
因为x位置的每一位都可以看作是观察的一个维度,我认为使用 PCA 来减少维度的数量。
因此,对于 5 台设备中的每台设备:
- 我在
t1和t2点分别随机抽样n测量值 - 我准备了一个数组作为
pca()的输入,其中包含m*n 列(m - 在这个数组
A上,我计算 pca:``[coeff score latent] = pca(zscore(A))``` - 然后我尝试使用
biplot将其可视化:biplot(coeff(:,1:2), 'score', score(:,1:2))
但是,这给了我非常奇怪的结果。也许 PCA 不是解决这个问题的正确方法?我还修改了输入数据以不在逻辑位数组本身上执行 PCA。相反,我创建了一个向量,它保存原始测量数组中存在“1”的索引。这也会产生奇怪的结果。
由于我对 PCA 完全陌生,所以我想问您是否发现过程中存在缺陷,或者 PCA 是否不适合我的目标,我最好寻找其他降维方法或聚类算法。
【问题讨论】:
-
也许可以在这里试试:datascience.stackexchange.com
-
谢谢,我会在那里转贴!
-
有 5 个设备(尽管数量可以增加)。我更新了原始线程。
标签: matlab pca dimension-reduction