主成分分析(PCA)

主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。在统计学中,主成分分析(principal components analysis,PCA)是一种简化数据集的技术。它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。

操作方法

  • 01

    主成分分析的目的在于降维,使用最少的数据来表示一个样本。让方差大的维度或者说特征来代表样本。

  • 02

    首先需要对数据进行标准化。 m=mean(data,axis=0) s=std(data,axis=0) data=(data-m)/s

  • 03

    获得协方差矩阵,用于计算变量间的关系。 获得主要变量及其组合。 c=cov(transpose(data)) eigvalues,eigvectors=linalg.eig(c) indexes=argsort(eigvalues) indexes=indexes[::-1] eigvectors=eigvectors[:,indexes] eigvalues=eigvalues[indexes] eigvectors=eigvectors[:,:k]

  • 04

    获得处理后的数据,以及计算方差累计值。 x=dot(transpose(eigvectors),transpose(data)) y=(transpose(dot(eigvectors,x))+m)*s print(sum(eigvalues[:k])/sum(eigvalues))

  • 05

    import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt from numpy import * x = random.normal(5,.5,1000) y = random.normal(3,1,1000) z=random.normal(0,1,1000) a = x*cos(pi/4) + y*sin(pi/4) b = -x*sin(pi/4) + y*cos(pi/4) c =- z*sin(pi/4) + -y*cos(pi/4) k=1 data=zeros((1000,3)) data[:,0]=a data[:,1]=b data[:,2]=c m=mean(data,axis=0) s=std(data,axis=0) data=(data-m)/s c=cov(transpose(data)) eigvalues,eigvectors=linalg.eig(c) indexes=argsort(eigvalues) indexes=indexes[::-1] eigvectors=eigvectors[:,indexes] eigvalues=eigvalues[indexes] eigvectors=eigvectors[:,:k] print(sum(eigvalues[:k])/sum(eigvalues)) x=dot(transpose(eigvectors),transpose(data)) y=(transpose(dot(eigvectors,x))+m)*s fig=plt.figure() ax=fig.add_subplot(111,projection='3d') ax.scatter(y[:,0],y[:,1],y[:,2],c='b',marker='o') ax.set_xlabel('X_label') ax.set_ylabel('Y_label') ax.set_zlabel('Z_label') plt.show() 代码演示,如上。包括数据生成的方法。

  • 06

    可以通过改变k值,变换数据,压缩数据。 可视化图形如下。

(0)

相关推荐

  • Origin做主成分分析

    主成分分析是数据处理常用的降维技术,利用它可以将复杂的数据简单化,也即寻找新的变量代替原来复杂的变量,从而达到降维的作用,在工程.农业.数据科学中广泛使用,那么如何用origin做PCA分析呢? 操作 ...

  • spss进行主成分分析图文完整教程

    问题与数据 01 我们要利用spss进行主成分分析,那我们先假设一个例子,这样便于大家理解和运用,这里的spss采用的英文版,如果看不懂英文的去看看有汉化的版本没,要做分析最好会用这个英文版. 假设某 ...

  • Win7系统怎么关闭烦人的程序兼容性助手PCA

    Win7系统中,“程序兼容性助手”真心让人感到烦躁,经常用弹窗提醒用户,当前程序可能存在兼容问题。事实上这些程序在系统兼容性上并不存在问题,对于你的正常使用根本不会造成任何影响,这时候你可以选择关闭这 ...

  • 怎样进行主成分分析

    主成分分析是常用的一类降维方法,是将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法,又称主分量分析.现在小编就带大家一起看一下主成分的操作方法 操作方法 01 打开spss,点击&q ...

  • 大数据分析-SPSS因子与主成分分析

    因子分析是一种数据简化的技术,通过研究众多变量之间的内部依赖关系,探求观测数据中的基本结构,并用少数几个假想变量来表示其基本的数据结构. 1.因子分析 01 1.因子分析 (1)主要思路:降维    ...

  • spss如何做主成分分析

    主成分分析的主要原理是寻找一个适当的线性变换: •将彼此相关的变量转变为彼此独立的新变量: •方差较大的几个新变量就能综合反应原多个变量所包含的主要信息: •新变量各自带有独特的专业含义. 住成分分析 ...

  • 华为三层交换机之间配置VLAN间路由

    在华为三层交换机上进行VLAN间路由的配置,主要就是创建VLAN,端口划分,三层VLAN接口地址配置,静态路由或是RIP协议配置。 静态路由配置过程: PCA:ip address:10.1.1.2/ ...

  • Win8/8.1程序兼容性助手功能的关闭小技巧

    用心的系统用户便会发觉系统从Vista开始便增加了一项“程序兼容性助手”,此兼容性功能在Win7、Win8,甚至在Win8.1出现。不能说这个功能不好,只是经常弹窗提示我们兼容性问题,而事实上我们的系 ...

  • Win8/Win8.1系统中怎么关闭"程序兼容性助手"功能(二选一)

    我们都知道从Vista开始,微软引入一项“程序兼容性助手”,分别历经Win7、Win8、Win8.1三代系统后,这个程序兼容助手依旧让我们不省心,经常时不时弹窗提醒用户,当前程序可能存在兼容问题。实际 ...