pcapython
A. python pca怎么得到主成份
一般步骤来实现PCA算法
(1)零均值化
假如原始数据集为矩阵dataMat,dataMat中每一行代表一个样本,每一列代表同一个特征。零均值化就是求每一列的平均值,然后该列上的所有数都减去这个均值。也就是说,这里零均值化是对每一个特征而言的,零均值化都,每个特征的均值变成0。实现代码如下:
[python]view plain
defzeroMean(dataMat):
meanVal=np.mean(dataMat,axis=0)#按列求均值,即求各个特征的均值
newData=dataMat-meanVal
returnnewData,meanVal
newData,meanVal=zeroMean(dataMat)
covMat=np.cov(newData,rowvar=0)
eigVals,eigVects=np.linalg.eig(np.mat(covMat))
eigValIndice=np.argsort(eigVals)#对特征值从小到大排序
n_eigValIndice=eigValIndice[-1:-(n+1):-1]#最大的n个特征值的下标
n_eigVect=eigVects[:,n_eigValIndice]#最大的n个特征值对应的特征向量
lowDDataMat=newData*n_eigVect#低维特征空间的数据
reconMat=(lowDDataMat*n_eigVect.T)+meanVal#重构数据
returnlowDDataMat,reconMat
函数中用numpy中的mean方法来求均值,axis=0表示按列求均值。
该函数返回两个变量,newData是零均值化后的数据,meanVal是每个特征的均值,是给后面重构数据用的。
(2)求协方差矩阵
[python]view plain
numpy中的cov函数用于求协方差矩阵,参数rowvar很重要!若rowvar=0,说明传入的数据一行代表一个样本,若非0,说明传入的数据一列代表一个样本。因为newData每一行代表一个样本,所以将rowvar设置为0。
covMat即所求的协方差矩阵。
(3)求特征值、特征矩阵
调用numpy中的线性代数模块linalg中的eig函数,可以直接由covMat求得特征值和特征向量:
[python]view plain
eigVals存放特征值,行向量。
eigVects存放特征向量,每一列带别一个特征向量。
特征值和特征向量是一一对应的
(4)保留主要的成分[即保留值比较大的前n个特征]
第三步得到了特征值向量eigVals,假设里面有m个特征值,我们可以对其排序,排在前面的n个特征值所对应的特征向量就是我们要保留的,它们组成了新的特征空间的一组基n_eigVect。将零均值化后的数据乘以n_eigVect就可以得到降维后的数据。代码如下:
[python]view plain
代码中有几点要说明一下,首先argsort对特征值是从小到大排序的,那么最大的n个特征值就排在后面,所以eigValIndice[-1:-(n+1):-1]就取出这个n个特征值对应的下标。【python里面,list[a:b:c]代表从下标a开始到b,步长为c。】
B. pca python ratio对应的是哪个特征
主要是用来降低数据集的维度,然后挑选出主要的特征。 原理简单,实现也简单。关于原理公式的推导,本文不会涉及,可以参考文献,也可以去Wikipedia,这里主要关注实现,算是锻炼一下自己。
C. python怎么数据进行pca
基本步骤:
对数据进行归一化处理(代码中并非这么做的,而是直接减去均值)
计算归一化后的数据集的协方差矩阵
计算协方差矩阵的特征值和特征向量
保留最重要的k个特征(通常k要小于n),也可以自己制定,也可以选择一个阈值,然后通过前k个特征值之和减去后面n-k个特征值之和大于这个阈值,则选择这个k
找出k个特征值对应的特征向量
将m * n的数据集乘以k个n维的特征向量的特征向量(n * k),得到最后降维的数据。
其实PCA的本质就是对角化协方差矩阵。有必要解释下为什么将特征值按从大到小排序后再选。首先,要明白特征值表示的是什么?在线性代数里面我们求过无数次了,那么它具体有什么意义呢?对一个n*n的对称矩阵进行分解,我们可以求出它的特征值和特征向量,就会产生n个n维的正交基,每个正交基会对应一个特征值。然后把矩阵投影到这N个基上,此时特征值的模就表示矩阵在该基的投影长度。
特征值越大,说明矩阵在对应的特征向量上的方差越大,样本点越离散,越容易区分,信息量也就越多。因此,特征值最大的对应的特征向量方向上所包含的信息量就越多,如果某几个特征值很小,那么就说明在该方向的信息量非常少,我们就可以删除小特征值对应方向的数据,只保留大特征值方向对应的数据,这样做以后数据量减小,但有用的信息量都保留下来了。PCA就是这个原理。
D. 用python怎么做方差分析的简单主效应分析
Tukey等多重检验容易报错,数据结构不一致
TypeError: Cannot cast array data from dtype('S11') to dtype('float64') according to the rule 'safe'
E. python如何实现pca分析
[coef,SCORE,latent] = princomp(A);
latentsum = sum(latent);
for i = 1:col%A的总列数
if sum(latent(1:i))/latentsum > threshold%阈值 eg:0.95
tranM = coef(:,1:i);
break;
end
end
B = A* tranM;
F. 请问怎么学习Python
分享Python学习路线:
第一阶段:Python基础与Linux数据库
这是Python的入门阶段,也是帮助零基础学员打好基础的重要阶段。你需要掌握Python基本语法规则及变量、逻辑控制、内置数据结构、文件操作、高级函数、模块、常用标准库模板、函数、异常处理、mysql使用、协程等知识点。
学习目标:掌握Python的基本语法,具备基础的编程能力;掌握Linux基本操作命令,掌握MySQL进阶内容,完成银行自动提款机系统实战、英汉词典、歌词解析器等项目。
第二阶段:web全栈
这一部分主要学习web前端相关技术,你需要掌握html、cssJavaScript、JQuery、Bootstrap、web开发基础、Vue、FIask Views、FIask模板、数据库操作、FIask配置等知识。
学习目标:掌握web前端技术内容,掌握web后端框架,熟练使用FIask、Tornado、Django,可以完成数据监控后台的项目。
第三阶段:数据分析+人工智能
这部分主要是学习爬虫相关的知识点,你需要掌握数据抓取、数据提取、数据存储、爬虫并发、动态网页抓取、scrapy框架、分布式爬虫、爬虫攻防、数据结构、算法等知识。
学习目标:可以掌握爬虫、数据采集,数据机构与算法进阶和人工智能技术。可以完成爬虫攻防、图片马赛克、电影推荐系统、地震预测、人工智能项目等阶段项目。
第四阶段:高级进阶
这是Python高级知识点,你需要学习项目开发流程、部署、高并发、性能调优、Go语言基础、区块链入门等内容。
学习目标:可以掌握自动化运维与区块链开发技术,可以完成自动化运维项目、区块链等项目。
按照上面的Python学习路线图学习完后,你基本上就可以成为一名合格的Python开发工程师。当然,想要快速成为企业竞聘的精英人才,你需要有好的老师指导,还要有较多的项目积累实战经验。
对于Python开发有兴趣的小伙伴们,不妨先从看看Python开发教程开始入门!B站上有很多的Python教学视频,从基础到高级的都有,还挺不错的,知识点讲的很细致,还有完整版的学习路线图。也可以自己去看看,下载学习试试。
G. 如何用python实现pca降维
首先2个包:
importnumpyasnp
fromsklearn.decompositionimportPCA
然后一个m x n 的矩阵,n为维度,这里设为x。
n_components = 12 是自己可以设的。
pca=PCA(n_components=12)
pca.fit(x)
PCA(=True,iterated_power='auto',n_components=12,random_state=None,
svd_solver='auto',tol=0.0,whiten=False)
float_formatter=lambdax:"%.2f"%x
np.set_printoptions(formatter={'float_kind':float_formatter})
print'explainedvarianceratio:'
printpca.explained_variance_ratio_
print'cumulativesum:'
printpca.explained_variance_ratio_.cumsum()
H. 如何用pca做人脸识别 python实现.带客户端的
基于特征脸(PCA)的人脸识别方法
特征脸方法是基于KL变换的人脸识别方法,KL变换是图像压缩的一种最优正交变换。高维的图像空间经过KL变换后得到一组新的正交基,保留其中重要的正交基,由这些基可以张成低维线性空间。如果假设人脸在这些低维线性空间的投影具有可分性,就可以将这些投影用作识别的特征矢量,这就是特征脸方法的基本思想。这些方法需要较多的训练样本,而且完全是基于图像灰度的统计特性的。目前有一些改进型的特征脸方法。
比如人脸灰度照片40x40=1600个像素点,用每个像素的灰度值组成的矩阵代表这个人的人脸。那么这个人人脸就要1600 个特征。拿一堆这样的样本过来做pca,抽取得到的只是在统计意义下能代表某个样本的几个特征。
人脸识别可以采用神经网 络深度学习的思路,国内的ColorReco在这边有比较多的案例。
I. python pca降维 自变量与因变量怎么关联
这里的定义略有混乱,与模式相关的学科定义的特征向量和数学里面定义的特征向量采取了同一个英文单词,在翻译过来以后也都翻译成了特征向量。数据挖掘技术恰好两个特征向量都用到了,所以很容易混淆。 如果你指得是数学里面的特征向量,