Python数据分析与机器学习35-PCA降维

文章目录

  • 一. PCA概述
  • 二. 向量的表示及基变换
    • 2.1 向量的表示
    • 2.2 基变换
  • 三. 协方差矩阵
  • 四. 协方差
  • 五. 优化目标
  • 六. PCA实例
  • 参考:

一. PCA概述

PCA是Principal Component Analysis,主成分分析。

用途:
降维中最常用的一种手段

目标:
提取最有价值的信息(基于方差)

问题:
降维后的数据的意义?

二. 向量的表示及基变换

2.1 向量的表示

内积:
image.png

解释:
image.png
设向量B的模为1,则A与B的内积值等于A向B所在
直线投影的矢量长度
Python数据分析与机器学习35-PCA降维_第1张图片

向量的表示:
向量可以表示为(3,2)
实际上表示线性组合:
image.png

Python数据分析与机器学习35-PCA降维_第2张图片

2.2 基变换

基:
(1,0)和(0,1)叫做二维空间中的一组基
Python数据分析与机器学习35-PCA降维_第3张图片

基是正交的(即内积为0,或直观说相互垂直)

基是线性无关
Python数据分析与机器学习35-PCA降维_第4张图片

变换:
数据与一个基做内积运算,结果作为第一个新的坐标分量,然后与第二个基做内积运算,结果作为第二个新坐标的分量

数据(3,2)映射到基中坐标:
image.png

基变换:
Python数据分析与机器学习35-PCA降维_第5张图片

两个矩阵相乘的意义是将右边矩阵中的每一列列向量变换到
左边矩阵中每一行行向量为基所表示的空间中去

三. 协方差矩阵

方向:
如何选择这个方向(或者说基)才能尽量保留最多的原始信息呢?一种直观的看法是:希望投影后的投影值尽可能分散

方差:
image.png

寻找一个一维基,使得所有数据变换为这个基上的坐标表示后,方差值最大

协方差(假设均值为0时):
image.png

四. 协方差

如果单纯只选择方差最大的方向,后续方向应该会和方差最大的方向接近重合。

解决方案:
为了让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的

协方差:
可以用两个字段的协方差表示其相关性
image.png

当协方差为0时,表示两个字段完全独立。为了让协方差为0,选择第二个基时只能在与第一个基正交的方向上选择。因此最终选择的两个方向一定是正交的。

五. 优化目标

将一组N维向量降为K维(K大于0,小于N),目标是选择K个单位正交基,使原始数据变换到这组基上后,各字段两两间协方差为0,字段的方差则尽可能大

协方差矩阵:
image.png

矩阵对角线上的两个元素分别是两个字段的方差,而其它元素是a和b的协方差。

协方差矩阵对角化:即除对角线外的其它元素化为0,并且在对角线上将元素按大小从上到下排列.

协方差矩阵对角化:
Python数据分析与机器学习35-PCA降维_第6张图片

实对称矩阵:
一个n行n列的实对称矩阵一定可以找到n个单位正交特征向量
image.png

实对称阵可进行对角化:
Python数据分析与机器学习35-PCA降维_第7张图片

根据特征值的从大到小,将特征向量从上到下排列,则用前K行组成的矩阵乘以原始数据矩阵X,就得到了我们需要的降维后的数据矩阵Y

六. PCA实例

数据:
image.png

协方差矩阵:
Python数据分析与机器学习35-PCA降维_第8张图片

特征值:
image.png

特征向量:
image.png

对角化:
image.png

降维:
image.png

参考:

  1. https://study.163.com/course/introduction.htm?courseId=1003590004#/courseDetail?tab=1

你可能感兴趣的:(数据分析,+,机器学习,Python,#,Python数据分析与机器学习,机器学习,python,数据分析)