主成分分析

机器学习笔记:主成分分析

匿名 (未验证) 提交于 2019-12-03 00:26:01
(1)使得数据集更易使用 (2)降低算法的计算开销 (3)去除噪声 (4)使得结果容易理解 3 PCA 去除平均值 计算协方差矩阵 计算协方差矩阵的特征值和特征向量 将特征值从大到小排序 保留最上面的前N个特征向量 将数据转换到上述N个特征向量构建的新空间中 def pca(dataMat, topNfeat=9999999): #如果没有第二个参数,就返回所有新的维度 meanVals = mean(dataMat, axis=0) meanRemoved = dataMat - meanVals #remove mean covMat = cov(meanRemoved, rowvar=0) eigVals,eigVects = linalg.eig(mat(covMat)) eigValInd = argsort(eigVals) #排序 eigValInd = eigValInd[:-(topNfeat+1):-1] #去除多余成分 redEigVects = eigVects[:,eigValInd] #逆序 lowDDataMat = meanRemoved * redEigVects #把数据转换到新的维度 reconMat = (lowDDataMat * redEigVects.T) + meanVals return lowDDataMat, reconMat

从零开始学习主成分分析

匿名 (未验证) 提交于 2019-12-03 00:22:01
前言 前段时间一个偶然的机会,在一个虫友的问题下留了自己的微信号,从那开始私信我的人络绎不绝,我翻看了网上许多大咖的博文,大家都各有侧重,有的偏向基础概念和实例应用,如:【机器学习】主成分分析详解(https://blog.csdn.net/lyl771857509/article/details/79435402);有的偏向于软件的操作(http://www.360doc.com/content/17/1210/16/37437963_711826540.shtml);还有的内容是错误的。同几位提问者的交流中,我发现往往来问问题的大都是没有什么计算机编程和数理统计基础的人。我想不妨自己做一个从软件安装到数据分析,再到最终结果展示的傻瓜式帖子,希望能对大家有所帮助。 准备工作 软件准备 下载地址:magnet:?xt=urn:btih:8264042A3852F48EFCF836B364A576062ADA5552; 安装方式:https://jingyan.baidu.com/article/dca1fa6fa26202f1a44052e8.html 按照上文安装步骤操作完毕后,还需要根据技术贴(https://blog.csdn.net/wangpengfei666/article/details/78584083?locationNum=1&fps=1

鸢尾花数据(PCA主成分分析)

匿名 (未验证) 提交于 2019-12-03 00:14:01
1.导包 2.提取数据 3.PCA降维 提取两个主成分的累计贡献率达到了0.9777,说明主成分的解释效果较好。 当参数n_components中不填写任何值时,默认返回min(X.shape)个特征。一般来说,样本量都会大于 特征数目,所以什么都不填就相当于转换了新特征空间,但没有减少特征的个数。一般不会使用 _components取值。 来源:博客园 作者: lvzw 链接:https://www.cnblogs.com/lvzw/p/11655902.html

数据处理方法归纳

非 Y 不嫁゛ 提交于 2019-12-01 18:52:24
https://blog.csdn.net/qq_19528953/article/details/78785818 一 介绍 对于数据处理来说,整个处理的流程如下图所示: 数据预处理——通常包括特征选择、维规约、规范化等方法。 数据挖掘——这部分的方法和技术非常多,在处理时主要根据自己的目的来选择对应的方法最为恰当。 数据后处理——主要包括模式过滤、可视化等,目的是为了让数据挖掘的结果利于使用和观察。 为了让大家有一个清晰的框架,后面内容的思维导图如下展示: 二 了解数据 数据处理最关键的地方在于解决问题,并不是使用的方法越复杂越好。无论方法多么简单,只要解决问题就是好的方法 。为了解决数据处理的相关问题, 第一步是观察数据,了解数据相关的概念 ,然后对数据进行一些处理。这样对后面具体使用哪个方法来进行分析非常有用。 2.1数据预处理 数据预处理对于后续使用数据挖掘或者机器学习技术非常重要。在面临大数据的当下,数据的维度通常非常的多,因此 数据预处理的一个主要任务就是降低数据维度 。 2.1.1维归约 所谓维归约,就是要减少数据的特征数目,摒弃掉不重要的特征,尽量只用少数的关键特征来描述数据。人们总是希望看到的现象主要是由少数的关键特征造成的,找到这些关键特征也是数据分析的目的。维归约中主要方法很多,下面介绍几个: (1)主成分分析 主成分分析是一种统计方法

PCA:主成分分析

和自甴很熟 提交于 2019-12-01 07:52:24
PCA的概念: 主要思想是将n维特征映射到k维上,这k维是全新的正交特征,这k维特征被称为主成分,在原数据的基础上重新构造出来k维。就是从原始的空间顺序的找出一组相互正交的坐标轴,新坐标轴的选择和数据本身有很大的关系。其中,第一个坐标轴是从原数据中方差最大的方向,第二个新坐标轴选择是与第一个坐标轴正交平面中使得方差最大的,第三个轴是与第一二轴正交的平面中方差最大的,依次类推。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。 PCA算法: 优点:降低数据的复杂性,识别最重要的多个特征 缺点:不一定需要, 可能损失有用信息 适用数据类型:数值型数据 数据集下载链接: http://archive.ics.uci.edu/ml/machine-learning-databases/ 在PCA中应用的数据集: http://archive.ics.uci.edu/ml/machine-learning-databases/ secom/ (1)打开数据集计算特征数目:(列为特征数)在secom数据集中一行代表一条数据

Sparse PCA 稀疏主成分分析

旧城冷巷雨未停 提交于 2019-12-01 01:25:42
Sparse PCA 稀疏主成分分析 2016-12-06 16:58:38 qilin2016 阅读数 15677 文章标签: 统计学习算法 更多 分类专栏: Machine Learning 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/zhoudi2010/article/details/53489319 SPCA原始文献: H. Zou (2006) Sparse principal component analysis PCA 可以参考: The Elements of Statistical Learning 第十四章 主成分分析的基本思想以及R的应用可以参考: 稀疏主成分分析与R应用 关于统计学习中的稀疏算法可以参考:Statistical learning with sparsity: the lasso and generalizations 一份很好的文档: http://www.cs.utexas.edu/~rashish/sparse_pca.pdf 首先直接来看算法: 令A初始化为V[,1:k],即为前k个principal components的loading vectors. 对于给定的 A = [ α 1 , … , α k ] A=

主成分分析(PCA)

别来无恙 提交于 2019-11-27 18:39:55
§1 基本思想 主成分分析试图在力保数据信息丢失最少的原则下,对这种多变量的截面数据进行最佳综合简化。也就是说,对高维变量空间进行降维处理。 研究指标体系的少数几个线性组合,并且这几个线性组合所构成的综合指标将尽可能多地保留原来指标变异方面的信息。这些综合指标就称为主成分。 §2 数学模型 假设我们所讨论的实际问题中,有p个指标,我们把这p个指标看作p个随机变量,记为X1,X2,…,Xp,主成分分析就是要把这p个指标的问题,转变为讨论p个指标的线性组合的问题,而这些新的指标F1,F2,…,Fk(k≤p),要求保留主要信息量的原则(即充分反映原指标的信息),并且相互独立。 这种由讨论多个指标降为少数几个综合指标的过程在数学上就叫做降维。主成分分析通常的做法是,寻求原指标的线性组合Fi。 §4 主成分分析优劣的判定标准 第一,尽量将更多变量压缩在第一主成分和第二主成分之内; 第二,第一主成分解释的信息能够超过 50%; 第三,第一主成分和第二主成分解释的信息总和超过 70%; 第四,第一主成分除以第二主成分的比值大于 3; 第五,用更少的主成分代表更多的变量。 来源: https://www.cnblogs.com/lvzw/p/11372360.html

PCA(主成分分析)原理,步骤详解以及应用

孤街浪徒 提交于 2019-11-27 18:21:39
主成分分析(PCA, Principal Component Analysis) 一个 非监督 的机器学习算法 主要用于数据的降维处理 通过降维,可以发现更便于人类理解的特征 其他应用:数据可视化,去噪等 主成分分析是尽可能地忠实再现原始重要信息的数据降维方法 原理推导: 如图,有一个二维的数据集,其特征分布于特征1和2两个方向 现在希望对数据进行降维处理,将数据压缩到一维,直观的我们可以想到将特征一或者特征二舍弃一个,可以得到这样的结果          ------- : 舍弃特征1之后         ------- : 舍弃特征2之后 可以看出,舍弃特征2保留特征1是一个较好的降维方案,此时点和点之间距离较大,拥有更高的可区分度 此时我们要想,肯定会有比这更好的方案,毕竟这太简单了 我们想象一下,能够找到这样的一条斜线w,将数据降维到w上(映射到w上)之后,能最好的保留原来的分布特征,且这些点分布在了一个轴上(斜线w)后点和点之间的距离也比之前的两种方案更加的大,此时的区分度也更加明显 思考: 如何找到让这个样本降维后间距最大的轴? 如何定义样本间距? 在统计学中,有一个直接的指标可以表示样本间的间距,那就是 方差 ( Variance ) 这样回过头来看思考1,问题就变成了: 找到一个轴,使得样本空间的所有点映射到这个轴之后,方差最大 求解这个轴的过程 将样例的均值归为0

PCA LDA降维测试

谁说胖子不能爱 提交于 2019-11-27 16:12:43
测试概述 该实验的目的是测试LDA(Linear Discriminant Analysis,线性判别分析)的降维效果(主要是训练时间),同时引入了PCA(Principal components analysis,主成分分析)作为比较。 程序比较简单,降维算法和训练算法均是调用python的sklearn库的函数,所有代码都在程序中给出。 每次使用相同数据集,通过三种不同方式测试,分别是直接训练、PCA降维后训练、LDA降维后训练。 文件说明 code 测试程序文件夹,内含LDA_test.py程序 dataset 测试数据集文件夹 output 测试结果截图文件夹 测试环境 操作系统 win10 64位 CPU AMD Ryzen 5 2600x 6-core 3.60GHz 内存 16GB IDE/编辑器 PyCharm Python版本 3.6 LDA_test.py代码 import numpy as np from pandas import read_csv import time from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.decomposition import PCA from sklearn.svm import SVC from

数模(11)---主成分分析法

*爱你&永不变心* 提交于 2019-11-27 07:43:03
SPSS---主成分分析法 主成分分析法简介 操作实例 主成分分析法简介 主成分分析(Principal Component Analysis,PCA),将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法。 主成分 :有原始指标综合形成的几个新指标。依据主成分所含信息量的大小成为第一主成分,第二主成分等等。 主成分与原始变量之间的关系: (1)主成分保留了原始变量绝大多数信息。 (2)主成分的个数大大少于原始变量的数目。 (3)各个主成分之间互不相关。 (4)每个主成分都是原始变量的线性组合。 操作实例 在spss中导入数据,选中分析->降维->因子… 把数据全部导入右边,描述选中系数,提取选中碎石图,得分选中因子得分矩阵。 方法一 : 得到主成分中每个指标中的系数 在spss中归一化,得到Zx1,zx2…,也是选中分析->描述统计->描述;选中将标准化值另存为变量。就得到归一化的值,然后用exel中得到的系数与归一化值相乘累加得到F1,F2…最得到F =(成分1占的比率/选取的成分总比率)/F1 + (成分2占的比率/选取的成分总比率)/F2 +…… 方法二 :此处唯一改变了系数 来源: https://blog.csdn.net/weixin_44831924/article/details/99555344