本文仅就PCA原理及应用作一简单总结, 具体的数学原理等考试后再补上.

1. PCA推导

目标

对于正交空间中的样本点,现想将其投影到一个低维超平面中使得所有样本可在该平面中得到恰当的表达.

什么叫恰当的表达?

  • 最近重构性:样本点到该超平面的距离都足够近(距离最小).
  • 最大可分性:样本点到该超平面上的投影尽可能分开(方差最大, 协方差为0)

可以证明,上面两个表述可推出等价的投影矩阵.

基于最近重构性的PCA推导

假设样本已中心化\(\sum x_i=0\),设新坐标系为\(W=\{w_1,w_2,\dots,w_d\}\),其中\(w_i\)是标准正交基向量, 即\(||w_i||=1,w_i^Tw_j=0(i\neq j)\)

现欲降维至\(d'<d\),则样本点\(x_i\)在低维坐标系中的投影为\(z_i=(z_{i1},z_{i2},\dots,z_{id'})\),其中\(z_{ij}=w_j^Tx_i\)

此时再将新坐标反投影回原坐标系(重构)可得\(x_i'=\sum_{j=1}^{d'}z_{ij}w_j\)

考虑原样本点\(x_i\)与重构后\(x_i'\)的距离为:

根据最小重构性,可得优化目标:找满足\(W^TW=1\)且使得\(-tr(W^TXX^TW)\)最小的\(W\).

根据拉格朗日乘子法(需补充详细过程),可得\(XX^TW=\lambda W\).故只需对\(XX^T\)进行特征值分解.将求得的特征值排序取前\(d'\)个构成\(W=(w_1,\dots,w_{d'})\). 投影坐标为\(y=W^Tx\)​

也可以理解为求得的是使得\(XX^T\)对角化(协方差为0)且方差最大(对角元取最大的几个特征值)的\(W\)

  • 逐一选取特征向量与直接选取具有等价性

  • 实践中常用奇异值分解代替特征值分解

2. PCA应用(做题)

一些细节

  • 如何组织数据?

    \[\left \{
    \begin{matrix}
    &a_1&\dots&a_n\\
    &b_1&...&b_n\\
    &...&...&...\\
    &z_1&...&z_n\\
    \end{matrix}
    \right\}\tag{1}
    \]

    \(m\)维\(n\)个数据

  • 如何中心化?

    每行数据减去均值

  • 计算步骤

    1. 中心化数据
    2. 计算协方差矩阵
    3. 求特征值
    4. 取最大的前\(d'\)​​个特征值对应的特征向量标准正交化后得到\(W\)​
      • 如果有重特征值排在前\(d'\)则需施密特正交化
    5. 新坐标\(y=W^Tx\)

【数据科学基础复习 - 3】PCA主成分分析的更多相关文章

  1. python3 数据科学基础

    第一章 1.Anaconda(最著名的python数据科学平台) 下面小伙伴们咱们来初初识下Anaconda吧 What is Anaconda???? 回答: (1).科学计算的平台 (2).有很多 ...

  2. (数据科学学习手札22)主成分分析法在Python与R中的基本功能实现

    上一篇中我们详细介绍推导了主成分分析法的原理,并基于Python通过自编函数实现了挑选主成分的过程,而在Python与R中都有比较成熟的主成分分析函数,本篇我们就对这些方法进行介绍: R 在R的基础函 ...

  3. (数据科学学习手札20)主成分分析原理推导&Python自编函数实现

    主成分分析(principal component analysis,简称PCA)是一种经典且简单的机器学习算法,其主要目的是用较少的变量去解释原来资料中的大部分变异,期望能将现有的众多相关性很高的变 ...

  4. 数据降维-PCA主成分分析

    1.什么是PCA? PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法.PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特 ...

  5. 零基础使用Swift学习数据科学

    概述 Swift正迅速成为数据科学中最强大.最有效的语言之一 Swift与Python非常相似,所以你会发现2种语言的转换非常平滑 我们将介绍Swift的基础知识,并学习如何使用该语言构建你的第一个数 ...

  6. 《Python数据科学手册》第五章机器学习的笔记

    目录 <Python数据科学手册>第五章机器学习的笔记 0. 写在前面 1. 判定系数 2. 朴素贝叶斯 3. 自举重采样方法 4. 白化 5. 机器学习章节总结 <Python数据 ...

  7. python书籍推荐:Python数据科学手册

    所属网站分类: 资源下载 > python电子书 作者:today 链接:http://www.pythonheidong.com/blog/article/448/ 来源:python黑洞网 ...

  8. 深入对比数据科学工具箱:Python和R之争

    建议:如果只是处理(小)数据的,用R.结果更可靠,速度可以接受,上手方便,多有现成的命令.程序可以用.要自己搞个算法.处理大数据.计算量大的,用python.开发效率高,一切尽在掌握. 概述 在真实的 ...

  9. CS229 6.6 Neurons Networks PCA主成分分析

    主成分分析(PCA)是一种经典的降维算法,基于基变换,数据原来位于标准坐标基下,将其投影到前k个最大特征值对应的特征向量所组成的基上,使得数据在新基各个维度有最大的方差,且在新基的各个维度上数据是不相 ...

随机推荐

  1. uni微信小程序优化,打包后的import vue路径是可删除的

    这次的优化我公司项目主包只减小了32kb,但是减小的不仅仅是主包,所有分包均在没有改动任何业务代码的情况下完成了压缩空间的优化. 主包分包压缩空间的优化都要视项目而定,32kb只是我公司的小程序项目. ...

  2. 解读WPF中的Binding

    1.Overview 基于MVVM实现一段绑定大伙都不陌生,Binding是wpf整个体系中最核心的对象之一这里就来解读一下我花了纯两周时间有哪些秘密.这里我先提出几个问题应该是大家感兴趣的,如下: ...

  3. 【SimuPy】Python实现的Simulink 文档翻译全部完毕

    作者:CycleUser 前情回顾: 前些天在和@iGuo.@白小鱼以及@12334在关于如何看待哈工大.哈工程受美商务部「实体名单」影响,被禁止使用 MATLAB 商业软件?的问题中讨论到了 sim ...

  4. 「SHOI2006」有色图

    首先发现这题虽然是边的置换,但是是由点的置换所造成的,并且发现点置换对应的所有边置换和置换操作构成置换群. 由于颜色可以全选,那么根据 Polya 定理,答案为: \[|X / G| = \frac{ ...

  5. Redis 的持久化有哪几种方式?

    面试题 redis 的持久化有哪几种方式? 不同的持久化机制都有什么优缺点? 持久化机制具体底层是如何实现的? 面试官心理分析 redis 如果仅仅只是将数据缓存在内存里面,如果 redis 宕机了再 ...

  6. js instanceof 解析

    js中的instanceof运算符 概述 instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上 语法 obj instanceofOb ...

  7. Handler消息机制的写法

    使用Handler的步骤:         1.主线程中创建一个Handler         private Handler handler = new Handler(){             ...

  8. ldconfig及LD_LIBRARY_PATH

    ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令:ldconfig.ldconfig 命令的用途,主要是在默认搜寻目录 (/lib和/usr/lib ...

  9. 自定义UITableview自带侧滑删除按钮样式 by 徐

    效果如下: 实现原理: 1.打开tableview自带的侧滑删除功能 核心代码: 1 -(void)tableView:(UITableView *)tableView commitEditingSt ...

  10. 谷粒商城Day1

    环境搭建 安装JDK1.8: 1 下载并解压jdk1.8 tar -zxvf jdk-8u281-linux-x64.tar.gz(检查本机有没有jdk有的话卸载掉.安装上自己的jdk) 2 配上环境 ...