机器学习算法(四)之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

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