注册 登录
编程论坛 Matlab

[求助]主成分分析前为什么要进行原始数据的标准化

tianyaxk 发布于 2006-10-31 21:39, 8152 次点击

主成分分析前为什么要进行原始数据的标准化

这二天看到主成分分析的一个程序 前面部分如下:

stdr=std(dataset); %求个变量的标准差
[n,m]=size(dataset); %定义矩阵行列数
sddata=dataset./stdr(ones(n,1),: ); %将原始数据采集标准化
sddata %输出标准化数据

有个问题就是为什么要进行原始数据的标准化?是否一定要进行?有没有标准规定是否标准化,如方差、标准差在多少范围内之类?

我用标准化的数据更原始数据分别处理,得到的二维图明显不同。请高手不吝指教,谢谢。

3 回复
#2
abingchem2006-11-01 08:08
进行标准化是对数据进行了一定的缩放处理,这样目的是提高计算的精度
具体的你看一下数据统计分析方面的书吧
#3
hitzhang2006-11-01 15:04
不是吧
因为因素之间的数值或者数量级存在较大差距,导致较小的数被淹没,导致主成分偏差较大,所以要进行数据标准化这样才客观
#4
wlfanxin2009-08-07 19:20
o  明白了
1