Python 实现主成分分析

Python 实现主成分分析

主成分分析(Principal Component Analysis,PCA)是最常用的一种降维方法,通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理等。

矩阵的主成分就是其协方差矩阵对应的特征向量,按照对应的特征值大小进行排序,最大的特征值就是第一主成分,其次是第二主成分,以此类推。

上代码:

 

# -*- coding:utf-8 -*-

import sys
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris


reload(sys)
sys.setdefaultencoding("utf8")

# 加载数据
data = load_iris()
y = data.target
x = data.data

# 加载PCA算法,设置降维后主成分数目为2
pca = PCA(n_components=2) 

# 对样本进行降维
reduced_x = pca.fit_transform(x)
red_x, red_y = [], []
blue_x, blue_y = [], []
green_x, green_y = [], []

for i in range(len(reduced_x)):
    if y[i] == 0:
        red_x.append(reduced_x[i][0])
        red_y.append(reduced_x[i][1])
    elif y[i] == 1:
        blue_x.append(reduced_x[i][0])
        blue_y.append(reduced_x[i][1])
    else:
        green_x.append(reduced_x[i][0])
        green_y.append(reduced_x[i][1])

# 可视化
plt.scatter(red_x, red_y, c='r', marker='x')
plt.scatter(blue_x, blue_y, c='b', marker='D')
plt.scatter(green_x, green_y, c='g', marker='.')
plt.show()

 

把降维后的数据聚类、可视化,来看降维的效果:

 

 

posted @ 2018-08-08 11:00  因为专注。所以专业  阅读(1639)  评论(0编辑  收藏  举报