PCA算法

主成分分析(Principal Component Analysis,PCA)是最常用的一种降维方法,通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理等。PCA可以把具有相关性的高维变量合成为线性无关的低维变量,称为主成分。主成分能够尽可能保留原始数据的信息。PCA的计算涉及到对协方差矩阵的理解,这篇博客提供了协方差矩阵的相关内容。PCA的算法过程:

直接用numpy实现PCA

import numpy as np

n = 2 # 取对应特征值最大的n个特征向量

data = np.random.rand(10, 5) # 生成10个样本,每个样本5个特征

mean = np.mean(data, axis=0) # 计算原始数据中每一列的均值,axis=0按列取均值

zeroCentred_data = data - mean # 数据中心化,使每个feature的均值为0

covMat = np.cov(zeroCentred_data, rowvar=False) # 计算协方差矩阵,rowvar=False表示数据的每一列代表一个feature

featValue, featVec = np.linalg.eig(covMat) # 计算协方差矩阵的特征值和特征向量

index = np.argsort(featValue) # 将特征值按从小到大排序,index是对应原featValue中的下标

n_index = index[-n:] # 取最大的n个特征值在原featValue中的下标

n_featVec = featVec[:, n_index] # 取最大的两维特征值对应的特征向量组成映射矩阵

low_dim_data = np.dot(zeroCentred_data, n_featVec) # 降维后的数据

下图可帮助理解:

调用sklearn库实现PCA

这篇博客介绍了sklearn中PCA函数的具体参数。

import numpy as np

from sklearn.decomposition import PCA

data = np.random.rand(10, 5) # 生成10个样本,每个样本5个特征

pca = PCA(n_components=2)

low_dim_data = pca.fit_transform(data) # 每个样本降为2维

参考资料

python实现pca降维_Python实现PCA降维相关推荐

  1. python实现pca降维_python实现PCA(主成分分析)降维

    PCA复杂的原理在这就不说了,可以去网上看看相关资料,说的都很好,在这我主要说一下实现的过程. PCA计算过程: 第一步:求均值.求平均值,然后对于所有的样例,都减去对应的均值 第二步:求特征协方差矩 ...

  2. 数学推导+纯Python实现机器学习算法26:PCA降维

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作为一种常见的多元统计分析方法,主成分分析法(Principal ...

  3. 【机器学习基础】数学推导+纯Python实现机器学习算法19:PCA降维

    Python机器学习算法实现 Author:louwill Machine Learning Lab 作为一种常见的多元统计分析方法,主成分分析法(Principal Component Analys ...

  4. python pca降维_机器学习的降维打击

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | SAMshare(id:SAMshare) 作者 | samshare "本次主要 ...

  5. python pca降维_MLK | 机器学习的降维quot;打击quot;

    "MLK,即Machine Learning Knowledge,本专栏在于对机器学习的重点知识做一次梳理,便于日后温习,内容主要来自于<百面机器学习>一书,结合自己的经验与思考 ...

  6. 机器学习入门与Python实战(十):数据降维PCA主成分分析

    目录 现实问题思考:金融股价预测 数据降维 为什么需要数据降维 数据降维最常用的方法:主成分分析(PCA) 知识巩固 Python实战:PCA+逻辑回归预测检查者是否患糖尿病 拓展学习 现实问题思考: ...

  7. 一文速学数模-降维模型(一)PCA(主成分分析法)原理以及应用+代码实现

    目录 前言 一.为什么需要PCA?(为什么要降维) 二.PCA简介 三.PCA算法推导 1.投影 2.基 3.基变换的矩阵表示 ​编辑 4.方差 5.协方差 6.协方差矩阵 7.特征值与特征向量 8. ...

  8. sklearn降维算法1 - 降维思想与PCA实现

    目录 1.概述 1.1 维度概念 2.PCA与SVD 2.1 降维实现 2.2 重要参数n_components 2.2.1 案例:高维数据的可视化 2.2.2 最大似然估计自选超参数 2.2.3 按 ...

  9. 数据降维--------主成分分析(PCA)算法原理和实现学习笔记

    1 主成分分析背景 '''PCA计算步骤(思想是把数据投影到方向向量使数据集的特征向量到方向向量的垂线长度最短) 1.去平均 2.计算协方差矩阵 3.计算协方差矩阵的特征向量和特征值 4.将特征值从小 ...

最新文章

  1. python argparser模块的相关使用
  2. 机械硬盘旋转时间_详解硬盘转速5400转和7200转的区别
  3. c rs232 mysql_C++操作mysql方法总结(2)
  4. how is CRM One Order date range finally converted to OPEN SQL
  5. 2020哔哩哔哩流量生态白皮书:流量趋势与up主生存状况调研
  6. 冰点文库下载器2021新版 v3.2.16
  7. 图观小课堂知识点——场景编辑器
  8. 关于excel表格直接引用和间接引用
  9. 【收藏】40 个学术网站,满足科研文献需求!
  10. vue生命周期是什么?
  11. 对团队中“这是某某某的问题”引起的思考
  12. python获取json数据,快速生成excel
  13. spring诸如方式_一个简单的步进器,具有诸如下一步,返回和结束之类的简单动作,可以执行简单的表格
  14. 7z001怎么解压在安卓手机上面_安卓手机时间怎么显示在中间 时间居中设置教程...
  15. C语言--Union类型的使用方法
  16. 拼多多关键词的排名是怎么查?拼多多排名规则
  17. 重启计算机怎么一键还原系统还原,小编教你电脑怎么一键还原系统
  18. android 2.2(froyo)源码下载
  19. PAT乙级2021秋季复盘
  20. AutoHotkey2的helloworld

热门文章

  1. matlab绘图坐标轴字体_绘图时,如何将坐标轴及legend字体设置为times new Roman
  2. 页面上拉加载数据(也就是上拉实现分页)
  3. IAP+APP程序拼接方法
  4. 别再用定时任务来关闭超时订单了
  5. Windows------windows迅速查看电脑的mac地址
  6. 游戏制作人是怎样炼成?
  7. CUDA编程基础知识整理
  8. 如何查看/设置git的用户名和密码
  9. Cglib动态代理-MethodInterceptor的简单使用(转载)
  10. 关于社保卡发放进度的查询方式