4

【有监督降维】【LDA】Linear Discrimination Analysis

 3 years ago
source link: https://www.guofei.site/2019/01/19/lda.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【有监督降维】【LDA】Linear Discrimination Analysis

2019年01月19日

Author: Guofei

文章归类: 3-1-降维 ,文章编号: 351


版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2019/01/19/lda.html

Edit

介绍

LDA(Linear Discrimination Analysis) 是一种有监督降维模型。
区别于另一种LDA(Latent Dirichlet Allocation),这是一个关于NLP的模型。

1. LDA vs PCA

  1. 两者均可以对数据进行降维。
  2. 两者在降维时均使用了矩阵特征分解的思想。
  3. 两者都假设数据符合高斯分布。都不适合非高斯分布样本。
  1. LDA是有监督的降维方法,而PCA是无监督的降维方法
  2. LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。
  3. LDA除了可以用于降维,还可以用于分类。
  4. LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。
  5. LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。 LDA可能过度拟合数据。

LDA算法既可以用来降维,又可以用来分类,但是目前来说,主要还是用于降维。在我们进行图像识别图像识别相关的数据分析时,LDA是一个有力的工具

原理

x→wTxx→wTx 向低维空间投影时,我们希望尽量让类间的距离尽量大(类间的距离用各类的中心点的距离来定义),同时希望让类内的距离尽量小

假设共有N个类,第ii个类有mimi个样本,这个类的样本集合是XiXi,这个类样本的均值是uiui

定义 类间散度矩阵 Sb=∑i=1Nmi(ui−u)(ui−u)TSb=∑i=1Nmi(ui−u)(ui−u)T
定义 每个类的散度矩阵 Swi=∑x∈Xi(x−ui)(x−ui)TSwi=∑x∈Xi(x−ui)(x−ui)T
定义 类内散度矩阵 Sw=∑i=1NSwiSw=∑i=1NSwi

我们希望 wTSbwwTSbw 尽量小,同时 wTSbwwTSbw 尽量大(这两个都是矩阵)
常见的一个目标函数argminwJ(w)=tr(wTSbw)tr(wTSww)arg⁡minwJ(w)=tr(wTSbw)tr(wTSww)

算法流程

实现

# 载入数据
import sklearn.datasets as datasets

dataset = datasets.load_iris()
X, Y = dataset.data, dataset.target

# 构造模型
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda = LinearDiscriminantAnalysis()
lda.fit(X, Y) # 训练
lda.transform(X) # 输出降维后的数据 X-1维
lda.fit_transform(X,Y) # fit+transform

lda.predict(X) # LDA可以用来做预测
lda.predict_proba(X) # 也能计算概率
lda.score(X,Y)

参考文献

周志华:《机器学习》
http://www.cnblogs.com/pinard/p/6244265.html


您的支持将鼓励我继续创作!

Recommend

  • 7
    • segmentfault.com 3 years ago
    • Cache

    Python之LDA主题模型算法应用

    原文链接:http://tecdat.cn/?p=5318在这篇文章中,我将介绍用于Latent Dirichlet Allocation(LDA)的lda Python包的安装和基本用法。我不会在这篇文章中介绍该方法的理论基础。将语料库(文档集)中的文档分...

  • 8
    • www.josherich.me 3 years ago
    • Cache

    lda-tweets

    lda-tweets In [2]: import pyLDAvis import pyLDAvis.sklearn pyLDAvis.enable_notebook() /Users/chenjosh/anaconda3/lib/python3.6/...

  • 5
    • www.guofei.site 3 years ago
    • Cache

    【NLP】LDA模型与实现

    【NLP】LDA模型与实现 2020年04月11日 Author: Guofei 文章归类: 2-4-NLP ,文章编号: 341 版权声明:本文作者是郭飞。转载随意,但需要标明原文...

  • 4
    • cosx.org 3 years ago
    • Cache

    LDA-math-LDA 文本建模

    5. LDA 文本建模 5.1 游戏规则 对于上述的 PLSA 模型,贝叶斯学派显然是有意见的,doc-topic 骰子→θm和 topic-word 骰子→φk都是模型中的参数,参数都是随机变量,怎么能没有先验分布呢?于是,类似于对 Unigram Model 的贝叶斯改造, 我们...

  • 7
    • cosx.org 3 years ago
    • Cache

    LDA-math - 文本建模

    4. 文本建模 我们日常生活中总是产生大量的文本,如果每一个文本存储为一篇文档,那每篇文档从人的观察来说就是有序的词的序列 d=(w1,w2,⋯,wn)。 包含 M 篇...

  • 4
    • cosx.org 3 years ago
    • Cache

    LDA 主题模型简介

    LDA 主题模型简介上个学期到现在陆陆续续研究了一下主题模型(topic model)这个东东。何谓 “主题” 呢?望文生义就知道是什么意思了,就是诸如一篇文章、一段话、一个句子所表达的中心思想。不过从统...

  • 6

    统计计算 LDA-math-MCMC 和 Gibbs Sampling 关键词:

  • 4

    2. 认识 Beta/Dirichlet 分布 2.1 魔鬼的游戏—认识 Beta 分布 统计学就是猜测上帝的游戏, 当然我们不总是有机会猜测上帝,运气不好的时候就得揣度魔鬼的心思。有一天你被魔鬼撒旦抓走了,撒旦说:“你们人类很聪明,而我是很仁慈的,和你玩...

  • 9

    1. 神奇的 Gamma 函数 1.1 Gamma 函数诞生记 学高等数学的时候,我们都学习过如下一个长相有点奇特的 Gamma 函数 Γ(x)=∫∞0tx−1e−tdt 通过分部积分的方法,可以推导出这个函数有如下的递归性质 Γ(x+1)=xΓ(x)

  • 2

    Linear Discriminant Analysis (LDA) ImplementationSkip to content

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK