精华内容
下载资源
问答
  • 是基于用MATLAB编程的LDA程序,程序运行完美,训练集设置较为巧妙,方便学习者自己添加数据,而且注释非常详细,不仅注释了每步的作用,而且对出现的函数也做了介绍
  • 承接这个PCA练习,还有一个关于LDA的几何表示。题目如下:代码实现LDA如下:LDA.mclearclc% 生成training sampleMU1 = [6 10]';MU2 = [6 20]';SIGMA1 = [2 4; 4 9];SIGMA2 = [2 4; 4 9];M1 = mvnrnd(MU1,SIGMA1,...

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

    题目如下:

    4f6156f80c4546bad5b2b55e71d1177a.png

    代码实现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,'.')

    输出如下:

    7e2d2fa4bec9fdadc432951cdca5c7f4.png

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

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

    96038eb323adcf7951ba4fe9c99895f6.png

    输出:

    c8aa0ccc68ce9cae5d843f9151bbe776.png

    关于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&period;removeCallbacksAndMessages&lpar;null&rpar;的作用

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

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

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

    展开全文
  • Matlab关于LDA人脸识别-lda.m 请问谁有一些关于 LDA 人脸识别源程序!谢谢大家了!
  • 向各位大神求助,有没有另外的LDA主题模型MATLAB代码,输入可以直接是文档-词语概率矩阵,然后分解得到两个矩阵,文档-主题矩阵和主题-词语矩阵。谢谢了!(这里的LDA是Latent Dirichlet Allocation)
  • matlab的LDA源码

    2012-06-24 22:02:46
    matlab中编写Latent Dirichlet Allocation源码
  • LDA matlab

    2014-09-23 18:30:13
    matlab编写程序,最终实现LDA分析,获得相应数据结果。
  • Matlab LDA学习

    2019-09-21 02:54:53
    1、关于SVD分解 ...如果Ht是10*5维,那么上行代码得到结果为:U1 10*5, D1 5*5, V1 5*5; 否则[U1,D1,V1] = svd(Ht); % Ht = U1 D1 V1' 得到结果为 U1 10*10, D1 10*5, V1 5*5; 转载于:http...

    1、关于SVD分解

    [U1,D1,V1] = svd(Ht,0);     % Ht = U1 D1 V1'

    如果Ht是10*5维,那么上行代码得到的结果为:U1 10*5, D1 5*5, V1 5*5;

    否则[U1,D1,V1] = svd(Ht);     % Ht = U1 D1 V1' 得到的结果为 U1 10*10, D1 10*5, V1 5*5;

    转载于:https://www.cnblogs.com/Jerry-PR/articles/5264435.html

    展开全文
  • 我从网上Download下来lda-0.2-matlab,想把里面train文件替换成自己数据,有什么办法?
  • 其中投影转换矩阵W按照LDA的经典理论生成,如下的LDA函数,并返回各个类的投影后的(k-1)维的类均值。LDA.m代码如下:按 Ctrl+C 复制代码function [W,centers]=LDA(Input,Target)% Ipuut: n*d matrix,each row is ...

    本文使用LDA作为分类器在matlab下做实验。

    其中投影转换矩阵W按照LDA的经典理论生成,如下的LDA函数,并返回各个类的投影后的(k-1)维的类均值。

    LDA.m代码如下:

    按 Ctrl+C 复制代码

    function [W,centers]=LDA(Input,Target)

    % Ipuut: n*d matrix,each row is a sample;

    % Target: n*1 matrix,each is the class label

    % W: d*(k-1) matrix,to project samples to (k-1) dimention

    % cneters: k*(k-1) matrix,the means of each after projection

    % 初始化

    [n dim]=size(Input);

    ClassLabel=unique(Target);

    k=length(ClassLabel);

    nGroup=NaN(k,1); % group count

    GroupMean=NaN(k,dim); % the mean of each value

    W=NaN(k-1,dim); % the final transfer matrix

    centers=zeros(k,k-1); % the centers of mean after projection

    SB=zeros(dim,dim); % 类间离散度矩阵

    SW=zeros(dim,dim); % 类内离散度矩阵

    % 计算类内离散度矩阵和类间离散度矩阵

    for i=1:k

    group=(Target==ClassLabel(i));

    nGroup(i)=sum(double(group));

    GroupMean(i,:)=mean(Input(group,:));

    tmp=zeros(dim,dim);

    for j=1:n

    if group(j)==1

    t=Input(j,:)-GroupMean(i,:);

    tmp=tmp+t'*t;

    end

    end

    SW=SW+tmp;

    end

    m=mean(GroupMean);

    for i=1:k

    tmp=GroupMean(i,:)-m;

    SB=SB+nGroup(i)*tmp'*tmp;

    end

    % % W 变换矩阵由v的最大的K-1个特征值所对应的特征向量构成

    % v=inv(SW)*SB;

    % [evec,eval]=eig(v);

    % [x,d]=cdf2rdf(evec,eval);

    % W=v(:,1:k-1);

    % 通过SVD也可以求得

    % 对K=(Hb,Hw)'进行奇异值分解可以转换为对Ht进行奇异值分解.P再通过K,U,sigmak求出来

    % [P,sigmak,U]=svd(K,'econ');=>[U,sigmak,V]=svd(Ht,0);

    [U,sigmak,V]=svd(SW,0);

    t=rank(SW);

    R=sigmak(1:t,1:t);

    P=SB'*U(:,1:t)*inv(R);

    [Q,sigmaa,W]=svd(P(1:k,1:t))

    Y(:,1:t)=U(:,1:t)*inv(R)*W;

    W=Y(:,1:k-1);

    % 计算投影后的中心值

    for i=1:k

    group=(Target==ClassLabel(i));

    centers(i,:)=mean(Input(group,:)*W);

    end

    按 Ctrl+C 复制代码

    因为LDA是二类分类器,需要推广到多类的问题。常用的方法one-vs-all方法训练K个分类器(这个方法在综合时不知道怎么处理?),以及任意两个分类配对训练分离器最后得到k(k-1)/2个的二类分类器。本文采用训练后者对样本进行训练得到模型model。在代码中,model为数组struct。

    用于训练的函数LDATraining.m

    a4c26d1e5885305701be709a3d33442f.png

    a4c26d1e5885305701be709a3d33442f.png

    function [model,k,ClassLabel]=LDATraining(input,target)

    % input:

    n*d

    matrix,representing samples

    % target: n*1

    matrix,class

    label

    % model: struct type(see codes below)

    % k: the total class number

    % ClassLabel: the class name of each class%

    model=struct;

    [n dim]=size(input);

    ClassLabel=unique(target);

    k=length(ClassLabel);

    t=1;for

    i=1:k-1 for j=i+1:k

    model(t).a=i;

    model(t).b=j;

    g1=(target==ClassLabel(i));

    g2=(target==ClassLabel(j));

    tmp1=input(g1,:);

    tmp2=input(g2,:); in=[tmp1;tmp2];

    out=ones(size(in,1),1);

    out(1:size(tmp1,1))=0;

    % tmp3=target(g1);

    % tmp4=target(g2);

    % tmp3=repmat(tmp3,length(tmp3),1);

    % tmp4=repmat(tmp4,length(tmp4),1);

    % out=[tmp3;tmp4];

    [w m]=LDA(in,out);

    model(t).W=w;

    model(t).means=m;

    t=t+1; endend

    a4c26d1e5885305701be709a3d33442f.png

    在预测时,使用训练时生成的模型进行k(k-1)/2次预测,最后选择最多的分类作为预测结果。在处理二类分类器预测时,通过对预测样本作W的投影变换再比较与两个类的均值进行比较得到(不知道有没有更好的办法?)

    用于预测的函数LDATesting.m

    按 Ctrl+C 复制代码

    按 Ctrl+C 复制代码

    示例代码为:

    function target=test(in,out,t)

    [model,k,ClassLabel]=LDATraining(in,out);

    target=LDATesting(t,k,model,ClassLabel);

    实验中对USPS数据集进行了测试,效果不怎么好,正确率才39%左右,而这个数据集使用KNN算法可以达到百分之百九十的正确率,汗!

    展开全文
  • LDA算法对于两类问题的LDA(Matlab实现)1 function [ W] = FisherLDA(w1,w2)2 %W最大特征值对应的特征向量3 %w1 第一类样本4 %w2 第二类样本56 %第一步:计算样本均值向量7 m1=mean(w1);%第一类样本均值8 m2=mean(w2)...

    LDA算法

    对于两类问题的LDA(Matlab实现)

    1 function [ W] = FisherLDA(w1,w2)2 %W最大特征值对应的特征向量3 %w1 第一类样本4 %w2 第二类样本5

    6 %第一步:计算样本均值向量7 m1=mean(w1);%第一类样本均值8 m2=mean(w2);%第二类样本均值9 m=mean([w1;w2]);%总样本均值10

    11 %第二步:计算类内离散度矩阵Sw12 n1=size(w1,1);%第一类样本数13 n2=size(w2,1);%第二类样本数14 %求第一类样本的散列矩阵s115 s1=0;16 for i=1:n117 s1=s1+(w1(i,:)-m1)‘*(w1(i,:)-m1);18 end19 %求第二类样本的散列矩阵s220 s2=0;21 for i=1:n222 s2=s2+(w2(i,:)-m2)‘*(w2(i,:)-m2);23 end24 Sw=(n1*s1+n2*s2)/(n1+n2);25 %第三步:计算类间离散度矩阵Sb26 Sb=(n1*(m-m1)‘*(m-m1)+n2*(m-m2)‘*(m-m2))/(n1+n2);27 %第四步:求最大特征值和特征向量28 %[V,D]=eig(inv(Sw)*Sb);%特征向量V,特征值D29 A = repmat(0.1,[1,size(Sw,1)]);30 B = diag(A);31 [V,D]=eig(inv(Sw + B)*Sb);32 [a,b]=max(max(D));33 W=V(:,b);%最大特征值对应的特征向量34 end

    测试:

    cls1_data=[2.95 6.63;2.53 7.79;3.57 5.65;3.16 5.47];

    cls2_data=[2.58 4.46;2.16 6.22;3.27 3.52];

    %样本投影前

    plot(cls1_data(:,1),cls1_data(:,2),‘.r‘);

    hold on;

    plot(cls2_data(:,1),cls2_data(:,2),‘*b‘);

    hold on;

    W=FisherLDA(cls1_data,cls2_data);

    %样本投影后

    new1=cls1_data*W;

    new2=cls2_data*W;

    k=W(2)/W(1);

    plot([0,6],[0,6*k],‘-k‘);

    axis([2 6 0 11]);

    hold on;

    %画出样本投影到子空间点

    for i=1:4

    temp=cls1_data(i,:);

    newx=(temp(1)+k*temp(2))/(k*k+1);

    newy=k*newx;

    plot(newx,newy,‘*r‘);

    end;

    for i=1:3

    temp=cls2_data(i,:);

    newx=(temp(1)+k*temp(2))/(k*k+1);

    newy=k*newx;

    plot(newx,newy,‘ob‘);

    end;

    结果:

    af58687fe17cc4471b571c9b2c6644bd.png

    原文:http://www.cnblogs.com/simon-c/p/4961942.html

    展开全文
  • LDA的matlab实现

    2013-03-15 16:32:10
    用于铜浮选工况识别,多类训练集线性判别分析源代码(matlab
  • LDAmatlab函数

    2018-01-11 11:02:17
    线性判别分析的matlab代码,代码有注释
  • 实用文案 LDA 人脸识别 matlab 程序 以下是 LDA m 文件函数 你稍稍改改就能用了 function [eigvector, eigvalue, elapse] = LDA(gnd,options,data) % LDA: Linear Discriminant Analysis % % [eigvector, ...
  • 详细讲解lda与pca特征降维方法,并结合实际分类例子来演示matlab,用matlab做出散点图 详细讲解lda与pca特征降维方法,并结合实际分类例子来演示matlab,用matlab做出散点图
  • 本文约2500字,含数学公式较多,预计阅读时间15分钟,阅读难度中等...全文分成如下四个部分:PCA 回顾线性判别分析(LDA)多类别线性判别分析使用LDA的限制一 PCA回顾介绍LDA之前,简单回顾一下之前讲到PCA。PCA...
  • 1维简单LDA和2维LDA人脸识别的matlab代码,注释详细,可以直接运行,非常好用,还有1维LDA算法讲解,很适合入门同学!
  • matlab LDA linear dicriminant analysis 实现

    千次阅读 2015-12-24 11:34:48
    最近用到LDA,因为不是数学方面出生,所以只管结果正确,不太追究具体的原理,在网上找到了一些别人的实现以及参考资料,自己实现了以下,但和OpenCV里面的LDA[1]结果相差较大,后来经过参考多个版本以及理论知识,...
  • 此为LDA(线性判别分系的matlab代码)有兴趣可以下,共同学习啊。还是免费好,大家可以交流一下。
  • 虽然这些在实际中不一定满足,但是LDA被证明是非常有效降维方法,其线性模型对于噪音鲁棒性效果比较好,不容易过拟合。2 二分类问题 原理小结:对于二分类LDA问题,简单点来说,是将带有类别标签高维样本投影....
  • lda-MATLAB

    2013-03-19 09:44:37
    blei提出潜在狄利克雷算法的MATLAB实现
  • 今天小编为大家讲解数据预处理中的LDA线性判别分析。线性判别分析(Linear Discriminate Analysis,LDA)是一种特征抽取的技术,用以提高数据分析过程中的计算效率。我们在主成分分析(Principal Component Analysis,PCA...
  • 二维LDA的matlab源代码

    2013-10-31 23:01:56
    2D-LDA的matlab 源代码 可运行,有一定参考价值。可作为实验对比用,也可进一步修改算法。
  • 基于LDA的人脸识别matlab源代码
  • 用于人脸识别的matlab程序,pca用来降维,lda用来特征提取
  • LDA算法的matlab源代码

    2013-07-19 10:16:43
    使用LDA(线性判别分析)算法提取一维数字信号(数组)特征,可用于信号分类识别。
  • 前言线性判别分析(Linear Discriminant Analysis,以下简称LDA)是有监督降维方法,在模式识别和机器学习领域中常用来降维。PCA是基于最大投影方差或最小投影距离降维方法,LDA是基于最佳分类方案降维方法,...
  • LDA程序(matlab

    2012-11-06 16:21:24
    老外写的matlab的LDA程序,初学者好用!
  • 1.LDA是一种特征抽取技术,用于分类任务降维方法2.其目标是向最大化类间差异,最小化类内差异方向投影3.LDA算法实现大致有六步:标准化数据集,均值化每个类别向量,计算类内散度矩阵和类间散度矩阵,构造S...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 213
精华内容 85
关键字:

matlab的lda

matlab 订阅