主成分分析是一种常用的降维方法,多见于数据预处理阶段,其伪代码如下:
输入:样本数据集D={x1,x2,x3,x4},低空间维度数d'
过程:
-
1 对所有样本进行中心化(每个特征维度都减去其均值)
-
2 计算所有样本的协方差矩阵
-
3 对协方差矩阵进行特征分解
-
4 取最大的d'个特征值的对应特征向量w1,w2,w3
输出: 投影矩阵W*=(w1,w2,wd')
下面是其代码实现:
首先是产生数据,我们使用sklearn的make_blobs方法产生三类数据,每类有三个特征。数据结构是(n_samples, n_features)
图片如下:
可以看到,三维空间下的三类数据分的很开,在二维结构下,只有图(1)分