机器学习实践之利用PCA简化数据

     本文根据最近学习机器学习书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过。

一、概述

1、相关背景

       在日常生活中,我们通过电视观看足球比赛,足球显示在电视屏幕上。这里,显示器大概包含100万像素,而球包含的像素较少,一般一千像素左右。通常在这里体育比赛中,我们要了解比赛的进展,就会关注给定时刻球的位置。所以,这里,我们实时地将显示器上的百万像素转换成为了一个三维图像,该图像给出了运动场上球的位置。这时,我们不经意间已经将数据从100百万降至三维。

        在上面这个观看足球比赛电视转播的过程中,我们实际面对的原本是百万像素的数据,但只有球的三维位置才最重要,这就被成为降维(dimensionality reduction)。将百万数据值降到了只有三个相关值。在低维下,数据更容易处理。另外,相关特征可能在数据中明确地显示出来。一般情况下,在应用机器学习算法之前,必须先识别出其相关特征。

         在降维中,我们对数据进行了预处理,然后,采用其他机器学习技术对其进行出来。

2、降维技术相关概念

           在数据处理过程中,一个难题就是数据和结果的展示,有时我们会显示三维图像或只显示其相关特征,但数据往往拥有超出显示能力的更多特征。数据显示并非大规模特征下的唯一难题,对数据进行简化还有如下一系列因素考虑:

  •    使得数据集更易使用;

  • 降低很多算法的计算开销;

  • 去除噪声;

  • 使得结果易懂。

          下面所要介绍的3种降维技术中,PCA目前应用最广泛,因此本文主要关注PCA技术应用情况。

1)、主成分分析(Principal Component Analysis, PCA)

  •         通俗理解:就是找出一个最主要的特征,然后进行分析。

  •         例如: 考察一个人的智力情况,就直接看数学成绩就行(存在:数学、语文、英语成绩)

 2)、   因子分析(Factor Analysis)

  •         通俗理解:将多个实测变量转换为少数几个综合指标。它反映一种降维的思想,通过降维将相关性高的变量聚在一起,从而减少需要分析的变量的数量,而减少问题分析的复杂性

  •         例如: 考察一个人的整体情况,就直接组合3样成绩(隐变量),看平均成绩就行(存在:数学、语文、英语成绩)

  •         应用的领域:社会科学、金融和其他领域

              在因子分析中,我们

  •             假设观察数据的成分中有一些观察不到的隐变量(latent variable)。

  •             假设观察数据是这些隐变量和某些噪音的线性组合。

  •             那么隐变量的数据可能比观察数据的数目少,也就说通过找到隐变量就可以实现数据的降维。

       3)、 独立成分分析(Independ Component Analysis, ICA)

  •         通俗理解:ICA 认为观测信号是若干个独立信号的线性组合,ICA 要做的是一个解混过程。

  •         例如:我们去ktv唱歌,想辨别唱的是什么歌曲?ICA 是观察发现是原唱唱的一首歌【2个独立的声音(原唱/主唱)】。

  •         ICA 是假设数据是从 N 个数据源混合组成的,这一点和因子分析有些类似,这些数据源之间在统计上是相互独立的,而在 PCA 中只假设数据是不相关(线性关系)的。

  •         同因子分析一样,如果数据源的数目少于观察数据的数目,则可以实现降维过程。

二、PCA技术

1、PCA概述

          主成分分析(Principal Component Analysis, PCA):通俗理解:就是找出一个最主要的特征,然后进行分析。

2、PCA原理

       2.1 PCA基本原理

  • 找出第一个主成分的方向,也就是数据 方差最大 的方向。

  •  找出第二个主成分的方向,也就是数据 方差次大 的方向,并且该方向与第一个主成分方向 正交(orthogonal 如果是二维空间就叫垂直)。通过这种方式计算出所有的主成分方向。

  • 通过数据集的协方差矩阵及其特征值分析,我们就可以得到这些主成分的值。

  • 一旦得到了协方差矩阵的特征值和特征向量,我们就可以保留最大的 N 个特征。这些特征向量也给出了 N 个最重要特征的真实结构,我们就可以通过将数据乘上这 N 个特征向量 从而将它转换到新的空间上。

            之所以要求是正交,是因为:

  •     正交是为了数据有效性损失最小;

  • 正交的一个原因是特征值的特征向量是正交的。

        例如,见下图

         通过PCA进行降维处理,我们就可以同时获得SVM和决策树的优点:一方面,得到了和决策树一样简单的分类器,同时分类间隔和SVM — 样好。考察图13-2中下面的图,其中的数据来自于上面的图并经PCA转换之后绘制而成的。如果仅使用原始数据,那么这里的间隔会比决策树的间隔更大。另外,由于只需要考虑一维信息,因此数据就可以通过比SVM简单得多的很容易采用的规则进行区分。

 

     

      在图13-2中,我们只需要一维信息即可,因为另一维信息只是对分类缺乏贡献的噪声数据。在二维平面下,这一点看上去微不足道,但是如果在高维空间下则意义重大。
          我们已经对PCA的基本过程做出了简单的阐述,接下来就可以通过代码来实PCA过程。前面我曾提到的第一个主成分就是从数据差异性最大(即方差最大)的方 向提取出来的,第二个主成分则来自于数据差异性次大的方向,并且该方向与第一个主成分方向正交。通过数据集的协方差矩阵及其特征值分析,我们就可以求得这 些主成分的值。
         一旦得到了协方差矩阵的特征向量,我们就可以保留最大的N个值。这些特征向量也给出了个最重要特征的真实结构。我们可以通过将数据乘上这N个特征向量而将它转换到新的空间。

2.2 PCA优缺点

        1)、优点:降低数据的复杂性,识别最重要的多个特征;

        2)、缺点:不一定需要,且可能损失有用的信息;

       3)、适用数据类型:数值型数据。

  三、示例一:在Numpy中实现PCA

   1、将数据转换成前N个主成分的伪代码如下

  •           去除平均值

  •          计算协方差矩阵

  •          计算协方差矩阵的特征值和特征向量

  •          将特征值从大到小排序

  •          保留最上面的N个特征向量

  •         将数据转换到上述N个特征向量构建的新空间中

2、样本数据格式

        文件名:secom.data

       文本文件数据格式如下:

9.334379	8.471268
7.963186	6.731333
8.244973	9.013785
9.569196	10.568949
8.854793	9.076536
9.382171	7.240862
8.179055	8.944502
8.267896	8.797017
9.047165	8.725068
8.741043	7.901385

   3、实现过程如下

from numpy import *

def loadDataSet(fileName, delim='\t'):
    fr = open(fileName)
   
    stringArr = [line.strip().split(delim) for line in fr.readlines()]
  
    datArr = [list(map(float,line)) for line in stringArr]
    return mat(datArr)

def pca(dataMat, topNfeat=9999999):
    
    meanVals = mean(dataMat, axis=0)
  
    meanRemoved = dataMat - meanVals 
  
    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

     输入

dataMat = loadDataSet('testSet.txt')
lowDMat, reconMat = pca(dataMat, 1)
shape(lowDMat)

      输出

(1000, 1)

       输入 

import matplotlib
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(dataMat[:,0].flatten().A[0],dataMat[:,1].flatten().A[0],\
           marker ='^')
ax.scatter(reconMat[:,0].flatten().A[0],reconMat[:,1].flatten().\
           A[0],marker='o' , s =50,c='red')
plt.show()

          输出图像如下

  

           如果  lowDMat, reconMat = pca(dataMat, 1) 换成 lowFMat, reconMat = pca(dataMat,2),按照上面同样的输入,输出的图像如下

四、 示例二:利用PCA对半导体制造数据降维

1、项目背景

          半导体是在一些极为先进的工厂中制造出来的。工厂或制造设备不仅需要花费上亿美元,且还需要大量工人。制造设备仅在几年内保持先进性,随后必须被更换掉了。在设备生命周期有限,花费又极其巨大的情况下,制造过程中的每一秒价值都是巨大的。如果制造过程中存在瑕疵,我们必须尽早发现,从而确保宝贵的时间不会被浪费在缺陷产品的生产上。

             一些工程上通用的解决方案是通过早期测试和频繁测试来发现现有缺陷的产品,但仍会有一些存在瑕疵的产品通过了测试。若使用机器学习技术能够用于进一步减少错误,则会为制造商节省大量的资金。

            下面我们将考察上面任务中的数据集,而它也比前面使用的数据集更大,且包含了许多特征。

          本次数据包含很多的缺失值。这些缺失值是以NaN (Not a Number的缩写)标识的。对于这些缺失值,我们有一些处理办法(参考第5章)。在590个特征下,几乎所有样本都有NAN,因此去除不完整的样本不太现实。尽管我们可以将所有的NAN替换成0 ,但是由于并不知道这些值的意义,所以这样做是个下策。如果它们是开氏温度,那么将它们置成0这种处理策略就太差劲了。下面我们用平均值来代替缺失值,平均值根据那些非NAN得到。

2、实现过程及输出结果

def replaceNanWithMean():
    datMat = loadDataSet('secom.data', ' ')
    numFeat = shape(datMat)[1]
    for i in range(numFeat):
        # 对value不为NaN的求均值
        # .A 返回矩阵基于的数组
        meanVal = mean(datMat[nonzero(~isnan(datMat[:, i].A))[0], i])
        # 将value为NaN的值赋值为均值
        datMat[nonzero(isnan(datMat[:, i].A))[0],i] = meanVal
    return datMat

输入

dataMat = replaceNanWithMean()
meanVals = mean(dataMat, axis=0)
meanRemoved = dataMat - meanVals
covMat = cov(meanRemoved, rowvar = 0)
eigVals, eigVects = linalg.eig(mat(covMat))
eigVals

输出结果为

array([  5.34151979e+07,   2.17466719e+07,   8.24837662e+06,
         2.07388086e+06,   1.31540439e+06,   4.67693557e+05,
         2.90863555e+05,   2.83668601e+05,   2.37155830e+05,
         2.08513836e+05,   1.96098849e+05,   1.86856549e+05,
         1.52422354e+05,   1.13215032e+05,   1.08493848e+05,
         1.02849533e+05,   1.00166164e+05,   8.33473762e+04,
         8.15850591e+04,   7.76560524e+04,   6.66060410e+04,
         6.52620058e+04,   5.96776503e+04,   5.16269933e+04,
         5.03324580e+04,   4.54661746e+04,   4.41914029e+04,
         4.15532551e+04,   3.55294040e+04,   3.31436743e+04,
         2.67385181e+04,   1.47123429e+04,   1.44089194e+04,
         1.09321187e+04,   1.04841308e+04,   9.48876548e+03,
         8.34665462e+03,   7.22765535e+03,   5.34196392e+03,
         4.95614671e+03,   4.23060022e+03,   4.10673182e+03,
         3.41199406e+03,   3.24193522e+03,   2.74523635e+03,
         2.35027999e+03,   2.16835314e+03,   1.86414157e+03,
         1.76741826e+03,   1.70492093e+03,   1.66199683e+03,
         1.53948465e+03,   1.33096008e+03,   1.25591691e+03,
         1.15509389e+03,   1.12410108e+03,   1.03213798e+03,
         1.00972093e+03,   9.50542179e+02,   9.09791361e+02,
         8.32001551e+02,   8.08898242e+02,   7.37343627e+02,
         6.87596830e+02,   5.64452104e+02,   5.51812250e+02,
         5.37209115e+02,   4.93029995e+02,   4.13720573e+02,
         3.90222119e+02,   3.37288784e+02,   3.27558605e+02,
         3.08869553e+02,   2.46285839e+02,   2.28893093e+02,
         1.96447852e+02,   1.75559820e+02,   1.65795169e+02,
         1.56428052e+02,   1.39671194e+02,   1.28662864e+02,
         1.15624070e+02,   1.10318239e+02,   1.08663541e+02,
         1.00695416e+02,   9.80687852e+01,   8.34968275e+01,
         7.53025397e+01,   6.89260158e+01,   6.67786503e+01,
         6.09412873e+01,   5.30974002e+01,   4.71797825e+01,
         4.50701108e+01,   4.41349593e+01,   4.03313416e+01,
         3.95741636e+01,   3.74000035e+01,   3.44211326e+01,
         3.30031584e+01,   3.03317756e+01,   2.88994580e+01,
         2.76478754e+01,   2.57708695e+01,   2.44506430e+01,
         2.31640106e+01,   2.26956957e+01,   2.16925102e+01,
         2.10114869e+01,   2.00984697e+01,   1.86489543e+01,
         1.83733216e+01,   1.72517802e+01,   1.60481189e+01,
         1.54406997e+01,   1.48356499e+01,   1.44273357e+01,
         1.42318192e+01,   1.35592064e+01,   1.30696836e+01,
         1.28193512e+01,   1.22093626e+01,   1.15228376e+01,
         1.12141738e+01,   1.02585936e+01,   9.86906139e+00,
         9.58794460e+00,   9.41686288e+00,   9.20276340e+00,
         8.63791398e+00,   8.20622561e+00,   8.01020114e+00,
         7.53391290e+00,   7.33168361e+00,   7.09960245e+00,
         7.02149364e+00,   6.76557324e+00,   6.34504733e+00,
         6.01919292e+00,   5.81680918e+00,   5.44653788e+00,
         5.12338463e+00,   4.79593185e+00,   4.47851795e+00,
         4.50369987e+00,   4.27479386e+00,   3.89124198e+00,
         3.56466892e+00,   3.32248982e+00,   2.97665360e+00,
         2.61425544e+00,   2.31802829e+00,   2.17171124e+00,
         1.99239284e+00,   1.96616566e+00,   1.88149281e+00,
         1.79228288e+00,   1.71378363e+00,   1.68028783e+00,
         1.60686268e+00,   1.47158244e+00,   1.40656712e+00,
         1.37808906e+00,   1.27967672e+00,   1.22803716e+00,
         1.18531109e+00,   9.38857180e-01,   9.18222054e-01,
         8.26265393e-01,   7.96585842e-01,   7.74597255e-01,
         7.14002770e-01,   6.79457797e-01,   6.37928310e-01,
         6.24646758e-01,   5.34605353e-01,   4.60658687e-01,
         4.24265893e-01,   4.08634622e-01,   3.70321764e-01,
         3.67016386e-01,   3.35858033e-01,   3.29780397e-01,
         2.94348753e-01,   2.84154176e-01,   2.72703994e-01,
         2.63265991e-01,   2.45227786e-01,   2.25805135e-01,
         2.22331919e-01,   2.13514673e-01,   1.93961935e-01,
         1.91647269e-01,   1.83668491e-01,   1.82518017e-01,
         1.65310922e-01,   1.57447909e-01,   1.51263974e-01,
         1.39427297e-01,   1.32638882e-01,   1.28000027e-01,
         1.13559952e-01,   1.12576237e-01,   1.08809771e-01,
         1.07136355e-01,   8.60839655e-02,   8.50467792e-02,
         8.29254355e-02,   7.03701660e-02,   6.44475619e-02,
         6.09866327e-02,   6.05709478e-02,   5.93963958e-02,
         5.22163549e-02,   4.92729703e-02,   4.80022983e-02,
         4.51487439e-02,   4.30180504e-02,   4.13368324e-02,
         4.03281604e-02,   3.91576587e-02,   3.54198873e-02,
         3.31199510e-02,   3.13547234e-02,   3.07226509e-02,
         2.98354196e-02,   2.81949091e-02,   2.49158051e-02,
         2.36374781e-02,   2.28360210e-02,   2.19602047e-02,
         2.00166957e-02,   1.86597535e-02,   1.80415918e-02,
         1.72261012e-02,   1.60703860e-02,   1.49566735e-02,
         1.40165444e-02,   1.31296856e-02,   1.21358005e-02,
         1.07166503e-02,   1.01045695e-02,   9.76055340e-03,
         9.16740926e-03,   8.78108857e-03,   8.67465278e-03,
         8.30918514e-03,   8.05104488e-03,   7.56152126e-03,
         7.31508852e-03,   7.26347037e-03,   6.65728354e-03,
         6.50769617e-03,   6.28009879e-03,   6.19160730e-03,
         5.64130272e-03,   5.30195373e-03,   5.07453702e-03,
         4.47372286e-03,   4.32543895e-03,   4.22006582e-03,
         3.97065729e-03,   3.75292740e-03,   3.64861290e-03,
         3.38915810e-03,   3.27965962e-03,   3.06633825e-03,
         2.99206786e-03,   2.83586784e-03,   2.74987243e-03,
         2.31066313e-03,   2.26782347e-03,   1.82206662e-03,
         1.74955624e-03,   1.69305161e-03,   1.66624597e-03,
         1.55346749e-03,   1.51278404e-03,   1.47296800e-03,
         1.33617458e-03,   1.30517592e-03,   1.24056353e-03,
         1.19823961e-03,   1.14381059e-03,   1.13027458e-03,
         1.11081803e-03,   1.08359152e-03,   1.03517496e-03,
         1.00164593e-03,   9.50024604e-04,   8.94981182e-04,
         8.74363843e-04,   7.98497545e-04,   7.51612220e-04,
         6.63964302e-04,   6.21097646e-04,   6.18098604e-04,
         5.72611403e-04,   5.57509231e-04,   5.47002381e-04,
         5.27195077e-04,   5.11487997e-04,   4.87787872e-04,
         4.74249071e-04,   4.52367689e-04,   4.24431101e-04,
         4.19119024e-04,   3.72489906e-04,   3.38125455e-04,
         3.34002144e-04,   2.97951371e-04,   2.84845901e-04,
         2.79038288e-04,   2.77054476e-04,   2.54815126e-04,
         2.67962797e-04,   2.29230595e-04,   1.99245436e-04,
         1.90381389e-04,   1.84497913e-04,   1.77415682e-04,
         1.68160613e-04,   1.63992031e-04,   1.58025553e-04,
         1.54226003e-04,   1.46890640e-04,   1.46097434e-04,
         1.40079892e-04,   1.35736724e-04,   1.22704035e-04,
         1.16752515e-04,   1.14080847e-04,   1.04252870e-04,
         9.90265098e-05,   9.66039062e-05,   9.60766570e-05,
         9.16166335e-05,   9.07003478e-05,   8.60212633e-05,
         8.32654024e-05,   7.70526077e-05,   7.36470020e-05,
         7.24998305e-05,   6.80209910e-05,   6.68682698e-05,
         6.14500420e-05,   5.99843174e-05,   2.98089203e-05,
         5.49918003e-05,   5.24646955e-05,   5.13403849e-05,
         5.02336264e-05,   4.89288507e-05,   4.51104475e-05,
         3.43901591e-05,   3.57776535e-05,   4.29823765e-05,
         4.18869715e-05,   4.14341562e-05,   3.94822843e-05,
         3.80307292e-05,   2.72388358e-05,   2.42608885e-05,
         2.30962279e-05,   2.27807559e-05,   2.14440814e-05,
         1.96208174e-05,   1.91217363e-05,   1.88276186e-05,
         1.66549051e-05,   1.46846459e-05,   1.43753346e-05,
         1.39779892e-05,   1.21760519e-05,   1.20295835e-05,
         8.34247982e-06,   1.13426750e-05,   1.09258905e-05,
         8.93991858e-06,   9.23630205e-06,   1.02782991e-05,
         1.01021808e-05,   9.64538296e-06,   9.72678794e-06,
         7.36188590e-06,   7.20354827e-06,   2.78847699e-06,
         6.69282813e-06,   6.49477814e-06,   5.91044556e-06,
         6.00244889e-06,   5.67034892e-06,   5.31392220e-06,
         5.09342483e-06,   4.65422046e-06,   4.45482134e-06,
         3.48065950e-06,   3.65202836e-06,   3.77558985e-06,
         4.11265577e-06,   2.66299628e-06,   2.57492503e-06,
         2.39210233e-06,   2.06298821e-06,   2.00824521e-06,
         1.76373602e-06,   1.58273269e-06,   1.32211395e-06,
         1.49813697e-06,   1.44003524e-06,   1.42489429e-06,
         1.10002716e-06,   9.01008863e-07,   8.49881106e-07,
         7.62521870e-07,   6.57641103e-07,   5.85636641e-07,
         5.33937361e-07,   4.16077215e-07,   3.33765858e-07,
         2.95575265e-07,   2.54744632e-07,   2.20144574e-07,
         1.86314525e-07,   1.77370967e-07,   1.54794344e-07,
         1.39738552e-07,   1.47331687e-07,   1.04110968e-07,
         1.00786519e-07,   9.38635094e-08,   9.10853310e-08,
         8.71546325e-08,   7.48338889e-08,   6.06817435e-08,
         5.66479200e-08,   5.24576913e-08,   4.57020648e-08,
         2.89942624e-08,   2.60449421e-08,   2.10987990e-08,
         2.17618741e-08,   1.75542294e-08,   1.34637025e-08,
         1.27167435e-08,   1.23258201e-08,   1.04987513e-08,
         9.86367963e-09,   9.33428155e-09,   8.49423161e-09,
         7.42190962e-09,   5.76455817e-09,   6.46870806e-09,
         5.01138098e-09,   3.48686453e-09,   2.91267177e-09,
         2.77880628e-09,   6.84633796e-09,   1.73093438e-09,
         1.42391194e-09,   9.24975774e-10,   1.16454971e-09,
         1.11815884e-09,   6.95073614e-10,   1.80003518e-10,
         1.97062415e-10,   2.61936054e-10,   6.13219223e-10,
         5.27584239e-10,  -2.16417104e-15,   2.10627686e-15,
         6.25652286e-16,  -1.69155643e-17,   5.08498479e-19,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00])

3、模型结果分析

         我们会看到一大堆值,但是其中的什么会引起我们的注意?我们会发现其中很多值都是0。实际上,其中有超过20%的特征值都是0。这就意味着这些特征都是其他特征的副本,也就是说,它们可以通过其他特征来表示,而本身并没有提供额外的信息。
       接下来,我们了解一下部分数值的数量级。最前面15个值的数量级大于10510^5,实际上那以后的值都变得非常小。这就相当于告诉我们只有部分重要特征,重要特征的数目也很快就会下降。
             最后,我们可能会注意到有一些小的负值,它们主要源自数值误差应该四舍五入成0。
             在图13-4中已经给出了总方差的百分比,我们发现,在开始几个主成分之后,方差就会迅速下降。


             表13-1给出了这些主成分所对应的方差百分比和累积方差百分比。浏览“累积方差百分比( % )”这一列就会注意到,前六个主成分就覆盖了数据96.8%的方差,而前20个主成分覆盖了99.3%的方差。这就表明了,如果保留前6个而去除后584个主成分,我们就可以实现大概100 : 1的压缩比。另外,由于舍弃了噪声的主成分,将后面的主成分去除便使得数据更加干净。

             于是,我们可以知道在数据集的前面多个主成分中所包含的信息量。我们可以尝试不同的截断值来检验它们的性能。有些人使用能包含90%信息量的主成分 数量,而其他人使用前20个主成分。我们无法精确知道所需要的主成分数目,必须通过在实验中取不同的值来确定。有效的主成分数目则取决于数据集和具体应 用。
              上述分析能够得到所用到的主成分数目,然后我们可以将该数目输人到PCA算怯中,最后得到约简后数据就可以在分类器中使用了。

五、小结

           降维技术使得数据变得更易使用,且它们往往能够去除数据中的噪声,使得其他机器学习任务更加精确。降维一般作为预处理步骤,在数据应用到其他算法之前清洗数据。当然,有很多技术可以用于降维,在这些技术中,独立成分分析、因子分析和主成分分析比较流行,其中主成分分析应用最广泛。

          PCA可以从数据中识别其主要特征,它是通过沿着数据最大方差方向旋转坐标轴来实现的。旋转方差最大的方向作为第一条坐标轴,后续坐标轴则与前面的坐标轴正交。  协方差矩阵上的特征分析可以用一些列的正交坐标轴来获取。

              关于PCA降维技术先撰写到此,文中若有不足之处,烦请各位大拿多多指点,谢谢。 

猜你喜欢

转载自blog.csdn.net/qq_37608890/article/details/79236550