【机器学习】面试问答: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选择的是投影后类内方差小,类间方差大的方向,用到了类别标签信息,为了找到数据中具有判别性的维度,使得原始数据在这些方向上投影后,不同类别尽可能区分开。
目录
相关文章
|
27天前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
85 4
|
24天前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
62 14
|
22天前
|
Java 关系型数据库 数据库
京东面试:聊聊Spring事务?Spring事务的10种失效场景?加入型传播和嵌套型传播有什么区别?
45岁老架构师尼恩分享了Spring事务的核心知识点,包括事务的两种管理方式(编程式和声明式)、@Transactional注解的五大属性(transactionManager、propagation、isolation、timeout、readOnly、rollbackFor)、事务的七种传播行为、事务隔离级别及其与数据库隔离级别的关系,以及Spring事务的10种失效场景。尼恩还强调了面试中如何给出高质量答案,推荐阅读《尼恩Java面试宝典PDF》以提升面试表现。更多技术资料可在公众号【技术自由圈】获取。
|
23天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
39 1
|
1月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
89 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
1月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
37 0
|
1月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
36 0
|
2月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)

热门文章

最新文章