本文仅就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. PyTorch 介绍 | BUILD THE NEURAL NETWORK

    神经网络由对数据进行操作的layers/modules组成.torch.nn 命名空间提供了所有你需要的构建块,用于构建你自己的神经网络.PyTorch的每一个module都继承自nn.Module. ...

  2. elasticsearch查询之大数据集分页性能测试

    一.测试环境 python 3.7 elasticsearch 6.8 elasticsearch-dsl 7 安装elasticsearch-dsl pip install elasticsearc ...

  3. Java 给Word每一页设置不同图片水印效果

    Word中设置水印时,可加载图片设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不同的水印效果,则可以参考本文中的方法.下面,将以Java代码为例, ...

  4. 揭秘CPU制造全过程

    转载请注明来源:https://www.cnblogs.com/hookjc/ PCPOP 众所周知,CPU是计算机的心脏,包括运算部件和控制部件,是完成各种运算和控制的核心,也是决定计算机性能的最重 ...

  5. Html CSS的三种链接方式

    感谢原文:https://blog.csdn.net/abc5382334/article/details/24260817 感谢原文:https://blog.csdn.net/jiaqingge/ ...

  6. 获取公网ip,获取用户城市地址

    <?php class GetIp { public static $api = 'http://ip.taobao.com/service/getIpInfo.php?ip='; public ...

  7. onclick="func()"和 onclick = "return func()"区别

    onclick="func()" 表示只会执行 func , 但是不会传回 func 中之回传值onclick = "return func()" 则是 执行 ...

  8. 痞子衡嵌入式:i.MXRT连接特殊Octal Flash时(OPI DTR模式下反转字节序)下载与启动注意事项(以MX25UM51245为例)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是OPI DTR模式下反转字节序的Octal Flash在i.MXRT下载与启动注意事项. 在恩智浦官方参考设计板 MIMXRT595-E ...

  9. Docker镜像实战(ssh、systemctl、nginx、tomcat、mysql)

    Docker镜像实战 1.构建ssh镜像 2.构建systemctl 镜像 3.构建nginx镜像 4.构建tomcat镜像 5.构建mysql镜像 1.构建ssh镜像: 创建镜像目录 mkdir / ...

  10. Spring Security 介绍

    Spring Security介绍 开源 提供企业级的安全认证和授权 Spring安全拦截器 认证管理器 认证模式 Basic HTTP 1.0中使用的认证方法,使用用户名和密码Base64编码的方式 ...