機器學習算法(四)之PCA降維算法代碼

PCA降維的算法的代碼,可以使用sklearn進行直接進行調用,調用的代碼如下:
將sklearn機器學習框架進行安裝

pip install sklearn

調用sklearn工具包用來進行PCA數據降維
導入矩陣與數組計算擴展包

import numpy as np  

定義標準化的函數

def BatchNormalize(X):
	mu = np.mean(X,axis=0)
	sigma = np.std(X,axis=0) #計算標準差
	for i in range(X.shape[1]):
		X[:,i] = (X[:,i] - mu[i]) / sigma[i]  #進行歸一化計算
	return X,mu,sigma

定義輸入矩陣X

x = np.array([[0.9,2.4,1.2,0.5,0.3,1.8,0.5,0.3,2.5,1.3],
	[1,2.6,1.7,0.7,0.7,1.4,0.6,0.6,2.6,1.1],[1,2.5,1.1,0.6,0.6,1.3,0.5,207,208,1.0]])

降維計算

x = x.T  #計算x矩陣的轉置矩陣
x,mu,sigma = BatchNormalize(x)
c = np.cov(x.T) #np.cov計算矩陣X的協方差
w,v = np.linalg.eig(c) #協方差矩陣的特徵值和特徵向量
v = v[:,0:2] #主成分分析取前兩列
y = np.dot(x,v)

輸入矩陣X爲:

三維降維爲二維後進行矩陣輸出:
在這裏插入圖片描述
完整代碼開源在本人github社區:
https://github.com/qianyuqianxun-DeepLearning/PCA-code.git

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章