python主成分分析_主成分分析(PCA)Python代码实现

1. 随机生成3行*40列的数据集,每一列代表一个样本,前20列属于类1,后20列属于类2;每一个样本特征长度为3;2. 计算每行均值;3. 计算协方差矩阵,产生一个3行*3列的矩阵;4. 由协方差矩阵计算特征向量和特征值;5. 按降序排序特征值和特征向量;6. 选择第一主成分和第二主成分组成一个新的3行*2列的矩阵;7. 根据产生的3行*2列矩阵重建原有数据集。Python代码如下:# refe...
摘要由CSDN通过智能技术生成

1. 随机生成3行*40列的数据集,每一列代表一个样本,前20列属于类1,后20列属于类2;每一个样本特征长度为3;

2. 计算每行均值;

3. 计算协方差矩阵,产生一个3行*3列的矩阵;

4. 由协方差矩阵计算特征向量和特征值;

5. 按降序排序特征值和特征向量;

6. 选择第一主成分和第二主成分组成一个新的3行*2列的矩阵;

7. 根据产生的3行*2列矩阵重建原有数据集。

Python代码如下:

# reference: http://sebastianraschka.com/Articles/2014_pca_step_by_step.html

import numpy as np

from matplotlib import pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

from mpl_toolkits.mplot3d import proj3d

from matplotlib.patches import FancyArrowPatch

# 1. generate 40 3-dimensional samples randomly drawn from a multivariate Gaussian distribution

np.random.seed(1) # random seed for consistency

mu_vec1 = np.array([0,0,0])

cov_mat1 = np.array([[1,0,0],[0,1,0],[0,0,1]])

class1_sample = np.random.multivariate_normal(mu_vec1, cov_mat1, 20).T

assert class1_sample.shape == (3,20), "The matrix has not the dimensions 3x20"

#print("class1_sample:\n", class1_sample)

mu_vec2 = np.array([1,1,1])

cov_mat2 = np.array([[1,0,0],[0,1,0],[0,0,1]])

class2_sample = np.random.multivariate_

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值