您的位置:首页 > 其它

主成分分析 (Principal Components Analysis, PCA)

2017-08-09 16:13 591 查看
通过降维 (Dimensionality Reduction),实现数据压缩以减少计算、存储成本,或实现数据可视化以直观了解数据。

1. 数据预处理

特征缩放及标准化 (feature scaling / mean normalization):

x(i)j=x(i)j−μjsj

其中

μj=1m∑i=1mx(i)j,即xj的平均值

sj=max(xj)−min(xj),即xj中最大、最小值之差

2. 算法实现

要将数据从n维降至k维(x(i)∈Rn→z(i)∈Rk):

计算协方差矩阵 (covariance matrix):

* 为避免Σ,∑(Sigma与求和符号)混淆,此处的Σ用Sigma表示

Sigma=1m∑i=1n(x(i))(x(i))T

计算Sigma矩阵的特征向量 (eigenvectors):

[U,S,V]=svd(Sigma)

可得

U=⎡⎣⎢| | |u(1) u(2) ... u(n)| | |⎤⎦⎥∈Rn×n

从中选出前k列:

Ureduce=⎡⎣⎢| | |u(1) u(2) ... u(k)| | |⎤⎦⎥∈Rn×k

最后:

z(i)=(Ureduce)Tx(i)

3. k值选择

[U,S,V]=svd(Sigma)中,S为对角矩阵:

S=diag(S11,S22,...,Snn)

计算满足∑ki=1Sii∑mi=1Sii≥0.99的最小的k值,即为k的取值。

其中0.99可理解为保留99%的数据差异性,可根据实际情况调整。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pca主成分分析