LDA算法入门(转)
LDA算法入门
一. LDA算法概述:
假设对于一个空间有m个样本分别为x1,x2,……xm 即 每个x是一个n行的矩阵,其中
表示属于i类的样本个数,假设有一个有c个类,则
。
………………………………………………………………………… 类间离散度矩阵
………………………………………………………………………… 类内离散度矩阵
………………………………………………………………………… 属于i类的样本个数
…………………………………………………………………………… 第i个样本
…………………………………………………………………………… 所有样本的均值
…………………………………………………………………………… 类i的样本均值
…………………………………………………………………… (1)
………………………………………………………………………… (2)
LDA做为一个分类的算法,我们当然希望它所分的类之间耦合度低,类内的聚合度高,即类内离散度矩阵的中的数值要小,而类间离散度矩阵中的数值要大,这样的分类的效果才好。
其中为任一n维列矢量。Fisher线性鉴别分析就是选取使得
达到最大值的矢量
作为投影方向,其物理意义就是投影后的样本具有最大的类间离散度和最小的类内离散度。
所以根据上述思想,即通过最优化下面的准则函数找到有一组最优鉴别矢量构成的投影矩阵(这里我们也可以看出1/m可以通过分子分母约掉,所以前面所提到的第一组公式和第二组公式所表达的效果是一样的).
………………………………………………………………………… (7)
的d个最大的特征值所对应的特征向量(矩阵的特征向量),且最优投影轴的个数d<=c-1.
根据(7)式可以推出……………………………………………… (8)
下面我们利用LDA进行一个分类的问题:假设一个产品有两个参数来衡量它是否合格,
参数A |
参数B |
是否合格 |
2.95 |
6.63 |
合格 |
2.53 |
7.79 |
合格 |
3.57 |
5.65 |
合格 |
3.16 |
5.47 |
合格 |
2.58 |
4.46 |
不合格 |
2.16 |
6.22 |
不合格 |
3.27 |
3.52 |
不合格 |
实验数据来源:http://people.revoledu.com/kardi/tutorial/LDA/Numerical%20Example.html
所以我们可以根据上图表格把样本分为两类,一类是合格的,一类是不合格的,所以我们可以创建两个数据集类:
其中cls1_data为合格样本,cls2_data为不合格的样本,我们根据公式(1),(2)可以算出合格的样本的期望值,不合格类样本的合格的值,以及总样本期望:
我们在可以根据表达式(3),(4)可以计算出类间离散度矩阵和类内离散度矩阵:
我们可以根据公式(7),(8)算出特征值以及对应的特征向量:
根据取最大特征值对应的特征向量:(-0.9230,-0.3848),该向量即为我们要求的子空间,我们可以把原来样本投影到该向量后 所得到新的空间(2维投影到1维,应该为一个数字)
为不合格样本投影后的样本值,我们发现投影后,分类效果比较明显,类和类之间聚合度很高,我们再次作图以便更直观看分类效果
我们再利用所得到的特征向量,来对其他样本进行判断看看它所属的类型,我们取样本点
我们把它投影到特征向量后得到:result = -4.6947 所以它应该属于不合格样本。
From:http://blog.csdn.net/warmyellow/article/details/5454943
LDA算法入门(转)相关推荐
- 独家 | 利用Python实现主题建模和LDA 算法(附链接)
作者:Susan Li翻译:陈之炎校对:陈汉青本文约1900字,建议阅读5分钟在这篇文章,我们将LDA应用于一组文档,并将文档按照主题分类. 标签:LDA 算法 主题建模是一种用于找出文档集合中抽象& ...
- 如何求解问题--数据结构与算法入门
如何求解问题–数据结构与算法入门 在学习数据结构与算法前,我们大多有这样的困惑,难道学习了数据结构与算法就能帮助我们解决学习Java.Python时的大作业吗?数据结构与算法是什么? 回答这个问题之前 ...
- NLP之TM之LDA:利用LDA算法瞬时掌握文档的主题内容—利用希拉里邮件数据集训练LDA模型并对新文本进行主题分类
NLP之TM之LDA:利用LDA算法瞬时掌握文档的主题内容-利用希拉里邮件数据集训练LDA模型并对新文本进行主题分类 目录 输出结果 设计思路 核心代码 训练数据集 LDA模型应用 输出结果 设计思路 ...
- FE之DR之线性降维:PCA/白化、LDA算法的数学知识(协方差矩阵)、相关论文、算法骤、代码实现、案例应用等相关配图之详细攻略
FE之DR之线性降维:PCA/白化.LDA算法的数学知识(协方差矩阵).相关论文.算法骤.代码实现.案例应用等相关配图之详细攻略 目录 PCA 1.PCA的数学知识 1.协方差矩阵计算 2.PCA算法 ...
- 数据结构与算法入门---数据结构类型
数据结构与算法入门---数据结构类型 数据的逻辑结构 数据的逻辑结构指数据元素之间的逻辑哦关系(和实现无关) 分类一:线性结构和非线性结构 线性结构:有且只有一个开始结点和一个终端节点,并且所有节点都 ...
- 递归算法 流程图_什么是算法?如何学习算法?算法入门的学习路径
什么是算法? 有一个很著名的公式 "程序=数据结构+算法". 曾经跟朋友吃饭的时候我问他什么是算法,他说算法嘛,就是一套方法,需要的时候拿过来,套用就可以,我吐槽他,他说的是小学数 ...
- 数据结构算法入门--链表
2019 年第 76 篇文章,总第 100 篇文章 本文大约 3200 字,阅读大约需要 10 分钟 数据结构算法系列: 数据结构算法入门系列第三篇--链表,链表也是非常常见的数据结构,面试过程中也会 ...
- 算法入门篇九 暴力递归
牛客网 左程云老师的算法入门课 暴力递归 原则 汉诺塔问题 问题 打印n层汉诺塔从左边移动到最右边的过程 思想 一共六个过程,左到右.左到中,中到左,中到右,右到左,右到中,互相嵌套使用 左到右 将 ...
- 算法入门篇八 贪心算法
牛客网 左程云老师的算法入门课 贪心算法 贪心算法的解题步骤 例子 题目要求 解题策略 按照结束时间早的会议先安排,比如先安排[2,4],当4结束了,所有开始时间小于4的全部淘汰,[1,7].[3 ...
最新文章
- eyoucms问答 百度权重是什么
- 【BZOJ3551】Peaks加强版,主席树+kruskal重构+dfs序+倍增思想
- alias怎么每次登陆都保存_设置alias别名并使之重启或者注销用户之后依旧生效...
- 华为鸿蒙OS用户今年底或达2亿 将发布自研鸿蒙编程语言
- eclipse 中配置外部 tomcat 的debug
- python代码转换为pytorch_python基础教程Pytorch之Tensor和Numpy之间的转换的实现方法...
- Myeclipse中JSP页面快捷键注释失效解决方法
- 关于非堆内存申请的性能测试
- 安装python Scipy库记录
- 解决Linux系统不能上网问题
- 如何打造高质量的网页内容呢?
- 周末分享 | 2019年最好的演讲:别让任何人打乱你的人生节奏
- 谷歌AlphaFold近日宣称预测出地球上几乎所有蛋白质结构
- Android scheme链接打开本地应用
- 读 S. Meyers 之《Effective C++:改善程序与设计的55个具体做法:第3版》
- 北京航空航天大学计算机科学与工程系,北京航空航天大学计算机科学与工程系.ppt...
- 地平线发布AI on Horizon战略,与首汽约车、禾赛科技分别达成战略合作 | 2019上海车展...
- 温湿度传感器原理介绍
- 【刷题日记】BFS 经典题目
- ROS探索总结(九)——操作杆控制
热门文章
- android手机设置域名ip映射关系
- java基于ssm的教材征订信息管理系统
- 各国语言简写代码/php 获取(判断)操作系统语言
- 二级c语言考试真题及答案,全国计算机二级C语言考试真题及答案.doc
- centos5.6安装mysql,Centos下安装mysql5.6
- ReadPV用法以及启动策略
- WPF编程--3D控件HelixToolkit
- [转]联想Win7 SP1 32位/64位OEM系统[官方原版]
- 【第1章】数据挖掘导论课后习题答案
- 专访央美陈抱阳:艺术家眼中的 AI ,有何不同?