主成分分析技术

全称是Principal component analysis (PCA)。将原始数据从p个特征维度降低到d个维度。

原理

对原始特征空间进行重构。需要最大投影方差,尽可能保留数据在原空间的信息。投影就是xTwx^TwxTw,我们必须规定∣w∣=1|w| = 1∣w∣=1,否则可以通过增大www来增大投影方差,失去了意义。具体可以参见损失函数部分。

从另外一个角度理解,就是需要最小化重构数据和原数据之间的距离。

输入

训练集数据D=(x1,y1)...(xM,yM)D = {(x_1,y_1) ... (x_M,y_M)}D=(x1​,y1​)...(xM​,yM​),xi∈X⊆Rpx_i \in \mathcal{X} \subseteq R^pxi​∈X⊆Rp,yi∈Ry_i \in Ryi​∈R

X=(x1x2...xM)T∈RM∗pX = (x_1\ x_2\ ...\ x_M)^T \in R^{M*p}X=(x1​ x2​ ... xM​)T∈RM∗p

同时,我们可以得到数据均值和方差。让我们用1M1_M1M​表示一个长度为M,值全为1的列向量。用HHH表示中心矩阵。H=IM−1M1M1MTH = I_M - \frac 1 M 1_M 1_M^TH=IM​−M1​1M​1MT​。通过计算我们可以得到Hn=HH^n = HHn=H。

xˉ=1M∑i=1Mxi=1MXT1M\bar x = \frac{1}{M} \sum_{i=1}^M x_i = \frac{1}{M} X^T 1_Mxˉ=M1​∑i=1M​xi​=M1​XT1M​

S=1M∑i=1M(xi−xˉ)T(xi−xˉ)=1MXTHXS = \frac{1}{M} \sum_{i=1}^M (x_i - \bar x)^T(x_i - \bar x) = \frac{1}{M} X^T H XS=M1​∑i=1M​(xi​−xˉ)T(xi​−xˉ)=M1​XTHX

输出

X′=(x1′x2′...xM′)T∈RM∗dX' = (x_1'\ x_2'\ ...\ x_M')^T \in R^{M*d}X′=(x1′​ x2′​ ... xM′​)T∈RM∗d

损失函数

因为数据是ppp维的,我们让uiu_iui​当作每一个维度上的www,仍然满足∣ui∣=1|u_i| = 1∣ui​∣=1。我们的目标是根据投影方差定义的。
J=1M∑i=1M((xi−xˉ)u1)2=1M∑i=1Mu1T(xi−xˉ)(xi−xˉ)Tu1=u1T1M∑i=1M(xi−xˉ)(xi−xˉ)Tu1=u1TSu1J = \frac 1 M \sum_{i=1}^M ((x_i - \bar x)u_1)^2 \\\\ = \frac 1 M \sum_{i=1}^M u_1^T (x_i - \bar x) (x_i - \bar x)^T u_1\\\\ = u_1^T \frac 1 M \sum_{i=1}^M (x_i - \bar x) (x_i - \bar x)^T u_1\\\\ = u_1^T S u_1 J=M1​i=1∑M​((xi​−xˉ)u1​)2=M1​i=1∑M​u1T​(xi​−xˉ)(xi​−xˉ)Tu1​=u1T​M1​i=1∑M​(xi​−xˉ)(xi​−xˉ)Tu1​=u1T​Su1​
那么我们可以得到u1∗=argmaxuu1TSu1u_1^* = argmax_u\ u_1^T S u_1u1∗​=argmaxu​ u1T​Su1​且满足∣ui∣=1|u_i| = 1∣ui​∣=1。

为了体现出∣ui∣=1|u_i| = 1∣ui​∣=1的特点,我们对损失函数进行重构。

L(u1,λ)=u1TSu1+λ(1−u1Tu1)L(u_1, \lambda) = u_1^T S u_1 + \lambda(1 - u_1^T u_1)L(u1​,λ)=u1T​Su1​+λ(1−u1T​u1​)

接下来对uiu_iui​进行求导,
∂L∂u1=2Su1−2λu1=0Su1=λu1\frac {\partial L} {\partial u_1} = 2Su_1 - 2\lambda u_1 = 0 \\\\ Su_1 = \lambda u_1 ∂u1​∂L​=2Su1​−2λu1​=0Su1​=λu1​
这里我们可以发现u1u_1u1​是S的eigen vector,λ\lambdaλ是对应的eigen value。

其他uiu_iui​通过相同过程求解,只需要满足uiu_iui​之间是互相垂直的即可。

步骤

(1)将样本矩阵中心化得到X′X'X′,即每一维度减去该维度的均值,使维度上的均值为0

(2)计算样本协方差矩阵S=1M−1X′TX′S = \frac{1}{M-1} X^{'T}X'S=M−11​X′TX′

(3)寻找协方差矩阵的eigen values和eigen vectors

降维之后对原始数据进行还原

X^=∑j=1d(X′Tuj)uj\hat X = \sum_{j=1}^d (X'^T u_j)u_jX^=∑j=1d​(X′Tuj​)uj​

适用场景

原始数据特征过于庞大且特征有明显的相关性。

优点

  1. 计算简单,容易实现
  2. 在一定程度上起到降噪效果
  3. 无参数限制

缺点

  1. 降维之后的数据缺乏解释性

Reference

  • CS540 Intro to AI, UW Madison, Jerry Zhu
  • 白板推导系列,shuhuai007

机器学习基础专题:主成分分析技术PCA相关推荐

  1. 机器学习:基于主成分分析(PCA)对数据降维

    机器学习:基于主成分分析(PCA)对数据降维 作者:AOAIYI 作者简介:Python领域新星作者.多项比赛获奖者:AOAIYI首页

  2. 机器学习基础专题:特征工程

    特征工程 特征提取 将原始数据转化为实向量之后,为了让模型更好地学习规律,对特征做进一步的变换.首先,要理解业务数据和业务逻辑. 其次,要理解模型和算法,清楚模型需要什么样的输入才能有精确的结果. 探 ...

  3. 机器学习基础专题:分类

    线性分类 分类方式 硬分类 使用的是非概率模型,分类结果是决策函数的决策结果. 代表:线性判别分析.感知机 软分类 分类结果是属于不同类别的概率. 生成式 通过贝叶斯定理,使用MAP比较P(Y=0∣X ...

  4. 机器学习非监督分类之主成分分析(PCA)

    主成分分析是非监督分类中基础的算法,应用于降低特征的维度. 在介绍主成分分析之前,我们要先介绍一下特征值和特征向量,因为在后面我们要用到. 一.特征值和特征向量 特征值 如果有 此时γ为矩阵A的特征值 ...

  5. 机器学习基础专题:高斯混合模型和最大期望EM算法以及代码实现

    高斯混合模型 混合模型是潜变量模型的一种,是最常见的形式之一.而高斯混合模型(Gaussian Mixture Models, GMM)是混合模型中最常见的一种.zzz代表该数据点是由某一个高斯分布产 ...

  6. 机器学习基础专题:逻辑回归

    逻辑回归 广义线性模型. 原理 输入 训练集数据T=(x1,y1)...(xM,yM)T = {(x_1,y_1) ... (x_M,y_M)}T=(x1​,y1​)...(xM​,yM​),xi∈X ...

  7. 机器学习基础专题:感知机

    感知机 原理 思想是错误驱动.一开始赋予w一个初始值,通过计算被错误分类的样本不断移动分类边界. 输入 训练集数据D=(x1,y1)...(xM,yM)D = {(x_1,y_1) ... (x_M, ...

  8. 机器学习基础专题:线性判别器

    线性判别分析 全称是Linear Discriminant Analysis (LDA). 原理 给定训练样例集,通过降维的思路进行分类.将样例投影到一条直线上,使得同类样例的投影点接近,异类样例的投 ...

  9. 机器学习基础专题:样本选择

    样本选择 选择最少量的训练集S⊂\sub⊂完整训练集T,模型效果不会变差. 优势: 缩减模型计算时间 相关性太低的数据对解决问题没有帮助,直接剔除 去除噪声 数据去噪 噪声数据 特征值不对(缺失.超出 ...

最新文章

  1. 业余学python数据挖掘怎么赚钱_0基础转行学Python,学到什么地步能拿到月薪15k+?...
  2. 使用Visual Studio实现WinForm多语言版本实例
  3. 周易的含义_朱熹与《周易本义》
  4. 基于DirectShow的局域网内音视频流的多机共享
  5. 向左向右向后转python_Turbot与python教程-实现左向旋转
  6. Linux MTD子系统 _从模型分析到Flash驱动模板
  7. 分布式 开源_3个开源分布式跟踪工具
  8. Ubuntu 16.04启用 TCP 拥塞控制之 BBR
  9. Bailian2721 忽略大小写比较字符串大小(POJ NOI0107-16)【字符串】
  10. 02-微信小程序商城 顶部广告图片(微信小程序商城开发、小程序毕业设计、小程序源代码)(黄菊华-微信小程序开发教程)
  11. 基于Python的COVID-19背景下的网络社会心态变化数据分析
  12. 一文搞明白DNS缓存投毒
  13. Enovia 用户操作手册
  14. web项目上云_联想Filez携手浙江中烟,发力“云”端,打造“烟草上云”新势能...
  15. 一招教你学会如何用excel求重复项最大值
  16. 小米手机比较 联通、移动、电信 3G 支持比较
  17. python语言发展历史
  18. 关于手机输入法的一些点子
  19. 2.4.2 死锁的处理策略-预防死锁(破坏互斥条件、破坏不可剥夺条件、破坏请求和保持条件、破坏循环等待条件)
  20. 面试题--maven和tomcat篇

热门文章

  1. 『参考』使用.net CF自带库判断设备的连接状态
  2. unity 游戏第一次安装完之后运行,切出来,点击桌面图标后黑屏问题
  3. 小程序 - 效果处理之技巧合集(更新中...)
  4. 多态指针访问虚函数不能被继承的类快速排序N皇后问题插入排序堆排序merge归并排序栈上生成对象两个栈实现一个队列...
  5. tomcat jsvc 调优及JMX监控
  6. R710后台更新网卡驱动
  7. vivado----fpga硬件调试 (五) ----找不到ila核问题及解决
  8. 键盘输入_键盘输入技巧
  9. 谭浩强C程序设计第四版答案
  10. python re.match、re.search以及re.findall的区别