def pca(dataMat,n):
print "Start to do PCA..."
t1 = time.time()
newData,meanVal=zeroMean(dataMat)
covMat=np.cov(newData,rowvar=0)
eigVals,eigVects=np.linalg.eig(np.mat(covMat)) # calculate feature value and feature vector
joblib.dump(eigVals,'./features/PCA/%s/eigVals_train_%s.eig' %(m,m),compress=3)
joblib.dump(eigVects,'./features/PCA/%s/eigVects_train_%s.eig' %(m,m),compress=3)
# eigVals = joblib.load('./features/PCA/%s/eigVals_train_%s.eig' %(m,m))
# eigVects = joblib.load('./features/PCA/%s/eigVects_train_%s.eig' %(m,m))
eigValIndice=np.argsort(eigVals) # sort feature value
n_eigValIndice=eigValIndice[-1:-(n+1):-1] # take n feature value
n_eigVect=eigVects[:,n_eigValIndice] # take n feature vector
joblib.dump(n_eigVect,'./features/PCA/%s/n_eigVects_train_%s_%s.eig' %(m,m,n))
lowDDataMat=newData*n_eigVect # calculate low dimention data
# reconMat=(lowDDataMat*n_eigVect.T)+meanVal
t2 = time.time()
print "PCA takes %f seconds" %(t2-t1)
return lowDDataMat
4_Train_PCA+SVM.py 文件源码
python
阅读 24
收藏 0
点赞 0
评论 0
评论列表
文章目录