美文网首页
主成份分析

主成份分析

作者: 何老板 | 来源:发表于2018-02-03 16:22 被阅读0次

    概念

    主成份分析(PCA)是一种维度归约的技术。
    (维度规约:把高维数据转换成低维数据的。)

    涉及的其他概念

    1. 数据标准化处理
    2. 计算相关系数(矩阵)、协方差cov,
      【知乎】如何通俗易懂地解释「协方差」与「相关系数」的概念?https://www.zhihu.com/question/20852004
    3. 特征根
    4. 特征向量
    5. 矩阵方程求解

    用途

    用较少的变量去解释原始数据中的大部分变量,将许多相关性很高的变量转化成彼此相互独立或不相关的变量。

    计算步骤

    1.设原始变量为数据矩阵X(n,P),共n条记录,P个属性(列)。
    2.将矩阵X按列进行中心标准化,继续记为X(z-score 标准化)。


    3.按列计算相关系数矩阵,记为R。
    相关系数 = 协方差xy / (样本标准差x样本标准差y)
    相关系数计算公式
    1. 求R的特征方程|R-λE|=0 的特征根 λ1≥λ2≥λp>0
    2. 确定主成份个数m。
      分子为第1-第m个特征值的和
      分母为所有特征值的和
      分子/分母>a,一般a去80%。即这m个主成份可以概括80%的信息。
    3. 计算m个相应的单位特征向量:
      把上面m个λ代入方程,求(R-λE)β=0的解,
      得β1、β2、β3..βm
    4. 计算主成份:
      Zi= Xβ,i=1,2,3...m

    对计算步骤的理解

    1. 过程如上,首先对矩阵数据进行标准化转换,提升模型的精度。
    2. 对标准化后的矩阵数据,求出每一条记录中两两属性列之间的相关系数。
    3. 由于原矩阵可以分解成特征值Λ及特征向量U。所以计算出相关系数矩阵的所有特征根,这所有的特征根(以及相应的特征向量),包含了100%的数据变量信息。
    4. 把特征根从大到小排序求和,取m个特征值,目的是为了概括80%~90%的信息。
    5. 计算出对应的单位特征向量。
    6. 计算主成份。

    python中如何做主成份分析

    在python中,主成份分析的函数在Scikit-Learn下:
    sklearn.decomposition.PCA

    from sklearn.decomposition import PCA
    
    pca = PCA()
    pca.fit(data)
    pca.components_ #返回模型的各个特征向量(原始数据)
    pca.explained_variance_ratio_ # 返回各个成分各自的方差百分比(贡献率)
    # 根据以上贡献率,选取前n个主成份,累积贡献率达到95%左右。然后重新建立模型
    pca = PCA(3)#这里假设前3个主成份已经足够代表数据集的大部分信息。
    pca.fit(data)
    low_d = pca.transform(data) #计算出主成份结果。
    #到这里位置,原始数据已经从8维降到了3个维度,同时这三个维度占了原始数据大部分的信息。
    
    

    相关文章

      网友评论

          本文标题:主成份分析

          本文链接:https://www.haomeiwen.com/subject/itquzxtx.html