精华内容
下载资源
问答
  • lda算法matlab实现
    2021-04-20 04:37:23

    MATLAB 与控制系统仿真实践 第6章 MATLAB GUI程序设计初步 MATLAB与控制系统仿真实践, 北京航空航天大学出版社,2009.8. 在线交流,有问必答 引言 MATLAB的GUI程序......

    1 MATLAB 模型预测控制工具箱函数 8.2 系统模型建立与转换函数前面读者论坛了利用系统输入/输出数据进行系统模型辨识的有关函数及使用方 法,为时行模型预测控制器......

    基于LDA的人脸识别技术研... 68页 免费 LDA算法及其在人脸识别中... 4页 免费 可用 基于PCA和LDA的人脸... 4页 1下载券 LDA人脸识别的matlab程序......

    1.5 PCA-LDA 算法的融合 .将 PCA 算法与 LDA 算法构造的特征子空间进行融合,获得其融合空间,然后,将训练样 本与测试样本分别朝该融合特征空间投影,获得识别特征......

    计算机学报,2007,34(6):122-1251 何东风,凌捷.人脸识别技术综述[J].计算机学报,2003,13(12):75-78 何国辉,甘俊英.PCA-LDA 算法在性别鉴别中的应用[J].......

    thefirmneedsexist tOseekassociatesinordertoare anddevelop inthefuriousmarket competition.Sothere several cooperative firmscompetingandseveral—team3.Webuilda firms......

    传统的文本挖掘算法不能很好地对它进行建 模.提出了一个基于LDA的微博生成模型MB-LDA,综合考虑了微博的联系人关联关系和文本 关联关系,来辅助进行微博的主题挖掘.......

    [4]何国辉, 甘俊英.PCA-LDA 算法在性别鉴别中得应用[J].中国图像图...

    该算法通过PCA算法求得训练 样本的特征子空间,并在此基础上计算LDA算法的特征子空间。将PCA算法与LDA算法的特征子空间进行融合,获得PCA—LDA 算法的融合特征空间。...

    基于Matlab的QDMC设计与实现_信息与通信_工程科技_专业资料。提出了一种基于Matlab的二次动态矩阵控制(QDMC)设计方法,充分利用Matlab的强大运算功能,将QDMC交由......

    一’ 3 仿真 实验 论文研究 了人脸识别 中线性子空间分析方法的经典算法2 DPCA、 2DLDA、2DICA,分析了他们的原理 以及各 自的优缺点,通过在O RL和 cMu 人脸......

    地提供给你一个 “两全其美”地方法,因为他们可以用一个命令读入混合地和数值数据( 地做法), 并且你可以改变他们以匹配你特定地应用(如同 做到地).例子:LDAYt......

    里面囊括了几乎所有的数据降维算法: - Principal Component Analysis ('PCA') - Linear Discriminant Analysis ('LDA') - Independent Component Analysis ('ICA')......

    实现一种基于线性判别分析(LDA)的人脸识别算法,完成 以下任务: <1> 查询文献,了解子空间投影的的目的,LDA 算法的原理以及数据投影到最优 子空间的具体过程; <2......

    主题模型LDA 北京10月机器学习班 邹博 2014年11月16日 主要内容和目标 ? ? ? ? ? 共轭先验分布 Dirichlet分布 unigram model LDA Gibbs采样算法 2/49 随机......

    改进的 R-LDA 算法解决 了在所有 FR 中出现的小样本容量(SSS)问题,同时,ANN 对于检测人脸的正面图 像很有用处.在 ORL 及 FERET 人脸数据库上进行了实验,......

    湍度埘压力传感器的十扰波动【1l 补偿前的22%减小到补偿后的1.1% ,』 力传感器的删量精度提高厂20倍 此可见,利川Matlab/NNToolbox对压力传感器温度补偿具有......

    end %% Matlab Toolbox for Dimensionality Reduction % X = [Train;Test]; % no_dims = round(intrinsic_dim(X, 'MLE')); % % 'PCA' 'LDA' 'MDS' ......

    本文重点对线性 子空间方法中的 2DPCA,2DLDA,2DICA 做了理论上的比较,并利用 matlab 编程获得了实验数据的支持。同等的实验条件下,在 ORL 姿态库和 CMU 表情......

    在此基础上,利用 Adaboost、LBP 和 LDA 等人脸识别算法,就可以对图像进行训练,并且产生特征脸和平均脸。最后,经过程序判断, 就可以进行识别结果的输出。 2 ......

    更多相关内容
  • LDA_Matlab_LDAMATLAB_

    2021-09-29 01:53:08
    LDA,外国学者编写的代码,简单实用,推荐下载
  • LDA matlab

    2014-09-23 18:30:13
    matlab编写程序,最终实现LDA分析,获得相应数据的结果。
  • lda分类代码matlab 机器学习的统计方法:  通过应用线性和非线性分类方法,建立了由太阳黑子指数数据中心 (SIDC) 提供的数据的仿射模型。 目标是建立一个模型,以便根据之前的观测结果找到预测太阳黑子数量的映射...
  • LDAmatlab函数

    2018-01-11 11:02:17
    线性判别分析的matlab代码,代码有注释
  • matlab代码lda 潜在狄利克雷分配 介绍 潜在狄利克雷分配 (LDA) 是文本文档的概率生成模型。 文档被建模为一组“主题”的混合体。 使用变分贝叶斯 (VB) 算法,可以学习与语料库中的文档对应的主题集。 然后可以将这些...
  • LDA matlab软件包

    2014-03-12 11:05:13
    LDA matlab软件包,标准变分贝叶斯估计
  • Matlab关于LDA人脸识别-lda.m 请问谁有一些关于 LDA 人脸识别的源程序!谢谢大家了!
  • LDA详解及其matlab代码

    热门讨论 2015-03-25 10:35:26
    主题模型(Topic Model)LDA详解及其Matlab代码
  • 这些是“二维线性判别分析的注释”,模式识别信中的代码在本文中,我们表明在考虑相同维度的假设下,二维判别分析的判别能力并不比 LDA 强。 在实验部分,一方面,我们证实了我们的主张的有效性,并表明在小样本问题...
  • LDA matlab 源代码

    热门讨论 2011-03-31 12:51:36
    该代码可直接运行,并附有清晰的注释说明,便于读者阅读
  • LDAmatlab实现

    热门讨论 2012-07-16 14:30:19
    LDA( Linear Discriminant Analysis),很不错
  • LDA算法(MATLAB实现)

    热门讨论 2012-11-06 16:02:33
    matlab写的LDA代码,比较好用!
  • lda降维matlab代码用于自适应局部判别分析的Matlab代码-ACM TKDD 2020 基于保留线性判别分析(LDA)的降维算法用于处理非高斯集数据集。
  • lda matlab算法

    2010-04-02 21:10:25
    lda implemented by matlab
  • lda降维matlab代码硅Craft.io SiProcess是图像处理实验室存储库。 在这里,您会发现一些Matlab / Python算法可以对数据进行线性分类。 分类 分类代码导入您的数据(矢量化图像的矩阵),使用进行降维,并使用/分隔...
  • LDA代码实现(Matlab版)

    热门讨论 2011-04-22 15:09:13
    这是我找到的一个用matlaB写的LDA算法的代码实例
  • 前言 正题 1.LDA的思想 2. 瑞利商(Rayleigh quotient)与广义瑞利商(genralized Rayleigh quotient) ...二类LDA matlab举例: 1.读取数据集 2.分离数据集 3.求解w 4.输出降维后的数据集

    目录

    前言

    正题

    1.LDA的思想

    2. 瑞利商(Rayleigh quotient)与广义瑞利商(genralized Rayleigh quotient) 

    3. 二类LDA原理

    4.多类LDA原理

    5.LDA分类

    6.LDA算法流程

    二类LDA matlab举例:

    1.读取数据集

    2.分离数据集

    3.求解w

    4.输出降维后的数据集

    5.分类
     


    前言

            在主成分和因子分析中,我们对降维算法做了总结。这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。

        在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然语言处理领域, LDA是隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),他是一种处理文档的主题模型。我们本文只讨论线性判别分析,因此后面所有的LDA均指线性判别分析。

    在做具体解释之前,请允许我放上我之前的一些链接:

    主成分分析 —— matlab :传送门

    主成分分析 —— python :传送门

    因子分析 —— matlab :传送门

    因子分析 —— python :传送门

    正题

    1.LDA的思想

            线性判别分析((Linear Discriminant Analysis ,简称 LDA)是一种经典的线性学习方法,在二分类问题上因为最早由 [Fisher,1936] 提出,亦称 ”Fisher 判别分析“。并且LDA也是一种监督学习的降维技术,也就是说它的数据集的每个样本都有类别输出。这点与主成分和因子分析不同,因为它们是不考虑样本类别的无监督降维技术。

            LDA 的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同样样例的投影尽可能接近、异样样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。其实可以用一句话概括:就是“投影后类内方差最小,类间方差最大”。

    图为 LDA的二维示意图。”+“,”-“分别代表正侧和反侧,椭圆表示数据簇的外轮廓,虚线表示投影,红色实心圆和实心三角形分别表示两类样本投影后的中心点。

    2. 瑞利商(Rayleigh quotient)与广义瑞利商(genralized Rayleigh quotient) 

            我们先来看一下瑞丽商的定义。

            瑞丽商是指这样的函数R(A,x):

    R(A,x) = \frac{x^HAx}{x^Hx}

            其中x为非零向量,而A为 n*n 的Hermitan矩阵。所谓的Hermitan矩阵就是满足共轭转置矩阵和自己相等的矩阵,即A^{H}=A . 如果我们的矩阵A是实矩阵,则满足A^{T}=A的矩阵即为Hermitan矩阵。

            瑞利商R(A,x)有一个非常重要的性质,即它的最大值等于矩阵A最大的特征值,而最小值等于矩阵A的最小的特征值,也就是满足

    \lambda_{min} \leq \frac{x^HAx}{x^Hx} \leq \lambda_{max}

            至于证明过程就不在这里介绍了。当向量x是标准正交基时,即满足x^{H}x=1时,瑞利商退化为:R(A,x)=x^{H}Ax,这个形式在谱聚类和PCA中都有出现。

    以上就是瑞丽商的内容。

            下面我们再来介绍一下广义的瑞丽商,

            广义的瑞丽商是指这样的函数 R(A,B,x) :

    R(A,x) = \frac{x^HAx}{x^HBx}

            其中x为非零向量,而A,B为n×n的Hermitan矩阵。B为正定矩阵。它的最大值和最小值是什么呢?其实我们只要通过将其通过标准化就可以转化为瑞利商的格式。我们令x=B^{-1/2}x',则分母转化为:

    x^HBx = x'^H(B^{-1/2})^HBB^{-1/2}x' = x'^HB^{-1/2}BB^{-1/2}x' = x'^Hx'

    而分子转化为:

    x^HAx = x'^HB^{-1/2}AB^{-1/2}x'

    此时我们的R(A,B,x)转化为R(A,B,x′):

    R(A,B,x') = \frac{x'^HB^{-1/2}AB^{-1/2}x'}{x'^Hx'}

            利用前面的瑞利商的性质,我们可以很快的知道,R(A,B,x′)的最大值为矩阵B^{-1/2}AB^{-1/2}的最大特征值,或者说矩阵B^{-1}A的最大特征值,而最小值为矩阵B^{-1}A的最小特征值。

    3. 二类LDA原理

            我们先介绍一下稍微简单,容易理解的二分类LDA入手,详细了解一下LDA的原理

            首先给定数据集 D={(x1,y1),(x2,y2),...,((xm,ym))} ,其中任意样本xi为n维向量,yi∈{0,1}。另外我们定义Nj(j=0,1)为第j类样本的个数,Xj(j=0,1)为第j类样本的集合,而μj(j=0,1)为第j类样本的均值向量,定义Σj(j=0,1)为第j类样本的协方差矩阵(严格说是缺少分母部分的协方差矩阵)。

    其中:

            μj的表达式为:

    \mu_j = \frac{1}{N_j}\sum\limits_{x \in X_j}x\;\;(j=0,1)

            Σj的表达式为:

    \Sigma_j = \sum\limits_{x \in X_j}(x-\mu_j)(x-\mu_j)^T\;\;(j=0,1)

    我们将数据投影到一条直线上即可。我们假设我们的投影直线是向量w,则对任意一个样本本xi,它在直线w的投影为w^{T}x_{i},对于我们的两个类别的中心点μ0,μ1在在直线ww的投影为w^{T}u_{0}w^{T}u_{1}

    由于LDA需要让不同类别的数据的类别中心之间的距离尽可能的大,也就是我们要最大化 ||w^T\mu_0-w^T\mu_1||_2^2 ,同时我们希望同一种类别数据的投影点尽可能的接近,也就是要同类样本投影点的协方差w^T\Sigma_0w 和 w^T\Sigma_1w 尽可能的小,即最小化w^T\Sigma_0w+w^T\Sigma_1w 。综上所述,我们的优化目标为:

    \underbrace{arg\;max}_w\;\;J(w) = \frac{||w^T\mu_0-w^T\mu_1||_2^2}{w^T\Sigma_0w+w^T\Sigma_1w} = \frac{w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw}{w^T(\Sigma_0+\Sigma_1)w}

    在这里,大家是否有很多问好???

    就是 w , w^T 在哪,怎么算,下面就是我们求解的过程,在本小节最后就是哦!!!

    我们一般定义类内散度矩阵Sw为:

    S_w = \Sigma_0 + \Sigma_1 = \sum\limits_{x \in X_0}(x-\mu_0)(x-\mu_0)^T + \sum\limits_{x \in X_1}(x-\mu_1)(x-\mu_1)^T

    同时定义类间散度矩阵Sb为:

    S_b = (\mu_0-\mu_1)(\mu_0-\mu_1)^T

    全局散度矩阵S_t=S_{b }+ S_{w}=\sum_{i=1}^{m} (x_i-\mu)(x_i-\mu)^T

    这样我们的优化目标重写为:

    \underbrace{arg\;max}_w\;\;J(w) = \frac{w^TS_bw}{w^TS_ww}

            仔细一看上式,这不就是我们的广义瑞利商嘛!这就简单了,利用我们第二节讲到的广义瑞利商的性质,我们知道我们的J(w')最大值为矩阵S^{-1/2}_wS_bS^{-1/2}_w的最大特征值,而对应w'为S^{-1/2}_wS_bS^{-1/2}_w 的最大特征值对应的特征向量! 而S{^{-1}_{w}}S_{b}的特征值和S^{-1/2}_wS_bS^{-1/2}_w的特征值相同,的特征向量S{^{-1}_{w}}S_{b}的特征向量w和S^{-1/2}_wS_bS^{-1/2}_w的特征向量w′满足w=S_{w}^{-1/2}w'的关系! 

    在这里我们就求到了 w 了哦 !!!

            注意到对于二类的时候,S_bw的方向恒平行于μ0−μ1,不妨令S_bw=\lambda (\mu_0-\mu _1),将其带入:(S_w^{-1}S_b)w=\lambda w,可以得到w=S_w^{-1}(\mu _0-\mu_1), 也就是说我们只要求出原始二类样本的均值和方差就可以确定最佳的投影方向w了。

    4.多类LDA原理

            前面我们介绍了二分类的LDA,接下来我们再来看看多类别的LDA。

            假设我们的数据集,D=\{(x_1,y_1), (x_2,y_2), ...,((x_m,y_m))\},其中任意样本x_i 为n维向量,y_i \in \{C_1,C_2,...,C_k\} 。我们定义N_j(j=1,2...k)为j类样本的个数,X_j(j=1,2...k)为j类样本的集合,而\mu_j(j=1,2...k) 为第j类样本的均值向量,定义\Sigma_j(j=1,2...k) 为第j类样本的协方差矩阵。从在二类LDA里面定义的公式可以很容易的类推到多类LDA。

            由于我们是多类向低维投影,则此时投影到的低维空间就不是一条直线,而是一个超平面了。假设我们投影到的低维空间的维度为d,对应的基向量为(w_1,w_2,...w_d),基向量组成的矩阵为W,它是一个n*d的矩阵。

            此时我们的优化目标应该可以变成为:

    \frac{W^TS_bW}{W^TS_wW}

    其中,S_b = \sum\limits_{j=1}^{k}N_j(\mu_j-\mu)(\mu_j-\mu)^T\mu为所有样本的均值向量。S_w = \sum\limits_{j=1}^{k}S_{wj} = \sum\limits_{j=1}^{k}\sum\limits_{x \in X_j}(x-\mu_j)(x-\mu_j)^T

    但是在这里会有一个问题

            就是W^TS_bW 和W^TS_wW都是矩阵,不是标量,无法作为一个标量函数来优化!也就是说,我们无法直接用二类LDA的优化方法,怎么办呢?

            一般来说,我们可以用其他的一些替代优化目标来实现。

            比如,常见的一个LDA多类优化目标函数定义为:

    \underbrace{arg\;max}_W\;\;J(W) = \frac{\prod\limits_{diag}W^TS_bW}{\prod\limits_{diag}W^TS_wW}

            其中,\prod\limits_{diag}A  为 A的主对角线元素的乘积,W为n×d的矩阵。

            

            J(W)的优化过程可以转化为:

    J(W) = \frac{\prod\limits_{i=1}^dw_i^TS_bw_i}{\prod\limits_{i=1}^dw_i^TS_ww_i} = \prod\limits_{i=1}^d\frac{w_i^TS_bw_i}{w_i^TS_ww_i}

    此时,我再来观察一下上式,会发现最右边的式子,就是我们上面所讲的广义瑞丽商!!!最大值是矩阵S_w^{-1}S_b的最大特征值,最大的d个值的乘积就是矩阵S_w^{-1}S_b 的最大的d个特征值的乘积,此时对应的矩阵W为这最大的d个特征值对应的特征向量张成的矩阵。

        由于W是一个利用了样本的类别得到的投影矩阵,因此它的降维到的维度d最大值为k-1。为什么最大维度不是类别数k呢?

            因为Sb中每个μj−μ的秩为1,因此协方差矩阵相加后最大的秩为k(矩阵的秩小于等于各个相加矩阵的秩的和),但是由于如果我们知道前k-1个μj后,最后一个μk可以由前k-1个μj线性表示,因此Sb的秩最大为k-1,即特征向量最多有k-1个。

    5.LDA分类

    那么在最佳的分类空间如何对样本进行分类?

    1)对二分类问题。由于只有两个类别,在经过上面的求解后,最后所有样本将会映射到一维空间中,设两个不同样本映射后的中心点分别为 \large \bar{z_1},\large \bar{z_2};我们将两个类别的中心点之间中心点作为分类点。

    \large \bar{z}\frac{\bar{z_1}+\bar{z_2}}{2}

    最后,我们将

    \large w^{T}x>\bar{z}

    的x分为一类,其他的分为另一类。

      2)对多分类问题。通过LDA方法最终将原始数据映射到c-1个维度上,现在我们需要在这c-1个维度上将样本集分成c类。这个怎么分呢?本人暂时也不知道,能想到的只是将问题转化为二分类问题。实际上,对于多类的情况主要考虑用来降维。

      对于此类问题,我们主要将它转化为二分类来处理,我们使用一对其余的方法。简单来说就是先将所有c类样本分成1和2~c,然后再将2~c分为2和3~c,以此类推,直到完全分开。

    6.LDA算法流程

    输入:数据集D=\{(x_1,y_1), (x_2,y_2), ...,((x_m,y_m))\} ,其中任意样本xixi为n维向量,\large y_i \in \{C_1,C_2,...,C_k\},降维到的维度d。

    输出:降维后的样本集D′

    1) 计算类内散度矩阵Sw

    2) 计算类间散度矩阵Sb 

    3) 计算矩阵S^{-1}wSb 

    4)计算S^{-1}wSb的最大的d个特征值和对应的d个特征向量(w1,w2,...wd)得到投影矩阵w

    5) 对样本集中的每一个样本特征xi,转化为新的样本z_i=W^Tx_i

    6) 得到输出样本集 D'=\{(z_1,y_1), (z_2,y_2), ...,((z_m,y_m))\}

    二类LDA matlab举例:

    1.读取数据集

    data = xlsread('文件路径')

    2.分离数据集

    比如取数据集的前20行,2和3列

    data1=data(1:20,2:3)

    比如把上面数据集的第一列定义为x,第二列定义为y;然后分类x0,x1

    x = data1(:,1)
    y = data1(:,2)
    x0 = x(find(y==0))
    x1 = x(find(y==1))

    诸如此类等等,请视情况自行决定,因我手头没有相关例题,只能介绍到这里了

    3.求解w

    %求均值
    u0 = mean(x0);
    u1 = mean(x1);
    
    %求协方差
    E0 = (x0-u0)'*(x0-u0);
    E1 = (x1-u1)'*(x1-u1);
    
    Sw = E0+E1;
    Sb = (u0-u1)*(u0-u1)';
    w = (Sw)^(-1)*(u0-u1)

    4.输出降维后的数据集

    predict_y = w'* x

    5.分类

    u = mean(w'* x)
    for i = x
        h = w' * i ;
        lei = 1*(h<u)
    end

    好了,这次更改就到这里结束了,后续会增加实例的!

    展开全文
  • Matlab关于多目标分类的算法实现有代码及详细注释-CSLDA.m 按照文献“类依赖的线性判别分析”给出的CSLDA算法思路,我编写出相应代码,然后用UCI实验室测试数据测试,效果不太好,那点错了吗?该如何修正?望高手...
  • 承接这个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效 ...

    &lbrack;IR&rsqb; 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&num; out ref 用法总结

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

    2&period;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程序,pca用来降维,lda用来特征提取
  • 外国人Jonathan Huang编写的LDA程序,matlab代码
  • 其中LDA模型和BTM模型都可以看做是在plsa模型的基础之上发展而来的,LDA模型是在plsa模型的基础之上加入了贝叶斯框架,BTM模型是通过对词对{word_1,word-2}的学习来推出文章的主题分布的。相对于LDA模型,BTM模型的...

    主题模型简介

    LDA主题模型的主要作用是在已知文章和词汇的情况下去反推文章的主题。常见的主题模型有plsa模型,LDA主题模型和BTM模型。其中LDA模型和BTM模型都可以看做是在plsa模型的基础之上发展而来的,LDA模型是在plsa模型的基础之上加入了贝叶斯框架,BTM模型是通过对词对{word_1,word-2}的学习来推出文章的主题分布的。相对于LDA模型,BTM模型的优点在于对短文本有着更好的学习能力,
    

    贝叶斯框架

    贝叶斯概率论和频率派概率论是概率论中不同的两大经典理论,贝叶斯学派认为 世界上不存在所谓的‘随机事件’,之所以一些事情我们不能够确定他发生的结果,是因为我们自身知识的局限性。简单来说贝叶斯认为在一件事情发生之前,我们对这件事的认知叫做先验知识(先验分布),后来通过不断地做实验或者搜集新的证据,这些证据我们成为样布数据,最后我们根据得到的样本数据不断地修正我们的先验知识,得到的知识叫做后验知识(后验分布)
    

    LDA模型

    目前关于LDA模型的文章也有很多,但是由于模型本身所涉及的知识点太多,所以相对来说比较难理解。本文略过一些相对简单的数学知识,仅对LDA模型中的一些关键难点进行介绍。
    求解LDA模型关键在于求解其后验概率,其后验概率的表达式如下所示:
    LDA模型后验概率
    对以上公式做下面五点解释:
    在这里插入图片描述
    注:上述内容引用了https://blog.csdn.net/L__ear/article/details/97042751部分内容
    其中matlab代码如下所示:
    `alpha=ones(1,L)(50/L+1);
    beta=ones(1,V)1.01;
    Z=zeros(M,V);
    for m=1:M
    for n=1:w(m)
    Z(m,n)=randperm(L,1);
    n1(Z(m,n),n)=n1(Z(m,n),n)+1;
    n2(m,Z(m,n))=n2(m,Z(m,n))+1;
    end
    end
    iter_time=1;
    while iter_time<step
    for m=1:length(w)
    for n=1:w(m)
    n2(m,Z(m,n))=n2(m,Z(m,n))-1;
    n1(Z(m,n),n)=n1(Z(m,n),n)-1;
    for k=1:L
    p_back(k)=[(n1(k,n)+beta(n)-1)/(sum(n1(k,:)+beta)-1)]
    [(n2(m,k)+alpha(k)-1)/(sum(n2(m,:)+alpha)-1)];
    end
    if sum(p_back)==0
    p_back=ones(1,L)
    (1/L);
    else
    p_back=p_back/sum(p_back);
    end
    k=randsrc(1,1,[1:18;p_back]);
    if Z(m,n)~=k
    Z(m,n)=k;
    end
    n2(m,Z(m,n))=n2(m,k)+1;
    n1(Z(m,n),n)=n1(k,n)+1;
    iter_time=iter_time+1;
    end
    end
    end
    theta=zeros(M,L);
    phi=zeros(L,V);
    for m=1:M
    for k=1:L
    theta(m,k)=(n2(m,k)+alpha(k))/(sum(n2(m,:)+alpha));
    end
    end
    for k=1:L
    for t=1:V
    phi(k,t)=(n1(k,t)+beta(t))/(sum(n1(k,:)+beta));
    end
    end

    end

    其中L代表主题数量,代码是经过修改的,应该是正确的,但是真正实践起来需要对数据做预处理的。

    展开全文
  • lda模型matlab代码PatternRecognition_Matlab 抽象的 通过训练数据集学习特征约简预测和分类器模型,并将其用于对测试数据集进行分类。 本文比较了几种减少特征的方法:主成分分析(PCA),线性判别分析(LDA)及其...
  • 资源名:LDA+PCA人脸识别matlab程序_人脸识别_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手...
  • lda-MATLAB

    2013-03-19 09:44:37
    blei提出的潜在狄利克雷算法的MATLAB实现
  • 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 直接用于人脸识别会遇到维数问题和"小样本"问题.人们经过研究通过多种途径解决了这两个问题并实现了基于LDA 的人脸识别.本文对几种基于LDA 的...
  • 代码实现(matlab) function [Y,W,lambda]=LDA(X,L) %%X为数据集,L为标签 %%%第一步:初始化变量 classes = unique(L)'; %不同的类 k = numl(classes); %总共多少个类 n=zeros(k,1); %用来存储每个类的个数 C=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,222
精华内容 1,288
关键字:

lda matlab

matlab 订阅
友情链接: 代码.zip