机器学习算法(四)之PCA降维算法代码

2023-04-28 13:35:33 浏览数 (1)

PCA降维的算法的代码,可以使用sklearn进行直接进行调用,调用的代码如下: 将sklearn机器学习框架进行安装

代码语言:javascript复制
pip install sklearn

调用sklearn工具包用来进行PCA数据降维 导入矩阵与数组计算扩展包

代码语言:javascript复制
import numpy as np

定义标准化的函数

代码语言:javascript复制
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

代码语言:javascript复制
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]])

降维计算

代码语言:javascript复制
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

AI学习的道路上,一起学习进步~

0 人点赞