zoukankan      html  css  js  c++  java
  • PCA

    PCA数据降维

    概述

    降维的必要性

    1.多重共线性--预测变量之间相互关联。多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯。

    2.高维空间本身具有稀疏性。一维正态分布有68%的值落于正负标准差之间,而在十维空间上只有0.02%。

    3.过多的变量会妨碍查找规律的建立。

    4.仅在变量层面上分析可能会忽略变量之间的潜在联系。例如几个预测变量可能落入仅反映数据某一方面特征的一个组内。

    降维的目的:

    1.减少预测变量的个数

    2.确保这些变量是相互独立的

    3.提供一个框架来解释结果

    降维的方法有:主成分分析、因子分析、用户自定义复合等。

    PCA(Principal Component Analysis)不仅仅是对高维数据进行降维,更重要的是经过降维去除了噪声,发现了数据中的模式。

    PCA把原先的n个特征用数目更少的m个特征取代,新特征是旧特征的线性组合,这些线性组合最大化样本方差,尽量使新的m个特征互不相关。从旧特征到新特征的映射捕获数据中的固有变异性。

    算法

    样本X和样本Y的协方差(Covariance):

     

    协方差为正时说明X和Y是正相关关系,协方差为负时X和Y是负相关关系,协方差为0时X和Y相互独立。

    Cov(X,X)就是X的方差(Variance).

    当样本是n维数据时,它们的协方差实际上是协方差矩阵(对称方阵),方阵的边长是Cn2。比如对于3维数据(x,y,z),计算它的协方差就是:

     

    若AX=λX,则称λ是A的特征值,X是对应的特征向量。实际上可以这样理解:矩阵A作用在它的特征向量X上,仅仅使得X的长度发生了变化,缩放比例就是相应的特征值λλ。

    当A是n阶可逆矩阵时,A与P-1AP相似,相似矩阵具有相同的特征值。

    特别地,当A是对称矩阵时,A的奇异值等于A的特征值,存在正交矩阵Q(Q-1=QT),使得:

     

    对A进行奇异值分解就能求出所有特征值和Q矩阵。

    A∗Q=Q∗DA∗Q=Q∗D,D是由特征值组成的对角矩阵

    由特征值和特征向量的定义知,Q的列向量就是A的特征向量。

    PCA过程

    1.特征中心化。即每一维的数据都减去该维的均值。这里的“维”指的就是一个特征(或属性),变换之后每一维的均值都变成了0。很多数据挖掘的教材上都会讲到鹫尾花的例子,本文就拿它来做计算。原始数据是150×4的矩阵A:

    2.计算B的协方差矩阵C

    3.计算协方差矩阵C的特征值和特征向量。

    4.选取大的特征值对应的特征向量,得到新的数据集。

    特征值是由大到小排列的,前两个特征值的和已经超过了所有特征值之和的97%。我们取前两个特征值对应的特征向量,得到一个4×2的矩阵M。令A'150×2=A150×4M4×2,这样我们就把150×4的数据A集映射成了150×2的数据集A',特征由4个减到了2个。

    使用

    from sklearn.decomposition import PCA

    PCA(n_components=None, copy=True, whiten=False, svd_solver=’auto’, tol=0.0, iterated_power=’auto’, random_state=None)

    pca = PCA(n_components=2)

    X= pca.fit(X).transform(X)

  • 相关阅读:
    unomi漏洞复现
    xxl-job漏洞复现
    cgi漏洞复现
    celery漏洞复现
    bash漏洞复现
    学习ASP.NET的一些学习资源
    用EF DataBase First做一个简单的MVC3报名页面
    怎样在Word中插入代码并保持代码原始样式不变
    安装notepad++之后怎样在鼠标右键上加上Edit with notepad++
    安装Visual Studio 2010之后怎样安装MSDN Library
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10039085.html
Copyright © 2011-2022 走看看