MCPcopy Index your code
hub / github.com/lawlite19/MachineLearning_Python / PCA_2D

Function PCA_2D

PCA/PCA.py:12–44  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

10主成分分析_2维数据降维1维演示函数
11'''
12def PCA_2D():
13 data_2d = spio.loadmat("data.mat")
14 X = data_2d['X']
15 m = X.shape[0]
16 plt = plot_data_2d(X,'bo') # 显示二维的数据
17 plt.show()
18
19 X_copy = X.copy()
20 X_norm,mu,sigma = featureNormalize(X_copy) # 归一化数据
21 #plot_data_2d(X_norm) # 显示归一化后的数据
22 #plt.show()
23
24 Sigma = np.dot(np.transpose(X_norm),X_norm)/m # 求Sigma
25 U,S,V = np.linalg.svd(Sigma) # 求Sigma的奇异值分解
26
27 plt = plot_data_2d(X,'bo') # 显示原本数据
28 drawline(plt, mu, mu+S[0]*(U[:,0]), 'r-') # 线,为投影的方向
29
30 plt.axis('square')
31 plt.show()
32
33 K = 1 # 定义降维多少维(本来是2维的,这里降维1维)
34 '''投影之后数据(降维之后)'''
35 Z = projectData(X_norm,U,K) # 投影
36 '''恢复数据'''
37 X_rec = recoverData(Z,U,K) # 恢复
38 '''作图-----原数据与恢复的数据'''
39 plt = plot_data_2d(X_norm,'bo')
40 plot_data_2d(X_rec,'ro')
41 for i in range(X_norm.shape[0]):
42 drawline(plt, X_norm[i,:], X_rec[i,:], '--k')
43 plt.axis('square')
44 plt.show()
45
46
47'''主成分分析_PCA图像数据降维'''

Callers 1

PCA.pyFile · 0.85

Calls 5

featureNormalizeFunction · 0.85
drawlineFunction · 0.85
projectDataFunction · 0.85
recoverDataFunction · 0.85
plot_data_2dFunction · 0.70

Tested by

no test coverage detected