作者rauf6620 (乱入)
看板MATLAB
标题Re: [问题] 无法将data标准化後执行PCA
时间Thu Nov 26 15:16:15 2009
感谢您的建议
这里PCA的确是主成分分析没错
而PCA的资料前处理的确是为去除中心轨道,所以执行centering(中心化)
也就是只扣除平均值
不过我所看到的国外paper"几乎"都一致提到,需要将资料标准化
我也曾单纯只想将资料中心化,然後执行PCA
就算该行所有的值都是0,也不会产生分母为0的问题
但作者的操作过程是这样写
心想没道理不能照着做
但做了还真的产生问题
另外..您後面PCA code的部份能多解释一点吗
感谢赐教
谢谢
※ 引述《wudollar (~每天一ㄍ心希望~)》之铭言:
: ※ 引述《rauf6620 (乱入)》之铭言:
: : 若A为一M*N矩阵
: : 假设为 5 4 1 0 2 0
: : 5 3 0 0 1 0
: : 5 4 2 0 3 0
: : 5 3 1 0 4 0
: : -------------
: : mean
: : std
: : 执行PCA前,为去除单位,所以皆会将资料先予以标准化(对行执行)
: 这里我有问题~!!
: 应该是说:我不知道,或者我不懂...
: PCA是所谓的Principal Component Analysis? 是嘛?
: 如果不是,请略过我以下所有的鬼话 @@b
: PCA 似乎在数学定义上面,没有需要在处理PCA前需要去除单位,
: 或者正规化(normalization)吧?
: 仅仅是因为想看变化(anomaly)所以去平均值(de-mean),
: 换句话说是看变异数(variance)分布以及大小吧?(使用SVD 或者 Eigen..)
: 所以似乎没有在之前需要之前就需要正规化处理吧?
: 另,如果是真要有正规化处理,那是当你生成PC(principal component)
: 以及Pattern(e.g. eigenvectors),在需要量化强度,
: 以及给予PC单位时所做的简单换算吧?
: PC = PC*std(Pattern), Pattern = Pattern/std(Pattern)
: Matrix = PC * Pattern; when (PC = Matrix * Pattern)
: ------------------------------------------------------------------------------
: 这样子的话,『我自以为』你的问题似乎就没有了,不是吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.17.12.231
1F:推 wudollar:已回信,请查收,另我找出了PCA我这领域的圣经..... 11/27 10:03
2F:→ wudollar:Preisendorfer & Mobley(1988), Principal Component Ana 11/27 10:05
3F:→ wudollar:lysis in Meteorology and Oceanography 11/27 10:06