()
| 46 | |
| 47 | '''主成分分析_PCA图像数据降维''' |
| 48 | def PCA_faceImage(): |
| 49 | print (u'加载图像数据.....') |
| 50 | data_image = spio.loadmat('data_faces.mat') |
| 51 | X = data_image['X'] |
| 52 | display_imageData(X[0:100,:]) |
| 53 | m = X.shape[0] # 数据条数 |
| 54 | |
| 55 | print (u'运行PCA....') |
| 56 | X_norm,mu,sigma = featureNormalize(X) # 归一化 |
| 57 | |
| 58 | Sigma = np.dot(np.transpose(X_norm),X_norm)/m # 求Sigma |
| 59 | U,S,V = np.linalg.svd(Sigma) # 奇异值分解 |
| 60 | display_imageData(np.transpose(U[:,0:36])) # 显示U的数据 |
| 61 | |
| 62 | print (u'对face数据降维.....') |
| 63 | K = 100 # 降维100维(原先是32*32=1024维的) |
| 64 | Z = projectData(X_norm, U, K) |
| 65 | print (u'投影之后Z向量的大小:%d %d' %Z.shape) |
| 66 | |
| 67 | print (u'显示降维之后的数据......') |
| 68 | X_rec = recoverData(Z, U, K) # 恢复数据 |
| 69 | display_imageData(X_rec[0:100,:]) |
| 70 | |
| 71 | |
| 72 |
no test coverage detected