LDA学习笔记
线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法。其思想非常朴素,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类的样例的投影点尽可能的远离,在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别。

右图要比左图的投影效果好,因为右图的红色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。以上就是LDA的主要思想了,当然在实际应用中,我们的数据是多个类别的,我们的原始数据一般也是超过二维的,投影后的也一般不是直线,而是一个低维的超平面。
二类LDA原理
给定数据集
, 第i类示例的集合
, 第i类示例的均值向量
, 第i类示例的协方差矩阵
, 两类样本的中心在直线上的投影:
和
, 两类样本的协方差:
,欲使同类样例的投影尽可能的接近,可以让同类样例投影点的协方差尽可能小,即
尽可能的小;而欲使异类样例的投影点尽可能远离,可以让类中心之间的距离尽可
能大,即
尽可能大,同时考虑二者,则可得到欲最大化的目标

定义“类内散度矩阵”

以及“类间散度矩阵”

则J可重写为

这就是LDA欲最大化的目标,即
与
的“广义瑞丽商”
首先该式子分子和分母都是关于
的二次项,因此解与
的长度无关,只和方向有关。(如果
是一个解,那么对于任意常数α,
也是一个解。)。不失一般性,可令分母
那么原式等价于:

对于式子的求解,一般可用拉格朗日乘子法解决,同时LDA同样适用于多分类的问题。
补充:
- 从贝叶斯决策理论的角度可以证明LDA在两类数据同先验、满足高斯分布且协方差相等时,LDA可达到最优分类。
- LDA核心是投影,这样往往实现了降维,因而LDA也常被视为一种经典的监督降维技术。
LDA学习笔记的更多相关文章
- LDA主题模型学习笔记5:C源代码理解
1.说明 本文对LDA原始论文的作者所提供的C代码中LDA的主要逻辑部分做凝视,原代码可在这里下载到:https://github.com/Blei-Lab/lda-c 这份代码实现论文<Lat ...
- cips2016+学习笔记︱简述常见的语言表示模型(词嵌入、句表示、篇章表示)
在cips2016出来之前,笔者也总结过种类繁多,类似词向量的内容,自然语言处理︱简述四大类文本分析中的"词向量"(文本词特征提取)事实证明,笔者当时所写的基本跟CIPS2016一 ...
- 概率图模型学习笔记:HMM、MEMM、CRF
作者:Scofield链接:https://www.zhihu.com/question/35866596/answer/236886066来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- 转 :hlda文献学习笔记
David M.BLEI nCR文献学习笔记(基本完成了) http://yhbys.blog.sohu.com/238343705.html 题目:The Nested Chinese Resta ...
- AI学习笔记:特征工程
一.概述 Andrew Ng:Coming up with features is difficult, time-consuming, requires expert knowledge. &quo ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
随机推荐
- 安装ubuntu-tweak
第一步:添加tweak源 sudo add-apt-repository ppa:tualatrix/ppa 第二步:更新 sudo apt-get update 第三步:安装ubuntu-t ...
- 实战 Lucene2.0
Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家 ...
- lintcode_111_爬楼梯
爬楼梯 描述 笔记 数据 评测 假设你正在爬楼梯,需要n步你才能到达顶部.但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 您在真实的面试中是否遇到过这个题? Yes 哪家公司问你的 ...
- Atlas实现mysql主从分离
可以接受失败,无法接受放弃!加油! 一.介绍Atlas及架构图 Atlas源代码用C语言编写,它对于Web Server相当于是DB,相对于DB相当于是Client,如果把Atlas的逻辑放到Web ...
- SSH 登录时出现如下错误:No supported key exchange algorithms
https://help.aliyun.com/knowledge_detail/41486.html
- 汇编:实现C语言的 ||与&&运算
;C程序转汇编(或运算链接) DATAS SEGMENT a Dw b dw cc dw d dw m dw n dw string db dup(?) DATAS ends CODES SEGMEN ...
- ethereum(以太坊)(十一)--字节数组(一)
pragma solidity ^0.4.0; contract byte1{ /* 固定大小字节数组(Fixed-size byte arrays) 固定大小字节数组可以通过bytes1,bytes ...
- python__系统 : 线程
线程之间,全局变量可以共享,但是局部变量依然是不共享的,线程的创建方式: threading.Thread(),还可以定义一个类继承Thread,重写他的run方法,具体和进程的写法一样. 那么,线程 ...
- 两种查看SIP版本的方法python
第一种:进入python命令行 print(sip.SIP_VERSION_STR) 注意对应的PyQt版本号和大小写 print(PyQt5.sip.SIP_VERSION_STR) 第二种:直接在 ...
- POJ:2367-Cleaning Shifts
传送门:http://poj.org/problem?id=2376 Cleaning Shifts Time Limit: 1000MS Memory Limit: 65536K Total Sub ...