主成分析法 初学

主成分析法是最为经典与实用的特征降维

import numpy as np
import pandas as pd
from sklearn.decomposition import PCA
from matplotlib import pyplot as plt
# m = np.array([[1,2],[2,3]])
# print(np.linalg.matrix_rank(m,tol=None)) #compute the rank of matrix

digits_train = pd.read_csv("optdigits.tra",header=None)
digits_text = pd.read_csv("optdigits.tes.txt",header = None)

x_digits = digits_train[np.arange(64)] #arange 返回 有终点起点,固定步长的排列
y_digits = digits_train[64]

estimator = PCA(n_components=2) #将高维压缩至 2维的pca
x_pca = estimator.fit_transform(x_digits)

print(x_pca)
print(y_digits)

def plot_colour():
colour = ['black','blue','purple','yellow','white','red','lime','cyan','orange','gray']
for i in range(len(colour)):
px = x_pca[:, 0][y_digits.as_matrix()==i]
py = x_pca[:, 1][y_digits.as_matrix()==i]
plt.scatter(px,py,c=colour[i])

plt.legend(np.arange(0,10).astype(str))
plt.xlabel('first principal component')
plt.ylabel('second principal component')
plt.show()

plot_colour()

其中学习的是:
  PCA(n_components = x) #x即为想压缩的维度
  arange            #返回有起点终点,固定步长的排列

  astype           #转换数组类型

  as_matrix()      #将目标转换为矩阵
  as_matrix() == i     #理解:如果相等则为真 方可上色

posted @ 2019-01-22 10:20  skyacc  阅读(333)  评论(0)    收藏  举报