matlab的lda函数,关于LDA的几何表示——MATLAB实现

承接这个PCA的练习,还有一个关于LDA的几何表示。

题目如下:

matlab的lda函数,关于LDA的几何表示——MATLAB实现_第1张图片

代码实现LDA如下:LDA.m

clear

clc

% 生成training sample

MU1 = [6 10]';

MU2 = [6 20]';

SIGMA1 = [2 4; 4 9];

SIGMA2 = [2 4; 4 9];

M1 = mvnrnd(MU1,SIGMA1,1000);

M2 = mvnrnd(MU2,SIGMA2,1000);

M = [M1;M2];

m0 = mean(M);

m1 = mean(M1);

m2 = mean(M2);

%between-class scatter matrix-->SB

SB = (length(M1)/length(M)).*(m1-m0)'*(m1-m0)+(length(M2)/length(M)).*(m2-m0)'*(m2-m0);

%within-class scatter matrix -->SW

WM = [0 0; 0 0];

m = [m1;m2];

for(i=1:2)

for (j=(i-1)*1000+1:i*1000)

WM = WM + (M(j,:)-m(i,:))'* (M(j,:)-m(i,:));

end

end

SW = (WM)/length(M);

%求最大特征值及其对应的特征向量

[V,D] = eig(inv(SW)*SB);

u = V(:,2);

v = u*(1/sqrt(u'*SW*u));

for (i=1:2000)

VD(i,:) = dot(v,M(i,:))*v';

end

%画在同一坐标系下

plot(VD(:,1),VD(:,2),'.',M1,M2,'.')

输出如下:

matlab的lda函数,关于LDA的几何表示——MATLAB实现_第2张图片

可以和上一次的PCA比较一下。

执行如下命令(之前已经写了PCA.m和LDA.m):

96038eb323adcf7951ba4fe9c99895f6.png

输出:

matlab的lda函数,关于LDA的几何表示——MATLAB实现_第3张图片

关于PCA的几何表示——MATLAB实现

关于PCA的一道练习题.这个折腾了好久...终于做出来像样的图,开始的时候忘记对原始数据标准化,怎么也不对.经过标准化之后,做的图看着还可以,有错误请指出! MATLAB代码PCA.m: clear ...

matlab 工具之各种降维方法工具包,下载及使用教程,有PCA, LDA, 等等。。。

最近跑深度学习,提出的feature是4096维的,放到我们的程序里,跑得很慢,很慢.... 于是,一怒之下,就给他降维处理了,但是matlab 自带的什么pca( ), princomp( )函数, ...

LDA算法学习(Matlab实现)

LDA算法 对于两类问题的LDA(Matlab实现) function [ W] = FisherLDA(w1,w2) %W最大特征值对应的特征向量 %w1 第一类样本 %w2 第二类样本 %第一步: ...

机器学习笔记----四大降维方法之PCA(内带python及matlab实现)

大家看了之后,可以点一波关注或者推荐一下,以后我也会尽心尽力地写出好的文章和大家分享. 本文先导:在我们平时看NBA的时候,可能我们只关心球员是否能把球打进,而不太关心这个球的颜色,品牌,只要有3D效 ...

[IR] Concept Search and LDA

重要的是通过实践更深入地了解贝叶斯思想,先浅浅地了解下LDA. From: http://blog.csdn.net/huagong_adu/article/details/7937616/ 传统方法 ...

LDA

2 Latent Dirichlet Allocation Introduction LDA是给文本建模的一种方法,它属于生成模型.生成模型是指该模型可以随机生成可观测的数据,LDA可以随机生成一篇由 ...

lda topic number

Hi Vikas -- the optimum number of topics (K in LDA) is dependent on a at least two factors: Firstly, ...

LDA汇总

1.Blei的LDA代码(C):http://www.cs.princeton.edu/~blei/lda-c/index.html2.D.Bei的主页:http://www.cs.princeton ...

KNN PCA LDA

http://blog.csdn.net/scyscyao/article/details/5987581 这学期选了门模式识别的课.发现最常见的一种情况就是,书上写的老师ppt上写的都看不懂,然后绕 ...

随机推荐

办公大楼3D指纹门禁系统解决方案

随着人们对工作.生活的自动化水平也提出了越来越高的要求.以大楼安保对出入大楼的外来人员进行登记放行或以铁锁.钥匙和卡为代表的出入管理方式已无法满足需求. 利用科技的手段,实现办公大楼的安全现代化.管理 ...

Loaders

Android3.0之后引入了加载器,支持轻松在Activity和Fragment中异步加载数据.加载器具有以下特点: 1.可用于任何Activity和Fragment 2.支持异步加载数据 3.监控 ...

HDU 1728 逃离迷宫(BFS)

Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有 ...

于普通用户启动UAC问题

在VS中设置UAC级别操作如下: 项目属性-配置属性-连接器-清单文件 1.UAC执行级别: aslnvoker: 权限级别最低,不需要管理员身份. highestAvailable:获取最高权限执行 ...

C# out ref 用法总结

C#里面的 out 和ref参数时常会用到,但对它们的区别比较模糊.所以总结一下.下面是测试代码: public void Start() { //outSum没必要赋值,赋值了也完全没用. //如果 ...

2.10 while循环应用

while循环应用 1. 计算1~100的累积和(包含1和100) 参考代码如下: #encoding=utf-8 i = 1 sum = 0 while i <= 100: sum = sum ...

设计模式理解(八)结构型——装饰者模式(记得加上UML图 --- 未完)

一段时间没写,又忘了,晕...设计模式这种东西一定要经常用. 装饰者模式(Decorator)用于动态地给一个对象增加一些额外的职责,就增加功能来说,他比生成子类更为灵活. 装饰者模式的原则是: 能用 ...

Mockito-简单使用使用

参考案例:(本位使用markdown编写) git.oschina实例:https://gitee.com/lhhTestTool/LhhMockito # LhhMockitomock 单元测试 M ...

Android中Handler.removeCallbacksAndMessages(null)的作用

众所周知,在Android开发中会大量使用到Handler.但是,由于与activity生命周期不一致,当一个Activity被销毁时,如果Handler对象有Message在排队,则无法释放,进而导 ...

从零开始写一个npm包及上传

最近刚好自己需要写公有npm包及上传,虽然百度上资料都能找到,但是都是比较零零碎碎的,个人就来整理下,如何从零开始写一个npm包及上传. 该篇文件只记录一个大概的流程,一些细节没有记录. tips:  ...

你可能感兴趣的:(matlab的lda函数)