[机器学习之13]降维技术——主成分分析PCA
始终贯彻数据分析的一个大问题就是对数据和结果的展示,我们都知道在低维度下数据处理比较方便,因而数据进行简化成为了一个重要的技术。对数据进行简化的原因:
1.使得数据集更易用使用。2、降低很多算法的计算开销。3、去除噪音、4.使得结果易懂
这里我们关心的数据降维技术为主成分分析(PCA)。在PCA中,数据原来的坐标系转换成了新的坐标系,新的坐标系是由数据本身决定的。第一个新的坐标轴的选择是原始数据中方差最大的方向,第二个新的坐标轴的选择和第一个坐标轴正交且具有最大方差方向。这个过程一直重复,重复次数为原始数据中的特征的数目。我们会发现大部分方差都包含在最前面的几个新的坐标轴中,因此可以忽略剩下的坐标轴,即完成降维操作。
第一个主成分就是从数据差异性最大(方差最大)的方向提取出来的,第二个主成分则来自于数据差异性次大的方向,并且该方向与第一个主成分是正交的。通过数据集的协方差及其特征值分析,我们就可以求得这些主成分的值。一旦得到协方差矩阵的特征值,我们就可以保留最大的N个值。这些特征向量也给出了N个最重要特征的真实结构。
ps:特征值分析:学过线性代数的都知道,特征值通过该数据的一般格式来揭示数据的‘真实’特征。 在Av=βv中,v是特征向量,β是特征值。
用Python实现PCA的伪代码如下:
将数据转换成前N个主成分的伪代码如下:
去除平均值
计算协方差矩阵
计算协方差矩阵的特征值和特征向量
将特征值从小到大排列
保留最上面的N个特征向量
将数据装换到上述N个特征向量构建的新空间内
def pca(dataMat,topNfeat=9999999):
meanVals=mean(dataMat,axis=0) ##平均值
meanRemoved=dataMat-meanVals
covMat=cov(meanRemoved,rowvar=0) ###协方差矩阵
eigVals,eigVects=lg.eig(mat(covMat)) ###特征向量 特征值
eigValsInd=argsort(eigVals) ###特征值进行排序
eigValsInd=eigValsInd[:-(topNfeat+1):-1] ###返回前N个
redEigVects=eigVects[:,eigValsInd]
lowDDataMat=meanRemoved*redEigVects ####降维后的数据
reconMat=(lowDDataMat*redEigVects.T)+meanVals
return lowDDataMat,reconMat
用该代码运行一个由1000个数据点组成的数据集
dataMat=loadDataSet('testSet.txt')
lowDMat,reconMat=pca(dataMat,2)
# print(shape(lowDMat))
fig=plt.figure()
ax=fig.add_subplot(111)
ax.scatter(dataMat[:,0].flatten().A[0],dataMat[:,1].flatten().A[0],marker='^',s=90,color='g')
ax.scatter(reconMat[:,0].flatten().A[0],reconMat[:,1].flatten().A[0],marker='o',s=50,color='r')
plt.show()
aaarticlea/png;base64,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" alt="" />
可以看出将数据集中在一维上,且这一维数据包含着全部数据集的主要信息。
PCA现阶段是一个很成熟的技术,在著名的SKlearn库中也包含了该方法。
使用时导入:from sklearn.decomposition import PCA 具体方法见链接:PCA
[机器学习之13]降维技术——主成分分析PCA的更多相关文章
- 机器学习笔记----四大降维方法之PCA(内带python及matlab实现)
大家看了之后,可以点一波关注或者推荐一下,以后我也会尽心尽力地写出好的文章和大家分享. 本文先导:在我们平时看NBA的时候,可能我们只关心球员是否能把球打进,而不太关心这个球的颜色,品牌,只要有3D效 ...
- coursera机器学习-聚类,降维,主成分分析
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- 【降维】主成分分析PCA推导
本博客根据 百面机器学习,算法工程师带你去面试 一书总结归纳,公式都是出自该书. 本博客仅为个人总结学习,非商业用途,侵删. 网址 http://www.ptpress.com.cn 目录: PCA最 ...
- 第十三章:降维:主成分分析PCA
- spark机器学习从0到1主成分分析-PCA (八)
PCA 一.概念 主成分分析(Principal Component Analysis)是指将多个变量通过线性变换以选出较少数重要变量的一种多元统计分析方法,又称为主成分分析.在实际应用场合中,为 ...
- 机器学习降维方法概括, LASSO参数缩减、主成分分析PCA、小波分析、线性判别LDA、拉普拉斯映射、深度学习SparseAutoEncoder、矩阵奇异值分解SVD、LLE局部线性嵌入、Isomap等距映射
机器学习降维方法概括 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u014772862/article/details/52335970 最近 ...
- 一步步教你轻松学主成分分析PCA降维算法
一步步教你轻松学主成分分析PCA降维算法 (白宁超 2018年10月22日10:14:18) 摘要:主成分分析(英语:Principal components analysis,PCA)是一种分析.简 ...
- 机器学习算法-PCA降维技术
机器学习算法-PCA降维 一.引言 在实际的数据分析问题中我们遇到的问题通常有较高维数的特征,在进行实际的数据分析的时候,我们并不会将所有的特征都用于算法的训练,而是挑选出我们认为可能对目标有影响的特 ...
- 机器学习课程-第8周-降维(Dimensionality Reduction)—主成分分析(PCA)
1. 动机一:数据压缩 第二种类型的 无监督学习问题,称为 降维.有几个不同的的原因使你可能想要做降维.一是数据压缩,数据压缩不仅允许我们压缩数据,因而使用较少的计算机内存或磁盘空间,但它也让我们加快 ...
随机推荐
- 如何修改svn的密码或重新输入用户名密码
在Eclipse 使用SVN 的过程中大多数人往往习惯把访问SVN 的用户名密码自动保存起来以便下次自动使用,不要再次手工输入,而此时(自动保存密码后),svn又不存在一个显式的登陆框了,但是有些时候 ...
- SVG 2D入门4 - 笔画与填充
前面我们重点都在总结各类形状,文本和图片,接下来,我们还是和讨论canvas一样,总结一下颜色处理,也就是填充和边框效果:你会发现这里的内容与canvas基本上是一致的.这些属性既可以以属性的形式写在 ...
- powerdesigner的学习
1 powerdesigner的层次 使用过eclipse作为java开发的都知道,workspace是顶级目录,一次只能打开一个,project是项目,位于workspace中,一个workspa ...
- yii2 单页面增删改
视图层 <style>#tab tr td{ height:40px; width:100px;}</style><form action="ind ...
- 解决关于打开plist文件乱码问题,plist转换为xml文件的txt文件!
自己是程序员,干嘛不自己写代码完成?下载工具还不一定管用!具体解决方案如下: 1,获得内容 NSArray *dictionary = [NSArray arrayWithContentsOfFile ...
- css 设置样式
前台div <div id="DIV1" runat="server" > </div> 后台: this.DIV1.Style.Val ...
- magento 全页缓存
全页缓存能极大的提高网页的响应速率,但magento社区的商用全页缓存工具都很贵,但是有一款免费的叫ezzoom,虽然免费但是功能强大,能够对产品.分类.特定模块进行缓存,还支持页面某些部分的动态加载 ...
- CUDA 标准编程模式
前言 本文将介绍 CUDA 编程的基本模式,所有 CUDA 程序都基于此模式编写,即使是调用库,库的底层也是这个模式实现的. 模式描述 1. 定义需要在 device 端执行的核函数.( 函数声明前加 ...
- pthread的线程安全性
pthread不一定能够保证线程安全性,特别是在开启编译器优化的情况下,某些编译器优化很可能破坏pthread的线程安全性. 由于不同的编译器可能有不同的优化技术,所以pthread的实现与编译器有很 ...
- db2 字符串转换 数字
今天使用聚合函数的时候 发现 varchar类型的是不可用的,所以呢就开始想办法解决 用到了转换函数cast(s.score as bigint) 然后有一个问题就是如果数据为空的话就会发生转换错误. ...