PCA(主成分分析)降维的概念、作用及算法实现
1、PCA降维的概念
Principal Component Analysis(PCA):主成分分析法,是最常用的线性降维方法。它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,即把原先的n个特征用数目更少的m个特征取代,新特征是旧特征的线性组合。并期望在所投影的维度上数据的方差最大,尽量使新的m个特征互不相关。从旧特征到新特征的映射捕获数据中的固有变异性。以此使用较少的数据维度,同时保留住较多的原数据点的特性。
PCA的思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征。这k维特征称为主成分,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。
2、PCA降维的作用
①、数据在低维下更容易处理、更容易使用;
②、相关特征容易在数据中明确的显示出来,例如:两维、三维数据,能进行可视化展示;
③、去除数据噪声
④、降低算法开销
3、PCA降维的计算步骤
下面一起通过PCA方法把二维数据降成一维来熟悉PCA降维的计算步骤。
原数据如下:
①、计算样本均值
②、用样本数据减去样本均值
运算结果如下:
③、计算数据的主成分。
矩阵的主成分是其协方差矩阵的特征向量按照对应的特征值大小排序得到的。主成分可以通过两种方法计算:第一种方法是计算数据协方差矩阵。因为协方差矩阵是方阵,所以我们可以用前面的方法计算特征值和特征向量。第二种方法是用数据矩阵的奇异值分解(singular value decomposition)来找协方差矩阵的特征向量和特征值的平方根。
上述数据集的解释变量协方差矩阵如下:
用前面介绍过的方法,特征值是1.25057433和0.03398123,单位特征向量是:
下面我们把数据映射到主成分上。第一主成分是最大特征值对应的特征向量,因此我们要建一个转换矩阵,它的每一列都是主成分的特征向量。如果我们要把5维数据降成3维,那么我们就要用一个3维矩阵做转换矩阵。在本例中,我们将把我们的二维数据映射成一维,因此我们只需要用特征向量中的第一主成分作为转换矩阵。最后,我们用数据矩阵右乘转换矩阵。
下面就是第一主成分映射的结果:
4、PCA降维的代码实现及结果
Python代码实现如下:
import numpy as np
x = np.mat([[ 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]])
x = x.T
T = x - x.mean(axis=0)
C = np.cov(x.T)
w,v = np.linalg.eig(C)
v_ = np.mat(v[:,0]) #每个特征值对应的是特征矩阵的每个列向量
v_ = v_.T #默认以行向量保存,转换成公式中的列向量形式
y = T * v_
print(y)
运行结果如下:
5、参考资料:
https://www.imooc.com/article/44218
https://blog.csdn.net/HLBoy_happy/article/details/77146012
PCA(主成分分析)降维的概念、作用及算法实现相关推荐
- 【数学与算法】PCA主成分分析(降维)的通俗理解
1.PCA降维 PCA主成分分析简单的理解,就是把某物的很多个能直接获取到的特征,经过变换得到很多个新特征,这些新特征对该物体来说,有的影响很大,有的影响很小,只需要使用这些影响大的新特征,舍弃很多影 ...
- 数据降维:PCA主成分分析降维示例及函数参数解释
文章目录 主成分分析(PCA)介绍 PCA转化步骤 PCA示例 sklearn中的PCA PCA优缺点 优点 缺点 主成分分析(PCA)介绍 PCA也被叫做卡尔胡宁-勒夫转换(KLT),是一种用户在高 ...
- [学习笔记] [机器学习] 8. 聚类算法(聚类算法:K-means、K-means++;聚类算法评估;特征降维:特征选择(Pearson相关系数、Spearman相关系数)、PCA主成分分析)
视频链接 数据集下载地址:无需下载 1. 聚类算法简介 学习目标: 掌握聚类算法实现过程 知道 K-means 算法原理 知道聚类算法中的评估模型 说明 K-means 的优缺点 了解聚类中的算法优化 ...
- 机器学习经典算法之PCA主成分分析
PCA主成分分析法简介 主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数 ...
- pca主成分分析_降维:主成分分析(PCA)
用于降维的PCA算法的设计原理及其从头开始在Python中的实现 介绍 借助高性能CPU和GPU的可用性,几乎可以使用机器学习和深度学习模型解决所有回归,分类,聚类和其他相关问题.但是,在开发此类模型 ...
- pca各个向量之间的相关度_机器学习十大经典算法之PCA主成分分析
PCA主成分分析法简介 主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数 ...
- PCA主成分分析 特征降维 opencv实现
最近对PCA主成分分析做了一定的了解,对PCA基础和简单的代码做了小小的总结 有很多博客都做了详细的介绍,这里也参考了这些大神的成果: http://blog.sina.com.cn/s/blog_7 ...
- Python实现主成分分析(PCA)降维:原理及实例分析
转载文章:Python实现主成分分析(PCA)降维:原理及实例分析 简介 降维是由一些问题带来的: 可以缓解由维度诅咒(高维)带来的问题: 可以用来压缩数据,将损失数据最小化: 可以将高维数据降到低维 ...
- PCA主成分分析算法专题【Python机器学习系列(十五)】
PCA主成分分析算法专题[Python机器学习系列(十五)] 文章目录 1. PCA简介 2. python 实现 鸢尾花数据集PCA降维 3. sklearn库实现 鸢尾花数据集PCA降维案例 ...
最新文章
- vba excel 开发游戏_为什么要学习VBA?
- 自学python爬虫要多久-入门Python爬虫要学习多久?
- 微型计算机 2018 5月,现在是2018年,我的电脑最近总是弹出说有重要更新,提示自2017年5月9日后,microsoft - Microsoft Community...
- python3精要(43)--变量注释
- php robots.txt,robots.txt的写法
- 开发中为什么使用线程池的原因
- 解决import tensorflow时的报错 Passing (type, 1) or ‘1type‘ as a synonym of type is deprecate
- apache 禁止trace或track防止xss***
- unity调用php,unity访问php
- Python开发过程中17个坑
- IntelliJ IDEA 2020.1 首个稳定版重磅发布!
- android computescroll_【Android】Scroller分析
- 在Linux中,用.swp文件恢复未保存的文件
- 唯唯码 - ios/android的app下载地址合并为一个二维码
- 修改植物大战僵尸游戏存档
- python 利用matplolib给绘制的地图添加方框,将所需的区域圈出来
- ecg信号越界_ECG信号处理
- V8 堆外内存 ArrayBuffer 垃圾回收的实现
- ik php分词,IK中文分词的配置和使用
- JAVA校园二手交易系统毕业设计 开题报告
热门文章
- python商品评论分析_亚马逊产品情感评论分析
- python pip安装提示Consider using the `--user` option or check the permissions.
- angular创建组件命令
- rpython求随机数代码4段5个字符_如何创建一个4位数的随机数并将其存储为变量...
- java jediscluster_方便jediscluster操作的工具类
- 轻松搞定面试中的红黑树问题
- 谈一谈CMU导师和学生的互动方式
- CUDA系列学习(四)Parallel Task类型 与 Memory Allocation
- 高等数学:第二章 导数与微分(3)函数微分 近似计算
- Stanford UFLDL教程 线性解码器