机器学习之PCA主成分分析

前言

           以下内容是个人学习之后的感悟,转载请注明出处~

简介

  在用统计分析方法研究多变量的课题时,变量个数太多就会增加课题的复杂性。人们自然希望变量个数较少而得到的

信息较多。在很多情形,变量之间是有一定的相关关系的,当两个变量之间有一定相关关系时,可以解释为这两个变量反

映此课题的信息有一定的重叠。主成分分析是对于原先提出的所有变量,将重复的变量(关系紧密的变量)删去多余,建立

尽可能少的新变量,使得这些新变量是两两不相关的,而且这些新变量在反映课题的信息方面尽可能保持原有的信息。

  降维算法有很多,比如PCA、ICA、SOM、MDS、ISOMAP、LLE等,在此不一一列举。PCA是一种无监督降维算法,

它是最常用的降维算法之一,可以很好地解决因变量太多而复杂性、计算量增大的弊端。

PCA主成分分析原理

1、协方差原理

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

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

X的方差(Variance).当样本是n维数据时,它们的协方差实际上是协方差矩阵(对称方阵),方阵的边长是Cn2。比如对于3

维数据(x,y,z),计算它的协方差就是:

2、SVD分解原理

  若AX=λX,则称λ是A的特征值,X是对应的特征向量。实际上可以这样理解:矩阵A作用在它的特征向量X上,仅仅使得

X的长度发生了变化,缩放比例就是相应的特征值λ。当A是n阶可逆矩阵时,A与P-1Ap相似,相似矩阵具有相同的特征值。

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

  对A进行奇异值分解就能求出所有特征值和Q矩阵。A?Q=Q?D,D是由特征值组成的对角矩阵由特征值和特征向量的定

义知,Q的列向量就是A的特征向量。

3、PCA原理及实现

  PCA主要通过把数据从高维映射到低维来降低特征维度。如下图所示,但映射的时候要保留尽量多的主要信息。

  PCA的算法步骤如下:

  • 输入数据集x={x(1)x(2)x(3),.....,x(m)}、需要降到K维;
  • 对所有样本进行均值归一化,如右图所示; 
  • 计算协方差矩阵
  • 对协方差矩阵进行奇异值分解
  • 选取最大的前K个特征值对应的特征向量u(1)u(2)u(3),.....,u(k)
  • 输出降维的投影特征矩阵Ureduce={u(1)u(2)u(3),.....,u(k)}
  • 输出降维后的数据集z=UreduceTx

4、选择降维后的维度K(主成分的个数)

  如何选择主成分个数K呢?先来定义两个概念:

  选择不同的K值,然后用下面的式子不断计算,选取能够满足下列式子条件的最小K值即可。

  其中t值可以由自己定,比如t值取0.01,则代表了该PCA算法保留了99%的主要信息。当你觉得误差需要更小,

你可以把t值设的更小。上式还可以用SVD分解时产生的S矩阵来表示,如下面的式子:

  注意1:虽然PCA有降维的效果,也许对避免过拟合有作用,但是最好不要用PCA去作用于过拟合。

  注意2:在训练集中找出PCA的主成分,(可以看做为映射 mapping),然后应用到测试集和交叉验

  证集中。而不是对所有数据集使用PCA然后再划分训练集,测试集和交叉验证集。

以上是全部内容,如果有什么地方不对,请在下面留言,谢谢~

时间: 2024-10-11 07:25:54

机器学习之PCA主成分分析的相关文章

【机器学习算法-python实现】PCA 主成分分析、降维

1.背景 PCA(Principal Component Analysis),PAC的作用主要是降低数据集的维度,然后挑选出主要的特征. PCA的主要思想是移动坐标轴,找到方差最大的方向上的特征值,什么叫方差最大的方向的特征值呢.就像下图中的曲线B,一样,它的覆盖范围最广. 基本步骤:(1)首先计算数据集的协方差矩阵 (2)计算协方差矩阵的特征值和特征向量 (3)保留最重要的n个特征 what is 协方差矩阵: 定义是变量向量减去均值向量,然后乘以变量向量减去均值向量的转置再求均值.例如x是变

机器学习——降维(主成分分析PCA、线性判别分析LDA、奇异值分解SVD、局部线性嵌入LLE)

机器学习--降维(主成分分析PCA.线性判别分析LDA.奇异值分解SVD.局部线性嵌入LLE) 以下资料并非本人原创,因为觉得石头写的好,所以才转发备忘 (主成分分析(PCA)原理总结)[https://mp.weixin.qq.com/s/XuXK4inb9Yi-4ELCe_i0EA] 来源:?石头?机器学习算法那些事?3月1日 主成分分析(Principal components analysis,以下简称PCA)是最常用的降维方法之一,在数据压缩和消除冗余方面具有广泛的应用,本文由浅入深的

PCA主成分分析+白化

引言 主成分分析(PCA)是一种能够极大提升无监督特征学习速度的数据降维算法.更重要的是,理解PCA算法,对实现白化算法有很大的帮助,很多算法都先用白化算法作预处理步骤. 假设你使用图像来训练算法,因为图像中相邻的像素高度相关,输入数据是有一定冗余的.具体来说,假如我们正在训练的16x16灰度值图像,记为一个256维向量  ,其中特征值  对应每个像素的亮度值.由于相邻像素间的相关性,PCA算法可以将输入向量转换为一个维数低很多的近似向量,而且误差非常小. 实例和数学背景 在我们的实例中,使用的

机器学习算法-PCA降维技术

机器学习算法-PCA降维 一.引言 在实际的数据分析问题中我们遇到的问题通常有较高维数的特征,在进行实际的数据分析的时候,我们并不会将所有的特征都用于算法的训练,而是挑选出我们认为可能对目标有影响的特征.比如在泰坦尼克号乘员生存预测的问题中我们会将姓名作为无用信息进行处理,这是我们可以从直观上比较好理解的.但是有些特征之间可能存在强相关关系,比如研究一个地区的发展状况,我们可能会选择该地区的GDP和人均消费水平这两个特征作为一个衡量指标.显然这两者之间是存在较强的相关关系,他们描述的都是该地区的

PCA主成分分析Python实现

作者:拾毅者 出处:http://blog.csdn.net/Dream_angel_Z/article/details/50760130 Github源代码:https://github.com/csuldw/MachineLearning/tree/master/PCA PCA(principle component analysis) .主成分分析,主要是用来减少数据集的维度,然后挑选出基本的特征.原理简单,实现也简单.关于原理公式的推导,本文不会涉及,你能够參考以下的參考文献,也能够去W

PCA(主成分分析)方法浅析

PCA(主成分分析)方法浅析 降维.数据压缩 找到数据中最重要的方向:方差最大的方向,也就是样本间差距最显著的方向 在与第一个正交的超平面上找最合适的第二个方向 PCA算法流程 上图第一步描述不正确,应该是去中心化,而不是中心化 具体来说,投影这一环节就是:将与特征值对应的k个特征向量分别作为行向量组成特征向量矩阵P 直接乘以特征变量就好.原来是二维数据,降维之后只有一维. 我们想保留几个维度的特征,就留下几个特征值和对应的特征向量. 原文地址:https://www.cnblogs.com/j

机器学习实战精读--------主成分分析(PCA)

对数据进行简化的原因: ① 使得数据集更容易使用 ② 降低许多算法的计算开销 ③ 去除噪声 ④ 使得结果易懂 方差是衡量数据源和期望值相差的度量值. PCA:数据从原来的坐标系转换到新的坐标系,新坐标系是有数据本身决定的. 因子分析:假设观察数据的生成中有一些观察不到的隐变量,假设观察数据是这些隐变量和某些财政所呢个的线性组合. 独立成分分析(ICA):假设数据是从N个数据源生成的,如果数据源的数目小于观察数据的数目,则可以实现降维过程. 通过PCA进行降维处理,我们可以同时获得SVM和决策树的

[机器学习笔记]PCA简介以及python实现

主成分分析(principal component analysis)是一种常见的数据降维方法,其目的是在“信息”损失较小的前提下,将高维的数据转换到低维,从而减小计算量.这里的“信息”指的是数据所包含的有用的信息. 主要思路:从原始特征中计算出一组按照“重要性”从大到小排列的新特征,它们是原始特征的线性组合(或者说它们是原始特征在某个方向的映射,线性组合是多个特征乘以一个系数,在某个方向的映射也相当于每个特征与该方向的内积,是一样的道理),并且相互之间互不相关. 因此,关键点就在于:1.特征的

【主成分分析】PCA主成分分析原理详解

声明:本文是转载自他处,原文载于此:http://blog.csdn.net/zhongkelee/article/details/44064401 一.PCA简介 1. 相关背景 上完陈恩红老师的<机器学习与知识发现>和季海波老师的<矩阵代数>两门课之后,颇有体会.最近在做主成分分析和奇异值分解方面的项目,所以记录一下心得体会. 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律.多变量大样本无疑会为研究和应用提供了丰富的信息,