【机器学习】面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?

简介: 本文介绍了主成分分析(PCA)算法,包括PCA的基本概念、算法过程、中心化处理的必要性、正交变换的目的,以及PCA与线性判别分析(LDA)在降维上的区别。

面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?

(1)简单介绍一下PCA

主成分分析(Principal componet analysis,PCA) 是一种无监督学习方法,利用正交变换把线性相关变量表示的观测数据转换为几个由线性无关变量表示的数据,线性无关的变量成为主成分。主成分的个数通常小于原始变量的个数,属于降维方法。根据分解协方差矩阵的策略,分为两种PCA方法,第一种是基于特征值分解协方差矩阵实现PCA算法,第二种是基于奇异值分解法(SVD)分解协方差矩阵实现PCA算法。

(2)PCA的算法过程

  • 对样本数据中心化处理
  • 求样本协方差矩阵
  • 对协方差矩阵进行特征值分解,将特征值从大到小排列
  • 取特征值前d大的特征向量$w1​,w2​,...,wd​$,通过以下映射将n维样本映射到d维度。

$$X_i^{’} = [w_1^Tx_i,w_2^Tx_i,...,w_d^Tx_i]^T$$

其中协方差分解,具体查看博客PCA 主成分分析算法过程及原理讲解
(3)PCA为什么要中心化

把坐标原点放在数据的中心,找方差最大的方向,如果不放在中心,坐标原点就是数据的旁边,映射不到坐标上。

具体讲解看视频解析:B站讲解PCA

(4)PCA的主成分是什么

主成分分析(Principal componet analysis,PCA) 是一种无监督学习方法,利用正交变换把线性相关变量表示的观测数据转换为几个由线性无关变量表示的数据,线性无关的变量称为主成分。

(5)PCA 中为什么要做正交变换?

PCA 的思想是将 n 维特征映射到 d 维上(d<n),这 d 维是全新的正交特征。这 d维特征称为主成分,是重新构造出来的 d 维特征,而不是简单地从 n 维特征中去除其余 n-d维特征。PCA 的目的是选择更少的主成分,那些选上的主成分能够解释数据集中最大方差。通过正交变换,各主成分的相对位置不发生变化,它只能改变点的实际坐标。
(6)PCA与线性判别分析LDA降维的区别?

  • PCA是非监督的学习算法,LDA是有监督的学习算法,考虑了类别标签
  • PCA选择的是投影后数据方差最大的方向。PCA假设方差越大,信息量越大,用主成分来表示原始数据可以去除冗余的维度,达到降维。LDA选择的是投影后类内方差小,类间方差大的方向,用到了类别标签信息,为了找到数据中具有判别性的维度,使得原始数据在这些方向上投影后,不同类别尽可能区分开。
目录
相关文章
|
14天前
|
人工智能 算法 BI
第一周算法设计与分析 D : 两面包夹芝士
这篇文章介绍了解决算法问题"两面包夹芝士"的方法,通过找出两个数组中的最大最小值,计算这两个值之间的整数个数,包括特判不存在整数的情况。
|
14天前
|
机器学习/深度学习 算法 数据挖掘
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
|
6天前
|
算法 数据可视化
基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
奇异谱分析(SSA)是一种基于奇异值分解(SVD)和轨迹矩阵的非线性、非参数时间序列分析方法,适用于提取趋势、周期性和噪声成分。本项目使用MATLAB 2022a版本实现从强干扰序列中提取趋势线,并通过可视化展示了原时间序列与提取的趋势分量。代码实现了滑动窗口下的奇异值分解和分组重构,适用于非线性和非平稳时间序列分析。此方法在气候变化、金融市场和生物医学信号处理等领域有广泛应用。
|
14天前
|
算法
算法设计与分析作业
这篇文章是关于算法设计与分析的作业,其中包含了两个算法实现:一个是使用分治算法实现的十进制大整数相乘(包括加法、减法和乘法函数),并进行了正确性和健壮性测试;另一个是使用快速排序思想实现的分治查找第K小元素的程序,并分析了其平均和最坏时间复杂度。
算法设计与分析作业
|
6天前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
9天前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
78 1
|
10天前
|
编解码 算法 图形学
同一路RTSP|RTMP流如何同时回调YUV和RGB数据实现渲染和算法分析
我们播放RTSP|RTMP流,如果需要同时做渲染和算法分析的话,特别是渲染在上层实现(比如Unity),算法是python这种情况,拉两路流,更耗费带宽和性能,拉一路流,同时回调YUV和RGB数据也可以,但是更灵活的是本文提到的按需转算法期望的RGB数据,然后做算法处理
|
14天前
|
人工智能 算法
第一周算法设计与分析:C : 200和整数对之间的情缘
这篇文章介绍了解决算法问题"200和整数对之间的情缘"的方法,通过统计数组中每个数模200的余数,并计算每个同余类中数的组合数来找出所有满足条件的整数对(i, j),使得\( A_i - A_j \)是200的整数倍。
|
14天前
|
机器学习/深度学习 算法 数据挖掘
机器学习必知必会10大算法
机器学习必知必会10大算法
|
14天前
|
人工智能 算法
第一周算法设计与分析 G : 排队援救
这篇文章介绍了解决算法问题"排队援救"的方法,通过使用队列和映射来模拟救援点的排队过程,并确定最终得到救援的人的顺序和编号。