《机器学习高频面试题详解》2.5:降维算法-主成分分析

点击上方卡片链接就可以进入专栏,专栏右上角有订阅选项,欢迎大家订阅~

前言

大家好,我是鬼仔,今天带来《机器学习高频面试题详解》专栏的第2.5节:降维算法-主成分分析(PCA)。这是鬼仔第一次开设专栏,每篇文章鬼仔都会用心认真编写,希望能将每个知识点讲透、讲深,帮助同学们系统性地学习和掌握机器学习中的基础知识,希望大家能多多支持鬼仔的专栏~

目前这篇是试读,后续的文章需要订阅才能查看哦,专栏预计更新30+篇文章(只增不减),具体内容可以看专栏介绍,大家的支持是鬼仔更新的动力!

本文大纲

一、原理

1. PCA算法过程

2. PCA理论基础

二、面试真题

1. PCA算法过程中需要数据标准化?

2. PCA算法怎么找到新的降维维度?

3. PCA算法为什么需要计算协方差矩阵?

4. PCA为什么要用协方差矩阵的特征向量矩阵来做投影矩阵?

5. PCA算法的优缺点?

6. PCA算法有哪些改进方向?

一、原理

1. PCA算法过程

PCA(Principal Component Analysis,主成分分析)是一种广泛应用于数据降维、特征抽取和数据可视化的线性变换方法。这里通过几个步骤来解释 PCA 的计算过程。

假设有一个m \times n的数据矩阵X,其中m表示数据的样本数,n表示每个样本的特征数。PCA 的目标是将这n个特征合理地压缩成kk<n)个维度,同时保证新的k个特征能够最大程度地解释原数据中的信息。

具体的计算过程如下:

1)数据标准化:对原始数据矩阵X进行标准化处理,使得每个特征的均值为 0,方差为 1:

z_{ij} = \frac{x_{ij} - \bar{x}_j}{\sqrt{\frac{1}{n} \sum_{k=1}^n (x_{kj} - \bar{x}_j)^2}} \quad (i=1,2,\dots,m; j=1,2,\dots,n)

其中x_{ij}表示原始数据矩阵X中第i个样本的第j个特征值,\bar{x}_j表示第j个特征的均值,n表示数据总样本数。

2)计算协方差矩阵:根据标准化后的数据计算协方差矩阵C,表示各个特征之间的相关性大小:

C = \frac{1}{m-1}ZZ^T

其中Z为标准化后的数据矩阵。

3) 计算特征值和特征向量:对协方差矩阵C进行特征值分解,得到Cn个特征值\lambda_1,\lambda_2,\dots,\lambda_n和对应的特征向量v_1,v_2,\dots,v_n

4)选取主成分:将特征值从大到小排序,选取前k个特征值对应的特征向量作为主成分(k<n)。这k个特征向量构成一个n \times k的矩阵V_k

5)投影数据:使用标准化的数据矩阵Z和选取的主成分矩阵V_k,按照以下公式计算降维后的数据矩阵Y

Y=ZV_k

其中,Y是一个m \times k的矩阵,每一行表示一个样本在k个主成分上的投影。

最终得到的低维Y矩阵即为原始高维数据集Xk维空间中的投影。

2. PCA理论基础

PCA的基本思想是通过线性投影,将高维数据转换到低维空间,同时最大限度地保留原始数据的信息。这些信息用数据的方差表示,方差越大,说明这个方向上的信息越多。PCA 确定的低维空间可以最大限度地区分数据点并去除冗余特征,PCA有着严谨的理论基础,具体的数理证明过程就不再阐述,这里主要提几个关键步骤的理论支撑,用于大部分的面试已足矣。

1)均值与协方差:PCA 首先对原始数据进行中心化处理,确保分析主成分时涉及的向量(特征)均为零均值,更有效地凸显原始数据的变化(方差)。同时,中心化也提供了数据规范化的基础,便于接下来的降维分析。然后计算数据的协方差矩阵,衡量各特征之间的相关性。

2)最大方差原理:PCA 基于最大方差原理,即认为解释数据变化的重要信息(主成分)与其方差成正比。因此,通过找到在低维空间上最大化数据方差的方向,使得投影后的数据最大程度地保留了原始信息。

3)特征值与特征向量:要计算新的主成分,需要确定协方差矩阵的特征值和特征向量。特征向量表示主成分的方向,而对应的特征值表示主成分在该方向上解释的数据方差。特征值越大,说明对应的特征向量在新空间的方向上含有更多原始数据的信息。

4)降维:将特征值从大到小排序,对应的特征向量则为降维后的主成分。选择前 k 个最大特征值对应的特征向量确定降维矩阵。通过将原始数据投影到降维矩阵上,可以生成降维后的新数据集。

二、面试真题

1. PCA算法过程中需要数据标准化?

需要。理由如下:

1)数据尺度差异:不同特征可能具有不同的量纲和数据范围。例如,一个特征可能表示长度(以米为单位),另一个特征可能表示重量(以千克为单位)。在这种情况下,量纲和尺度的差异可能导致某些具有较大尺度的特征在 PCA 中占据主导地位。为解决这个问题,在执行 PCA 之前先对特征进行标准化,以避免尺度差异对结果产生显著影响。

2)更准确的协方差估计:标准化数据可确保各个特征的均值为0,方差为1。这有助于更准确地估计特征间的协方差,从而进行更有效的降维分析。

3)提升性能:通过将数据转换为统一尺度,可以确保特征在模型训练中得到平等对待。

2. PCA算法怎么找到新的降维维度?

PCA算法目的是找到新的维度,尽可能多的保留原数据的信息,且维度数减少。新的维度之间要求各无相关性,即坐标点分散

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

机器学习高频面试题详解 文章被收录于专栏

专栏作者曾在校招期间拿到包括字节、微信和华为等多家大厂的SSP offer,该专栏主要是为了帮助同学们系统性地学习和掌握机器学习中的基础知识。专栏详细地整理了各大厂的算法岗面经,力争深入浅出地讲解重要知识点,适合人群为准备校招或者实习,且目标岗位为算法岗、数据挖掘岗或者数据分析岗的同学。

全部评论

相关推荐

10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
5 3 评论
分享
牛客网
牛客企业服务