主成分分析(PCA)简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了主成分分析(PCA)简介相关的知识,希望对你有一定的参考价值。

参考技术A

主成分分析实例:一个 平均值 为(1, 3)、标准差在(0.878, 0.478)方向上为3、在其正交方向为1的 高斯分布 。这里以黑色显示的两个向量是这个分布的 协方差矩阵 的 特征向量 ,其长度按对应的 特征值 之平方根为比例,并且移动到以原分布的平均值为原点。

在多元统计分析中, 主成分分析 (英语: Principal components analysis PCA )是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的 维数 ,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

主成分分析由 卡尔·皮尔逊 于1901年发明,用于分析数据及建立数理模型。其方法主要是通过对 协方差矩阵 进行特征分解,以得出数据的主成分(即 特征向量 )与它们的权值(即 特征值 [3] )。PCA是最简单的以特征量分析多元统计分布的方法。其结果可以理解为对原数据中的 方差 做出解释:哪一个方向上的数据值对方差的影响最大?换而言之,PCA提供了一种降低数据 维度 的有效办法;如果分析者在原数据中除掉最小的 特征值 所对应的成分,那么所得的低维度数据必定是最优化的(也即,这样降低维度必定是失去讯息最少的方法)。主成分分析在分析复杂数据时尤为有用,比如 人脸识别 。

PCA是最简单的以特征量分析多元统计分布的方法。通常情况下,这种运算可以被看作是揭露数据的内部结构,从而更好的解释数据的变量的方法。如果一个多元数据集能够在一个高维数据空间坐标系中被显现出来,那么PCA就能够提供一幅比较低维度的图像,这幅图像即为在讯息最多的点上原对象的一个‘投影’。这样就可以利用少量的主成分使得数据的维度降低了。

PCA跟因子分析密切相关,并且已经有很多混合这两种分析的统计包。而真实要素分析则是假定底层结构,求得微小差异矩阵的特征向量。

PCA,Principle Component Analysis,即主成分分析法,是特征降维的最常用手段。顾名思义,PCA 能从冗余特征中提取主要成分,在不太损失模型质量的情况下,提升了模型训练速度。

如上图所示,我们将 样本到红色向量的距离 称作是投影误差(Projection Error)。以二维投影到一维为例,PCA 就是要找寻一条直线,使得各个特征的投影误差足够小,这样才能尽可能的保留原特征具有的信息。

因为PCA仅保留了特征的主成分,所以PCA是一种有损的压缩方式.

从 PCA 的执行流程中,我们知道,需要为 PCA 指定目的维度 k 。如果降维不多,则性能提升不大;如果目标维度太小,则又丢失了许多信息。

由于 PCA 减小了特征维度,因而也有可能带来过拟合的问题。PCA 不是必须的,在机器学习中,一定谨记不要提前优化,只有当算法运行效率不尽如如人意时,再考虑使用 PCA 或者其他特征降维手段来提升训练速度。

降低特征维度不只能加速模型的训练速度,还能帮我们在低维空间分析数据,例如,一个在三维空间完成的聚类问题,我们可以通过 PCA 将特征降低到二维平面进行可视化分析。

根据 13 个特征对葡萄酒分类(推销给不同品味的人),利用 PCA ,可以将数据从 13 维降到 2 维进行可视化。

array([[1.369e+01, 3.260e+00, 2.540e+00, 2.000e+01, 1.070e+02, 1.830e+00,
5.600e-01, 5.000e-01, 8.000e-01, 5.880e+00, 9.600e-01, 1.820e+00,
6.800e+02],
[1.269e+01, 1.530e+00, 2.260e+00, 2.070e+01, 8.000e+01, 1.380e+00,
1.460e+00, 5.800e-01, 1.620e+00, 3.050e+00, 9.600e-01, 2.060e+00,
4.950e+02],
[1.162e+01, 1.990e+00, 2.280e+00, 1.800e+01, 9.800e+01, 3.020e+00,
2.260e+00, 1.700e-01, 1.350e+00, 3.250e+00, 1.160e+00, 2.960e+00,
3.450e+02]])

array([[ 0.87668336, 0.79842885, 0.64412971, 0.12974277, 0.48853231,
-0.70326216, -1.42846826, 1.0724566 , -1.36820277, 0.35193216,
0.0290166 , -1.06412236, -0.2059076 ],
[-0.36659076, -0.7581304 , -0.39779858, 0.33380024, -1.41302392,
-1.44153145, -0.5029981 , 1.70109989, 0.02366802, -0.84114577,
0.0290166 , -0.73083231, -0.81704676],
[-1.69689407, -0.34424759, -0.32337513, -0.45327855, -0.14531976,
1.24904997, 0.31964204, -1.52069698, -0.4346309 , -0.75682931,
0.90197362, 0.51900537, -1.31256499]])

array([0.36884109, 0.19318394, 0.10752862, 0.07421996, 0.06245904,
0.04909 , 0.04117287, 0.02495984, 0.02308855, 0.01864124,
0.01731766, 0.01252785, 0.00696933])

array([[-2.17884511, -1.07218467],
[-1.80819239, 1.57822344],
[ 1.09829474, 2.22124345]])

LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
intercept_scaling=1, max_iter=100, multi_class=\'ovr\', n_jobs=1,
penalty=\'l2\', random_state=0, solver=\'liblinear\', tol=0.0001,
verbose=0, warm_start=False)

array([1, 3, 2, 1, 2])

array([[14, 0, 0],
[ 1, 15, 0],
[ 0, 0, 6]])

准确率(精度)为 : 0.9722222222222222

参考: https://zh.wikipedia.org/wiki/主成分分析
《 斯坦福机器学习》
《机器学习 A-Z》

特征工程-主成分分析PCA

文章目录

简介


主成分分析(Principle Component Analysis,PCA)是常用的降维方法,用较少的互不相关的新变量来反映原变量所表示的大部分信息,有效解决维度灾难问题。

一种直观的解释是,主成分是对所有样本点的一种投影,且我们希望投影后可以尽可能的分开,即使得投影后样本点的方差最大化。不难理解,方差越大,越能反映数据特征。


上图摘自https://blog.csdn.net/qq_35164554/article/details/101058673

主成分分析包括如下几个步骤:

  1. 计算均值
  2. 计算协方差
  3. 计算协方差矩阵对应的特征值和特征向量
  4. 计算第n主成分及其贡献率

步骤


为方便说明,以如下数据集为例:

x1x2
12
53

均值

求每个特征的均值:
x 1 ‾ = 1 + 5 2 = 3 \\overlinex_1=\\frac1+52=3 x1=21+5=3

x 2 ‾ = 2 + 3 2 = 2.5 \\overlinex_2=\\frac2+32=2.5 x2=22+3=2.5

协方差矩阵

协方差是用来表示两个变量的相关性的,比如正相关(x增大则y增大)、负相关(x增大y减小)和不相关。更多细节安利这个b站讲解如何通俗地解释协方差

减去均值:
x − x ‾ = ( − 2 − 0.5 2 0.5 ) x-\\overlinex=\\beginpmatrix -2 & -0.5 \\\\ 2 & 0.5 \\endpmatrix xx=(220.50.5)

计算协方差s:
s = 1 n − 1 ( x − x ‾ ) T ( x − x ‾ ) = 1 2 − 1 ( − 2 − 0.5 2 0.5 ) ( − 2 − 0.5 2 0.5 ) = ( 8 2 2 0.5 ) s=\\frac1n-1(x-\\overlinex)^T(x-\\overlinex)\\\\=\\frac12-1\\beginpmatrix-2&-0.5\\\\2&0.5 \\endpmatrix\\beginpmatrix-2&-0.5\\\\2&0.5\\endpmatrix\\\\=\\beginpmatrix8&2\\\\2&0.5\\endpmatrix s=n11(xx)T(xx)=211(220.50.5)(220.50.5)=(8220.5)

特征值和特征向量

需要亿点点线性代数知识,计算特征值和特征向量。

求特征值 λ \\lambda λ
∣ s − λ E ∣ = ∣ 8 − λ 2 2 0.5 − λ ∣ = 0 |s-\\lambda E|=\\beginvmatrix8-\\lambda&2\\\\2&0.5-\\lambda \\endvmatrix=0 sλE=8λ220.5λ=0
( 8 − λ ) ( 0.5 − λ ) − 4 = 0 (8-\\lambda)(0.5-\\lambda)-4=0 (8λ)(0.5λ)4=0

λ 1 = 0 , λ 2 = 8.5 \\lambda_1=0,\\lambda_2=8.5 λ1=0,λ2=8.5

λ 1 = 0 \\lambda_1=0 λ1=0带回 ∣ s − λ E ∣ = |s-\\lambda E|= sλE= ( 8 2 2 0.5 ) \\beginpmatrix8&2\\\\2&0.5\\endpmatrix (8220.5),正交单位化得特征向量 e 1 = ( 1 17 , − 4 17 ) T e_1=(\\frac1\\sqrt17,\\frac-4\\sqrt17)^T e1=(17 1,17 4)T

λ 2 = 8.5 \\lambda_2=8.5 λ2=8.5带回 ∣ s − λ E ∣ = |s-\\lambda E|= sλE= ( − 0.5 2 2 − 8 ) \\beginpmatrix-0.5&2\\\\2&-8\\endpmatrix (0.5228),正交单位化得特征向量 e 2 = ( 4 17 , 1 17 ) T e_2=(\\frac4\\sqrt17,\\frac1\\sqrt17)^T e2=(17 4,17 1)T

插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

第一主成分

将特征向量从大到小排序 ( λ 2 > λ 1 ) (\\lambda_2>\\lambda_1) (λ2>λ1),依次得到第N主成分。

如第一主成分为 Y 1 = e 2 T x = 4 17 x 1 + 1 17 x 2 Y_1=e_2^Tx=\\frac4\\sqrt17x_1+\\frac1\\sqrt17x_2 Y1=e以上是关于主成分分析(PCA)简介的主要内容,如果未能解决你的问题,请参考以下文章

特征工程-主成分分析PCA

机器学习-主成分分析PCA降维

机器学习-主成分分析PCA降维

主成分分析(PCA)原理详解

主成分分析PCA

详解主成分分析PCA