降维

降维

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

1 PCA最大方差理论

PCA属于一种线性、非监督、全局的降维算法

问题:如何定义主成分?从这种定义出发,如何设计目标函数使得降维达到提取主成分的目的?针对这个目标函数,如何对PCA问题进行求解?

PCA旨在找到数据中的主成分,并利用这些主成分表征原始数据,从而达到降维的目的。

在信号处理领域,认为信号具有较大方差,噪声具有较小方差,信号与噪声之比称为信噪比。信噪比越大意味着数据的质量越好,反之,信噪比越小意味着数据的质量越差。

引出PCA的目标,即最大化投影方差,也就是让数据在主轴上投影的方差最大。

向量内积在几何上表示为第一个向量投影到第二个向量上的长度。

x 投影后的方差就是协方差矩阵的特征值。要找到最大的方差也就是协方差矩阵最大的特征值,最佳投影方向就是最大特征值所对应的特征向量。次投影方向位于最佳投影方向的正交空间中,是第二大特征值对应的特征向量。

求解PCA的求解方法:
(1)对样本数据进行中心化处理。
(2)求样本协方差矩阵
(3)对协方差矩阵进行特征值分解,将特征值从大到小排列。
(4)取特征值前d大对应的特征向量

由于PCA是一种线性降维方法,虽然经典,但具有一定的局限性。可以通过核映射对PCA进行扩展得到核主成分分析(KPCA),也可以通过流形映射的降维方法,比如等距映射、局部线性嵌入、拉普拉斯特征映射等,对一些PCA效果不好的复杂数据集进行非线性降维操作。

2 PCA最小平方误差理论

问题:PCA求解的其实是最佳投影方向,即一条直线,这与数学中线性回归问题的目标不谋而合,能否从回归的角度定义PCA的目标并相应地求解问题?

3 线性判别分析

线性判别分析是一种有监督学习算法,同时经常被用来对数据进行降维。LDA是目前机器学习、数据挖掘领域中经典且热门的一种算法。

相比于PCA,LDA可以作为一种有监督的降维算法。在PCA中,算法没有考虑数据的标签(类别),只是把原数据映射到一些方差较大的方向上。

问题:对于具有类别标签的数据,应当如何设计目标函数使得降维的过程中不损失类别信息?在这种目标下,应当如何进行求解?

LDA的中心思想——最大化类间距离,最小化类内距离

最大化的目标对应了一个矩阵的特征值,于是LDA降维变成 了一个求矩阵特征向量的问题。投影方向就是矩阵最大特征值对应的特征向量。

只需要求样本的均值和类内方差,就可以得出最佳的投影方向w

LDA相比于PCA更善于对有类别信息的数据进行降维处理,但它对数据的分布做了一些很强的假设,例如,每个类数据都是高斯分布、各个类的协方差相等。
尽管这些假设在实际中并不一定满足,但LDA已被证明是非常有效的一种降维方法。主要是因为线性模型对于噪声的鲁棒性比较好,但由于模型简单,表达能力有一定局限性,可以通过引入核函数扩展LDA方法以处理分布较为复杂的数据。

4 线性判别分析与主成分分析

问题:LDA和PCA作为经典的降维算法,如何从应用的角度分析其原理的异同?从数学推导的角度,两种降维算法在目标函数上有何区别与联系?

从PCA和LDA两种降维方法的求解过程来看,它们确实有着很大的相似性,但对应的原理却有所区别。

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

从应用的角度,一个基本原则——对无监督的任务使用PCA进行降维,对有监督的则应用LDA

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100181.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 实战 | SpringBoot微信点餐系统(附源码)[通俗易懂]

    实战 | SpringBoot微信点餐系统(附源码)[通俗易懂]点击上方“java进阶架构师”,选择右上角“置顶公众号”20大进阶架构专题每日送达架构前后端分离:补充:setting.xml文件的作用:settings.xml是ma…

  • kafuka常用命令[通俗易懂]

    kafuka常用命令[通俗易懂]1.查看所有topic  kafka-topics.sh–zookeeperhad1:2181–list2.查看kafka特定topic的详情,使用–topic与–describe参数  kafka-topics.sh–zookeeperhad1:2181–topiclx_test_topic–describe3.查看consumergroup列表…

  • OpenProcessToken函数 何时会失败「建议收藏」

    OpenProcessToken函数 何时会失败「建议收藏」 OpenProcessToken函数的功能是打开一个与一进程相联系的访问令牌(access  token),它的原型如下:  BOOL  OpenProcessToken(      HANDLE  ProcessHandle,        DWORD  DesiredAccess,        PHANDLE  TokenHandle  );    如同

  • phpstorm2021.2激活码破解方法

    phpstorm2021.2激活码破解方法,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 怎么彻底卸载mysql8.0_彻底卸载MySQL8.0

    怎么彻底卸载mysql8.0_彻底卸载MySQL8.0彻底卸载MySQL8.0(WIN10)环境需求win10MySQL8.0彻底卸载1.停止MySQL服务启动任务管理器—>选择服务—->找到MySQL—->右键停止如果有多个MySQL服务,也全部都要停掉2.卸载MySQL相关所有组件打开看控制面板—->卸载程序—->卸载与MySQL相关的所有组件3.删除MySQL安装目录下的MySQL文件夹如果在其…

  • Vue Router Tab「建议收藏」

    Vue Router Tab「建议收藏」介绍VueRouterTab是基于Vue.js和VueRouter的路由页签组件,用来实现多页签页面的管理。官网演示包含的功能✅响应路由变化来打开或切换页签✅页签过多鼠标滚轮滚动✅页签拖拽排序✅支持页签打开、切换、关闭、刷新、重置等操作✅Iframe页签嵌入外部网站✅组件个性化设置:过渡效果、自定义插槽、页签右键菜单✅多语言支持✅缓存控制:页签规则、页签是否缓存、最大缓存数、是否复用组件等✅动态页签信息:标题、图标、提示✅初始页签数据,进入页

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号