机器学习-无监督机器学习-LDA线性判别分析-25
1. Linear Discriminant Analysis 线性判别分析
经常被用于分类问题的降维技术,相比于PCA,LDA可以作为一种有监督的降维算法,降维的时候用到了y的真实值,有监督的降维。
在PCA中,算法没有考虑数据的标签(类别),只是把原数据映射到一些方差比较大的方向上而已。

如下图所示,根据PCA算法,数据应该映射到方差最大的那个方向上,但是,两个不同类别的数据就会完全混合在一起,很难区分开。所以,使用PCA算法进行降维后再进行分类的效果会非常差;但是,如果使用LDA算,数据会反而映射到成90度的另外一个轴方向。
从一个简单的二分类问题出发,有C1, C2两个类别的样本

可以计算起均值也就是中心所在的位置。
希望投影之后两类之间的距离尽可能大,
其中
表示两类的中心在
方向上的投影向量

因此需要优化的问题为:

当
方向与
一致的时候,该距离达到最大值,
LDA的中心思想:最大化类间距离和最小化类内距离
数学表达:


分别表示两类投影后的方差

定义类间散度:
类内散度:
目标函数变成:
对w求偏导,并令导数等于零得到:

令:


这个式子就很熟悉了,特征值与特征向量。

就对应了矩阵
最大的特征值,而投影方向就是这个特征值对应的特征向量,这就是对于LDA给出我们的最优解。
LDA求解方法:
1 计算数据集中每个类别样本的均值向量
,及总体均值向量
2 计算类内散度矩阵
,全局散度矩阵
,并得到类间散度矩阵
3 对矩阵
进行特征值分解,将特征值从大到小排列
4 取特征值前d大的对应的特征向量
,通过以下映射将n维样本映射到d维

总结:
另外,在人脸识别领域中,PCA和LDA都会被频繁使用。基于PCA的人脸识别方法也称为特征脸(Eigenface)方法,该方法将人脸图像按行展开形成一个高维向量,对多个人脸特征的协方差矩阵做特征值分解,其中大特征值对应的特征向量具有与人脸相似的形状,故称为特征脸。人脸识别在降维后的空间上进行,由于其利用PCA进行降维,一般情况下保留的是最佳描述特征(主成分),而非分类特征。如果我们想要达到更好的脸识别效果,应该用LDA方法对数据集进行降维,使得不同人脸在投影后的特征具有一定区分性。
机器学习-无监督机器学习-LDA线性判别分析-25的更多相关文章
- 机器学习: Linear Discriminant Analysis 线性判别分析
Linear discriminant analysis (LDA) 线性判别分析也是机器学习中常用的一种降维算法,与 PCA 相比, LDA 是属于supervised 的一种降维算法.PCA考虑的 ...
- PCA主成分分析 ICA独立成分分析 LDA线性判别分析 SVD性质
机器学习(8) -- 降维 核心思想:将数据沿方差最大方向投影,数据更易于区分 简而言之:PCA算法其表现形式是降维,同时也是一种特征融合算法. 对于正交属性空间(对2维空间即为直角坐标系)中的样本点 ...
- LDA线性判别分析原理及python应用(葡萄酒案例分析)
目录 线性判别分析(LDA)数据降维及案例实战 一.LDA是什么 二.计算散布矩阵 三.线性判别式及特征选择 四.样本数据降维投影 五.完整代码 结语 一.LDA是什么 LDA概念及与PCA区别 LD ...
- LDA线性判别分析
LDA线性判别分析 给定训练集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能的近,异类样例点尽可能的远,对新样本进行分类的时候,将新样本同样的投影,再根据投影得到的位置进行判断,这个新样本的 ...
- 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- LDA线性判别分析(转)
线性判别分析LDA详解 1 Linear Discriminant Analysis 相较于FLD(Fisher Linear Decriminant),LDA假设:1.样本数据服从正态分布,2 ...
- LDA 线性判别分析
LDA, Linear Discriminant Analysis,线性判别分析.注意与LDA(Latent Dirichlet Allocation,主题生成模型)的区别. 1.引入 上文介绍的PC ...
- LDA(线性判别分析,Python实现)
源代码: #-*- coding: UTF-8 -*- from numpy import * import numpy def lda(c1,c2): #c1 第一类样本,每行是一个样本 #c2 第 ...
- 机器学习理论基础学习3.2--- Linear classification 线性分类之线性判别分析(LDA)
在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然语言处理领域, LDA是隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),是一种处理文档的主题 ...
- 机器学习中的数学-线性判别分析(LDA)
前言在之前的一篇博客机器学习中的数学(7)——PCA的数学原理中深入讲解了,PCA的数学原理.谈到PCA就不得不谈LDA,他们就像是一对孪生兄弟,总是被人们放在一起学习,比较.这这篇博客中我们就来谈谈 ...
随机推荐
- jenkins pipeline语法、自动生成、部署案例
Jenkins Pipeline是一套插件,支持在Jenkins中实现持续集成和持续交付: pipeline的编写都要写入到一个名为Jenkinsfile的文件中. 流水线脚本管理 Jenkinsfi ...
- 操作系统大作业:在Linux环境下模拟实现简单命令解释器(代码部分)
好家伙 1. 题目要求 一. 课程设计(大作业)目的 熟悉Linux编程环境,加强对Linux命令的理解及函数的运用,完成一个操作系统的部分系统的设计过程.编码.调试,锻炼实际应用能力. 二. ...
- C++ Qt开发:TableView与TreeView组件联动
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TableVi ...
- Kernel Memory 入门系列:Semantic Kernel 插件
Kernel Memory 入门系列:Semantic Kernel 插件 Kernel Memory 本身提供了完整的RAG能力,这部分能力如果通过Semantic Kernel Memory的话, ...
- ElasticSearch之Merge
Elasticsearch的shard,即对应Lucene的index. Lucene的index由多个segment组成. segment是index保存数据的最小单位,不支持修改. Elastic ...
- 如何用.net制作一个简易爬虫抓取华为应用市场数据
公司最近要做一款手机,手机需要制作一个应用市场.那么问题来了,自己制作应用市场,数据从哪来呢?作为一个创业型公司.搜集数据变成为了难题. 于是突然想到能不能通过程序去抓取别人应用市场的数据-- 那么我 ...
- libGDX游戏开发之文理打包(八)
libGDX游戏开发之文理打包(八) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和googl ...
- 2023-05-13:你现在手里有一份大小为 n x n 的 网格 grid, 上面的每个 单元格 都用 0 和 1 标记好了其中 0 代表海洋,1 代表陆地。 请你找出一个海洋单元格,这个海洋单元格
2023-05-13:你现在手里有一份大小为 n x n 的 网格 grid, 上面的每个 单元格 都用 0 和 1 标记好了其中 0 代表海洋,1 代表陆地. 请你找出一个海洋单元格,这个海洋单元格 ...
- Windows下编译64位CGAL
目录 1. 准备 2. CMake构建 1. 准备 CGAL的官网准备了压缩包和安装程序两种类型的的源代码,推荐使用安装程序包,因为其中自带了编译好的gmp和mpfr库.gmp和mpfr是CGAL的依 ...
- 教你几个部署多个nginx-ingress的注意事项
本文分享自华为云社区<nginx-ingress工作原理以及多nginx-ingress部署注意事项>,作者: 可以交个朋友. 一.nginx-ingress工作原理 nginx-ingr ...