使用fbpca提取数据主成分(PCA)方向

fbpca 是Facebook 公司开源的 Fast Randomized PCA/SVD 工具(快速随机 PCA/SVD 算法分析)。fbpca由python语言编写,可以方便的用于深度学习的一些工程或者不方便使用MATLAB的工程中。本文主要介绍如何使用该工具分析数据的主成分,而不过多介绍PCA的原理。

fbpca在GitHub上的项目地址:https://github.com/facebookarchive/fbpca 

安装fbpca: 

pip install fbpca

 安装依赖

numpy>=1.9
scipy>=0.14

以下为一段示例代码,程序首先生成了一组二维数据,然后调用fbpca中的pca函数,计算出这组数据使用PCA降维后的结果,特征值与特征向量(新的基)

 

import numpy as np
import matplotlib.pyplot as plt
from fbpca import pca
# 生成仿真数据
noise = np.random.randn(20) / 5
xaxis = (np.random.rand(20) - 0.5) * 10
yaxis = -1.5*xaxis + noise
data = np.stack([xaxis, yaxis]).T
# 进行PCA降维分别输出:降维结果、特征值、特征向量
U, s, Va = pca(data, 2)
# 使用特征向量计算投影平面
t = np.linspace(-10,10,1000)
x = Va[0,0]  * t
y = Va[0,1]  * t
x0 = Va[1,1]  * t
y0 = Va[1,0]  * t
# 结果可视化
plt.figure()
plt.xlim(-5, 5)
plt.ylim(-5, 5)
plt.plot(x,y,color='r')
plt.plot(x0,y0,color='g')
plt.scatter(xaxis, yaxis)
plt.show()
实验结果可视化(蓝色为生成数据点,红线为数据主成分方向,绿线为主成分的垂线)
实验结果可视化(蓝色为生成数据点,红线为数据主成分方向,绿线为主成分的垂线)

 

 

修改函数pca中的第二个参数可以改变使用PCA降维后特征的维数,该参数必须小于数据的维数。

fbpca原文使用手册(包含奇异值分解等其他函数):https://fbpca.readthedocs.io/en/latest/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

果菌药

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值