机器学习:一文从入门到读懂PCA(主成分分析)

简介: 机器学习:一文从入门到读懂PCA(主成分分析)

机器学习:一文从入门到读懂PCA(主成分分析)

前置知识

维度灾难

内积的几何意义

向量与基向量的内积,就是向量在基向量方向上的投影坐标。

点乘(Dot Product)的结果是点积,又称数量积或标量积(Scalar Product)。在空间中有两个向量:
在这里插入图片描述
从代数角度看,点积是对两个向量对应位置上的值相乘再相加的操作,其结果即为点积。
在这里插入图片描述
从几何角度看,点积是两个向量的长度与它们夹角余弦的积。

在这里插入图片描述

假设有一个列向量A:=[3,2],如下图:

在这里插入图片描述

我们假设图中每个蓝色方格的单位为1,那么即使图中没有标注黄色向量是谁,我们也可以脱口而出他就是[3,2]。那么为什么我们可以直接看出他是谁呢?
答案也很简单,因为我们根据有一个参考依据,那就是坐标系(笛卡尔坐标系)。然而,这个二维坐标系他其实是由两个基向量:i ,j所组成的空间,其中:
image.png

在这里插入图片描述

基变换

假设有两个人,小泽,小乐,他们看待问题的‘角度’不认同,也、也就是基不同,其中小泽的基向量为:

在这里插入图片描述
而小乐的基向量为为:b1 ,b2,b1b2这两个向量在小乐看来数值就是

在这里插入图片描述

然而在小泽看来b1,b2数值为:
在这里插入图片描述

上面的向量A,在小泽的角度来看,就是[3,2],然而在小乐的角度看就变成了:[5/3,1/3]。

在这里插入图片描述

它们之所以认为这个向量是不同的,因为它们看待问题的角度不同,‘横看成岭侧成峰,远近高低各不同’,也就是基向量不同。

不同基下的向量变换

假设小泽角度下的向量B:
在这里插入图片描述

现在我们知道小泽与小乐的基向量,还知道了向量B在小泽中的数值表示,那么我们如果把小泽角度看的向量B,用小乐的角度表示,计算公式应该为:
在这里插入图片描述
于是,我们就把小泽角度下的向量B,转换成了小乐角度的向量。

逆矩阵

请添加图片描述
A的逆矩阵代表的含义就是A变换的逆过程。
求解 Ax =b的几何意义,就是找到一个向量x使得在A的变换下,x被映射为b。如果A为满秩矩阵,则有唯一解 $x=A^{-1}b$ ,也就是对b施加逆变换即可找到x。

在上面我们说在小泽的眼中,小乐的基向量b1,b2就是:
在这里插入图片描述
那么在小乐的眼中(以b1,b2为基向量),小泽的基向量i,j 如何表示呢?
这时候就用到了逆矩阵,把小泽的视角下的小乐的基向量的表示切换到小乐的视角小泽基向量的表示,需要用到上图矩阵做变换,那么我们反过来,就得到:
在这里插入图片描述

不同基下的空间变换

在上面我们已经介绍了什么是不同基下如何转换向量,下面我们介绍我们在不同基下的空间变换。
在小泽的视角中,我们如果想把坐标系逆时针旋转90度,如下图:
在这里插入图片描述
这个变换在小泽的视角下用矩阵A表示则是:
在这里插入图片描述
那么我们想做的就是知道:在小乐的视角下这个变换矩阵怎么表示呢?
现在我们已经有的是:二者的基向量,小泽的旋转矩阵。
我们的流程是:

  1. 在小乐的视角下找到一组向量
  2. 把这组向量用小泽的视角表示
  3. 然后把这向量通过旋转矩阵得到旋转后的向量
  4. 把旋转后的向量通过逆矩阵返回到小乐的视角

其中P为小乐视角下小泽基向量的表示,A为旋转矩阵,P的逆矩阵是小泽视角下小乐基向量的表示。
在这里插入图片描述
其中M就是我们要的小乐视角下的旋转矩阵,这就表示了不同基向量下的相同变换的相互转化。
在这里插入图片描述

方差

方差多用于一维随机变量离散程度的表示,公式如下:
在这里插入图片描述

协方差

协方差是方差对两个以上随机变量的推广,它表示多个随机变量的联合变动程度,也叫相关性(正相关、负相关),当正相关协方差>0,负相关协方差<0,反之协方差=0。

  1. 样例:

  1. 公式:

假设有两个随机变量a, b

在这里插入图片描述

m-1为无偏估计,这个大家不必在意,当数据量足够大的时候,差距微乎其微

协方差矩阵

假设有两个随机变量 a,b,观测数据矩阵用X表示。
在这里插入图片描述
根据协方差表达式可知协方差矩阵的表达式(假设数据已经中心化):

在这里插入图片描述
其中对角线上为每个随机变量的方差,其他为不同随机变量之间的协方差。

协方差矩阵对角化

通过观察协方差矩阵,我们发现协方差矩阵为实对称矩阵,所以可以对角化。

观测数据用X表示,它的协方差用C表示,旋转矩阵用P表示,旋转后的结果用Y表示,Y的协方差用D表示。

现在我们要通过P旋转矩阵X,那么旋转后的结果为:
在这里插入图片描述
根据上面的公式,Y的协方差D为:
在这里插入图片描述

特征值分解、空间变换

主成分分析(PCA)

前面介绍了那么多的基础知识,下面我们来说一下PCA到底是在做一件什么事呢?
假设有一组二维数据:
在这里插入图片描述
我们如果想找到其中一个点,就要用两个值表示,现在想对上面的数据降维,就拿一个数值来表示上面的点。

从基变换中我们了解到,同一个向量在不同的基坐标系下可以有不同的表示,但是他们本质是不变的,就如同‘你好这个词’,在中文下翻译为‘你好’,在英文下就是‘Hello’,但是他们本质的意思不变。

所以PCA在做的事情就是,找到一组新的的基坐标系,在这个坐标系里我们可以知道那个维度重要,这样我们就可以省略掉那些不重要的维度从而达到降维的目的。

也可以说是:将一组线性相关的变量,通过正交变换,变成线性无关,也就是原始特征空间的重构。
在这里插入图片描述
在实际的数据中,往往不像上面的图展示的那样,数据可以完美的在一个坐标轴中,实际的数据如下:
在这里插入图片描述
数据往往不会都呆在同一条直线上,我们如果找到了上面所描述的坐标系,然后在新的坐标系表示每一个点可能是这样:
在这里插入图片描述
我们发现其中一个维度比重很小,忽略他的时候,对数据完整性的损失是最小的。

两个原则

那么怎么才可以找到上面所说的坐标系呢?我们遵循这两个原则:

  1. 最大投影方差
  2. 最小重构距离

也就是说两个随机变量之间协方差尽可能的小,单个随机变量的方差尽可能的大,这样我们降维后的数据完整性损失最小。

公式推导

定义符号:观测数据用X表示,它的协方差用C表示,旋转矩阵用P表示,旋转后的结果用Y表示,Y的协方差用D表示。

我们从上面得知,旋转后的协方差表示为:
在这里插入图片描述
这里P是未知的,我们就是要找到一个P:

  1. 让D的对角线上的元素又大到小递减(每个随机变量的方差)。
  2. 其余元素尽可能的小(也就是协方差),也就是让D尽可能的为对角矩阵。

💡那么我们现在就找到了我们的优化目标!
设我们要到的新的基:w

首先计算数据xi在基w下的投影:
在这里插入图片描述

👆这里利用上面的内积的几何意义

之后,计算新的数据的方差:
在这里插入图片描述
其中结果里括号的内容就是原始数据的方差(均值为0),把它用替换
设基向量的模为1,根据拉格朗日乘子法联立方程:

在这里插入图片描述
在这里插入图片描述
于是我们发现数据方差最大的基就是原始数据斜方差矩阵的特征值。

求解流程

在这里插入图片描述

代码实现

import numpy as np
from sklearn.decomposition import PCA

# 输入待降维数据 (5 * 6) 矩阵,6个维度,5个样本值
A = np.array([[84,65,61,72,79,81],[64,77,77,76,55,70],[65,67,63,49,57,67],[74,80,69,75,63,74],[84,74,70,80,74,82]])
# 直接使用PCA进行降维
pca = PCA(n_components=2) #降到 2 维
pca.fit(A)
PCA(n_components=2)
print(pca.transform(A)) # 降维后的结果
print(pca.explained_variance_ratio_ )# 降维后的各主成分的方差值占总方差值的比例,即方差贡献率
print(pca.explained_variance_) # 降维后的各主成分的方差值

PCA的优缺点

优点

  1. 仅仅需要以方差衡量信息的完整性,不受其他因素影响。
  2. 各主成分之间正交,互不影响。
  3. 计算简单。

缺点

  1. 主成分每一个维度可解释性较弱,不如原始数据可解释性强。

    1. 方差小的非主成分也可能含有对样本差异的重要信息,因此降维丢弃可能对后续数据处理有影响。
    2. 降维损失数据完整性。
    3. PCA 保留了主要信息,但这个主要信息只是针对训练集的,而且这个主要信息未必是重要信息。有可能舍弃了一些看似无用的信息,但是这些看似无用的信息恰好是重要信息,只是在训练集上没有很大的表现,所以 PCA 也可能加剧了过拟合;
目录
相关文章
|
2天前
|
机器学习/深度学习 人工智能 数据处理
【人工智能】项目实践与案例分析:利用机器学习探测外太空中的系外行星
探测外太空中的系外行星是天文学和天体物理学的重要研究领域。随着望远镜观测技术的进步和大数据的积累,科学家们已经能够观测到大量恒星的光度变化,并尝试从中识别出由行星凌日(行星经过恒星前方时遮挡部分光线)引起的微小亮度变化。然而,由于数据量巨大且信号微弱,传统方法难以高效准确地识别所有行星信号。因此,本项目旨在利用机器学习技术,特别是深度学习,从海量的天文观测数据中自动识别和分类系外行星的信号。这要求设计一套高效的数据处理流程、构建适合的机器学习模型,并实现自动化的预测和验证系统。
10 1
【人工智能】项目实践与案例分析:利用机器学习探测外太空中的系外行星
|
13天前
|
机器学习/深度学习 算法 数据中心
【机器学习】面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?
本文介绍了主成分分析(PCA)算法,包括PCA的基本概念、算法过程、中心化处理的必要性、正交变换的目的,以及PCA与线性判别分析(LDA)在降维上的区别。
28 4
|
16天前
|
机器学习/深度学习 算法 搜索推荐
基于机器学习的用户行为分析:深入洞察与精准决策
【8月更文挑战第3天】基于机器学习的用户行为分析为企业提供了深入了解用户需求、优化产品设计和制定精准营销策略的有力工具。随着人工智能和大数据技术的不断发展,用户行为分析将更加智能化和个性化。未来,我们可以期待更加高效、精准的机器学习算法和模型的出现,以及更多创新性的应用场景的拓展。同时,也需要关注数据隐私和安全性问题,确保用户数据的安全和合规使用。
|
29天前
|
机器学习/深度学习 算法 数据可视化
Fisher模型在统计学和机器学习领域通常指的是Fisher线性判别分析(Fisher's Linear Discriminant Analysis,简称LDA)
Fisher模型在统计学和机器学习领域通常指的是Fisher线性判别分析(Fisher's Linear Discriminant Analysis,简称LDA)
|
12天前
|
机器学习/深度学习 数据采集 数据可视化
基于机器学习的一线城市租房价格预测分析与实现,实现三种算法预测
本文通过数据采集、处理、特征选择和机器学习建模,对一线城市租房价格进行预测分析,比较了随机森林、一元线性回归和多元线性回归模型,并发现随机森林模型在预测租房价格方面表现最佳,为租房市场参与者提供决策支持。
|
16天前
|
机器学习/深度学习 算法
【机器学习】梯度消失和梯度爆炸的原因分析、表现及解决方案
本文分析了深度神经网络中梯度消失和梯度爆炸的原因、表现形式及解决方案,包括梯度不稳定的根本原因以及如何通过网络结构设计、激活函数选择和权重初始化等方法来解决这些问题。
8 0
|
13天前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】金山办公2020校招大数据和机器学习算法笔试题
金山办公2020校招大数据和机器学习算法笔试题的解析,涵盖了编程、数据结构、正则表达式、机器学习等多个领域的题目和答案。
40 10
|
13天前
|
机器学习/深度学习 存储 人工智能
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
本文是关于2022-2023年知能科技公司机器学习算法工程师岗位的秋招笔试题,包括简答题和编程题,简答题涉及神经网络防止过拟合的方法、ReLU激活函数的使用原因以及条件概率计算,编程题包括路径行走时间计算和两车相向而行相遇时间问题。
35 2
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
|
12天前
|
机器学习/深度学习 数据采集 数据可视化
基于python 机器学习算法的二手房房价可视化和预测系统
文章介绍了一个基于Python机器学习算法的二手房房价可视化和预测系统,涵盖了爬虫数据采集、数据处理分析、机器学习预测以及Flask Web部署等模块。
基于python 机器学习算法的二手房房价可视化和预测系统

热门文章

最新文章