【机器学习4】降维

news/2025/2/15 23:46:53/

常见的降维方法有主成分分析、 线性判别分析、 等距映射、 局部线性嵌入、 拉普拉斯特征映射、 局部保留投影等。

1 PCA最大方差角度理解

PCA无监督学习算法。
PCA的目标, 即最大化投影方差, 也就是让数据在主轴上投影的方差最大。
在这里插入图片描述
在黄线所处的轴上, 数据分布得更为分散, 这也意味着数据在这个方向上方差更大。 在信号处理领域, 我们认为信号具有较大方差, 噪声具有较小方差, 信号与噪声之比称为信噪比。 信噪比越大意味着数据的质量越好。
在这里插入图片描述

在这里插入图片描述
其实就是样本协方差矩阵,我们将其写作Σ,由于ω是单位方向向量, 即有ωTω=1。要求解投影后方差最大化问题, 可表示为:
在这里插入图片描述在这里插入图片描述x投影后的方差就是协方差矩阵的特征值。 我们要找到最大的方差也就是协方差矩阵最大的特征值, 最佳投影方向就是最大特征值所对应的特征向量。 得到以下PCA的求解方法:

( 1) 对样本数据进行中心化处理。
( 2) 求样本协方差矩阵。
( 3) 对协方差矩阵进行特征值分解, 将特征值从大到小排列。
( 4) 取特征值前d大对应的特征向量ω1,ω2,…,ωd, 通过以下映射将n维样本映
射到d维:
在这里插入图片描述新的xi′的第d维就是xi在第d个主成分ωd方向上的投影, 通过选取最大的d个特征值对应的特征向量, 我们将方差较小的特征( 噪声) 抛弃, 使得每个n维列向量xi被映射为d维列向量xi′, 定义降维后的信息占比为:
在这里插入图片描述

2 PCA最小平方误差角度理解

从求解直线的思路出发, 很容易联想到数学中的线性回归问题, 其目标也是求解一个线性函数使得对应直线能够更好地拟合样本点集合。 如果我们从这个角度定义PCA的目标, 那么问题就会转化为一个回归问题。即把样本点投影到最佳直线, 最小化的就是所有点到直线的距离平方之和。
在这里插入图片描述
PCA要优化的目标为:
在这里插入图片描述在这里插入图片描述
进行推导:
在这里插入图片描述
因此原来的式子可以表示为:

在这里插入图片描述
这等价于求解带约束的优化问题:
在这里插入图片描述
如果我们对W中的d个基 依次求解, 就会发现和最大方差理论的方法完全等价。 比如当d=1时, 我们实际求解的问题是:
在这里插入图片描述
最佳直线ω与最大方差法求解的最佳投影方向一致, 即协方差矩阵的最大特征值所对应的特征向量, 差别仅是协方差矩阵Σ的一个倍数, 以及常数.但这并不影响我们对最大值的优化。

3 线性判别分析LDA

LDA有监督学习算法。最大化类间距离、 最小化类内距离。

在PCA中, 算法没有考虑数据的标签(类别) , 只是把原数据映射到一些方差比较大的方向上而已。

在这里插入图片描述
在这里插入图片描述从这里我们可以看出, 我们最大化的目标对应了一个矩阵的特征值, 于是LDA降维变成了一个求矩阵特征向量的问题。 J(ω)就对应了矩阵 Sw−1SB最大的特征值, 而投影方向就是这个特征值对应的特征向量。换句话说, 我们只需要求样本的均值和类内方差, 就可以马上得出最佳的投影方向ω。

4LDA和PCA区别与联系

从目标出发, PCA选择的是投影后数据方差最大的方向。 由于它是无监督的, 因此PCA假设方差越大, 信息量越多, 用主成分来表示原始数据可以去除冗余的维度, 达到降维。 而LDA选择的是投影后类内方差小、 类间方差大的方向。 其用到了类别标签信息, 为了找到数据中具有判别性的维度, 使得原始数据在这些方向上投影后, 不同类别尽可能区分开。


http://www.ppmy.cn/news/1205809.html

相关文章

Confluence 漏洞复现(CVE-2023-22515)

Confluence 漏洞复现(CVE-2023-22515,CVE-2023-22518) 1.CVE-2023-22515权限提升漏洞 1.1漏洞描述 Confluence近期推出的严重漏洞cve-2023-22515,由于未授权和xwork框架问题,导致攻击者可以未授权将系统设置为未安装…

Rust函数进阶

文章目录 函数函数中的函数lambda表达式函数作为参数 Rust系列:初步⚙所有权⚙结构体和枚举类 函数 先来回顾一下Rust中函数的创建过程,在Rust中,函数用fn声明,如有传入参数或返回值,都需要声明数据类型,…

微信小程序:js实现不改变原数组的情况下增加一条对象到新数组中

效果 核心 old_array.slice(0) 表示对 old_array 这个数组进行切片操作,从索引 0 开始(包括索引 0),直到数组的末尾,old_array.slice(0) 中的 0 表示开始切片的索引位置,而由于没有传入第二个参数&#xff…

牛客算法题:B-装进肚子

题目 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 自从ZZZZone吃完糖果后,他开始改吃巧克力了,他每天想吃n个巧克力增在甜蜜值,他决定早上吃K个巧克力,晚上吃n - K个巧克力&#…

怎么剔除掉六十岁(退休)以上的人(python自动化办公)

怎么剔除掉六十岁(退休)以上的人(python自动化办公) 需求分析: 1.本代码的要求是从表1中根据姓名合并表2 2.删除掉为空的人数 ,后面再合并 3.表格内的19971111,所以首先需要得到年份 4.找出大…

maven中的install 和 clean命令,以及compile、、package、test等操作介绍

maven中的install命令 主要就是谁要被其他模块依赖就install谁 Maven工具可以进行clean、compile、install、package、test等操作,但是这些操作有什么用呢,以下面的p2p-exterface为例说明一下,pwp-exterface工程目录如下: com…

Python项目移到Linux环境下出现ModuleNotFoundError: No module named ‘xxx‘解决方案

1、自建的module包所在路径不在PYTHONPATH下 在IDE中执行python程序,编译器会自动把当前项目的根目录加入到包查找路径中,可以理解为加到PYTHONPATH下,所以直接执行是没有问题的。但是在cmd或者terminal控制台中直接使用python相关命令来执行…

vue3+setup 解决:this.$refs引用子组件报错 is not a function

一、如果在父组件中以下四步都没问题的话&#xff0c;再看下面步骤 二、如果父组件引用的是index页面 请在 头部加上以下代码 &#xff08;如果是form页面请忽略这一步&#xff09; <template> <a-modalv-model:visible"visible"title"头部名称&…