精华内容
下载资源
问答
  • 本文通过数学推理验证了LDA分类准则,通俗易懂,比网络上好多了
  • 本期我们要学习的是Bayes公式判别,在此之前我们需要一起回顾一下Fisher判别和最大似然判别的基本原理:Fisher判别是寻找一个合适的投影方向(线性组合)使样本投影在该方向时,投影(综合指标)类内变...

    在《判别分析概述》中,我们提到Fisher判别一般用于指标为定量资料的两类判别,Bayes判别多用于指标为定量资料的多类判别;最大似然判别Bayes公式判别适用于指标为定性资料的两类或多类判别。

    本期我们要学习的是Bayes公式判别,在此之前我们需要一起回顾一下Fisher判别和最大似然判别的基本原理:

    Fisher判别是寻找一个合适的投影方向(线性组合)使样本投影在该方向时,投影(综合指标)类内变异极小化,类间变异极大化;

    最大似然判别是以概率为依据,以独立事件的概率乘法定理得到判别对象归属于某类的概率。

    ed0aa4992687cfb8dbeb6d292890ecf6.gif

    Bayes公式判别

    Bayes公式判别进行判别分析与最大似然判别的原理相似,都是以概率为依据,最大似然法的基础上引入了先验概率(prior probability),计算所判别的后验概率,即:

    13685d0cd13f5433a9eabd5b3b4ac159.png

    其中P(Yk)即为第k类出现的概率,或称为先验概率。

    按柠檬精的理解,上面这条公式中分子就是在计算最大似然概率(具体小伙伴可移步SPSS学堂上期内容,在此不作赘述)是再乘上某一类出现的概率(先验概率),分母则是所有类别出现的概率总和而已。

    Bayes公式判别的规则与最大似然法相同,都是判别为最大概率的类。

    【扩展】 贝叶斯框架下的概率理论与我们平时接触的概率论完全不同,它认为概率是个人的主观概念,表明人对某个事物发生的相信程度,它解决的是来自外部的信息与大脑内部信念的交互关系。贝叶斯分析是对于由证据的积累来推测一个事物发生的概率,当我们要预测一个事物,需要根据历史资料或主观判断确定一个先验概率(大脑内部信念),然后在新证据不断积累(外部信息)的情况下调整修正获得后验概率(外部信息与大脑内部信念交互),整个通过积累证据来得到一个事件发生概率的过程便称为贝叶斯分析。

    ed0aa4992687cfb8dbeb6d292890ecf6.gif

    接下来,我们再看一下上期对4种类型的阑尾炎作鉴别诊断的例子,补充这5668例阑尾炎病人4种类型的构成比作为先验概率估计(也就是大脑内部信念):卡他性阑尾炎20%,蜂窝织炎型阑尾炎 50%,坏疽型阑尾炎 25%,腹膜型阑尾炎 5%(根据历史资料,我们确定4种类型的阑尾炎发生概率由大到小分别是:蜂窝织炎型、坏疽型、卡他性和腹膜型)。

    表1 5668例不同型阑尾炎病例的症状发生频率(%)

    7cf9477222031b46369488cc3f5f8567.png

    如某病例昨晚开始出现右下腹疼痛、呕吐的症状,大便正常。经检查,右下腹压痛,肌性防御(+),反跳痛(+),体温36.6℃,白细胞23700。

    我们依次计算待判病例属于的第一类卡塔型阑尾炎后验概率式中的分子:

    P(Y1)·P(X1(S1)|Y1)P(X2(S2)|Y1)…P(X7(S7)|Y1) = 0.2×0.57×0.11×0.72×0.95×0.08×0.61×0.08 = 0.000033

    同理可得,其余三类后验概率式中的分子0.000900,0.001175,0.000075,分母则是这四个分子的总和0.002183。

    最后,根据Bayes公式判别计算出待判病例属于四类阑尾炎的后验概率分别为0.015,0.412,0.538,0.034;其中最大后验概率为0.538,即病例诊断为第3类坏疽型阑尾炎。

    ed0aa4992687cfb8dbeb6d292890ecf6.gif

    小结

    Bayes公式判别是在最大似然法的基础上,将先验概率(大脑主观判断或历史资料确定)加以考虑,计算后验概率,可用于指标为定性资料的两类或多类判别。

    展开全文
  • 线性判别分析(LDA)基本原理及实现

    万次阅读 多人点赞 2018-10-14 10:51:20
    这里就对另外一种经典降维方法线性判别分析(Linear Discriminant Analysis, 简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛应用,因此我们有必要了解下它...

    前言

    在主成分分析(PCA)原理总结(机器学习(27)【降维】之主成分分析(PCA)详解)中对降维算法PCA做了总结。这里就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然语言处理领域, LDA是隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),是一种处理文档的主题模型。本文只讨论线性判别分析,因此后面所有的LDA均指线性判别分析。

    LDA思想

    LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的,这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”,如下图所示。 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。

     

    640?wx_fmt=png&wxfrom=5&wx_lazy=1

     

    可能还是有点抽象,先看看最简单的情况。

    假设有两类数据,分别为红色和蓝色,如下图所示,这些数据特征是二维的,希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。

    0?wx_fmt=png

    上图中提供了两种投影方式,哪一种能更好的满足我们的标准呢?从直观上可以看出,右图要比左图的投影效果好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。以上就是LDA的主要思想了,当然在实际应用中,数据是多个类别的,我们的原始数据一般也是超过二维的,投影后的也一般不是直线,而是一个低维的超平面。

     

    LDA原理与流程

    0?wx_fmt=png

     

    0?wx_fmt=png

     

    0?wx_fmt=png

     

    0?wx_fmt=png

     

    LDA与PCA

    LDA用于降维,和PCA有很多相同,也有很多不同的地方,因此值得好好的比较一下两者的降维异同点。

    相同点

    1)两者均可以对数据进行降维。

    2)两者在降维时均使用了矩阵特征分解的思想。

    3)两者都假设数据符合高斯分布。

     

    不同点

    1)LDA是有监督的降维方法,而PCA是无监督的降维方法

    2)LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。

    3)LDA除了可以用于降维,还可以用于分类。

    4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。这点可以从下图形象的看出,在某些数据分布下LDA比PCA降维较优。

     

    0?wx_fmt=png

     

    当然,某些某些数据分布下PCA比LDA降维较优,如下图所示:

     

    0?wx_fmt=png

     

    LDA小结

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

    优点

    1)在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。

    2)LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。

     

    缺点

    1)LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。

    2)LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。

    3)LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。

    4)LDA可能过度拟合数据。

    该文章转载:https://blog.csdn.net/mbx8x9u/article/details/78739908

    LDA代码python实现:https://github.com/ruthy-wei/MachineLearning/tree/master/LDA

    LDA详解:http://sebastianraschka.com/Articles/2014_python_lda.html

    展开全文
  • 线性判别分析(Linear Discriminate Analysis, LDA)通过正交变换将一组可能存在相关性变量降维变量,目标是将高维数据投影至低维后,同类数据之间距离尽可能近、不同类数据之间距离尽可能远。 应用场景: ...

    简介

    线性判别分析(Linear Discriminate Analysis, LDA)通过正交变换将一组可能存在相关性的变量降维变量,目标是将高维数据投影至低维后,同类的数据之间距离尽可能近、不同类数据之间距离尽可能远。

    应用场景:
    对于拟合、分类算法,可以利用主成分分析对输入数据实现降维,去除冗余数据可以提高计算效率并提高计算精度;
    对于难以进行可视化的高维数据可以利用主成分分析映射至二维进行可视化,方便进行展示,如果需要展示的数据从属于多个类别,LDA的降维效果优于PCA。
    由于LDA本身降维时就以分离不同类数据为目的,因此对于二分类问题可以直接降至一维进行分类。

    缺点:
    利用LDA降维时有最大维数限制,若输入数据的总类别数为CC则最大维数是C1C-1,这意味着在对高维但类别数较少的问题进行降维时LDA可能会导致大量信息的丢失。

    算法流程

    符号约定:
    记总样本个数为nn,每个初始样本所含特征数为NN,最终选择的主成分所含特征数为KK
    记第ii个样本的第jj个特征为:xijx_{ij}
    nn个初始样本为:X1,X2,...,XnX_1,X_2,...,X_n
    每个初始样本为一个NN维向量,第ii个样本为Xi=[xi1xi1...xiN]X_i=\begin{bmatrix}x_{i1} &x_{i1} & ... &x_{iN} \end{bmatrix}
    记降维后的样本为:Y1,Y2,...,YnY_1,Y_2,...,Y_n,每个主成分同样是KK维向量
    设样本共有CC类,第ii类含有的样本数为nin_i

    计算流程:
    第一步:计算类内均值与总均值
    类内均值为:
    ui=1niXclassiXu_i=\frac{1}{n_i}\sum_{X\in{class i}}{X}
    类间均值为:
    u=1ni=1nXiu=\frac{1}{n}\sum_{i=1}^n{X_i}
    类内均值与类间均值均为NN维向量

    第二步:计算类间散度矩阵SbS_b与类内散度矩阵SWS_W
    类间散度矩阵为:
    Sb=i=1Cni(uiu)(uiu)TS_b=\sum_{i=1}^{C}n_i(u_i-u)(u_i-u)^T
    类内散度矩阵为:
    Sw=i=1CXkclassi(uiXk)(uiXk)TS_w=\sum_{i=1}^{C}\sum_{X_k\in{classi}}(u_i-X_k)(u_i-X_k)^T
    类间散度矩阵SbS_b与类内散度矩阵SWS_W均为NN阶方阵。类间散度矩阵SbS_b实质上是各类数据均值的协方差矩阵,类内散度矩阵SWS_W实质上是各类数据的协方差矩阵的平均值。

    第三步:计算矩阵Sw1SbS_w^{-1}S_b的特征值与特征向量
    我们希望类内数据的散度尽可能小,而各类数据均值的散度尽可能大,因此构造矩阵S=Sw1SbS=S_w^{-1}S_b
    计算矩阵SS的特征值并将其由大到小排列,记为λ1,λ(C1)λ_1,…λ_(C-1)记其对应的特征量为v1,v(C1)v_1,…v_(C-1)
    矩阵SS仅有C1C-1个特征向量的原因是,ui(i=1,2,...,C)u_i(i=1,2,...,C)uu是线性相关的,因此SbS_b的秩为C1C-1,进而SS的秩也仅为C1C-1
    第四步:对初始特征进行线性变换
    选取前K个特征值对应的特征向量,组成投影矩阵:
    W=[v1,,vK]W=[v_1,…,v_K]
    则新样本为:
    [Y1,,Yn]=WT[X1,,Xn][Y_1,…,Y_n ]=W^T [X_1,…,X_n]

    基于python sklearn库的LDA例程

    利用sklearn库中的函数实现线性判别分析
    所选数据为39节点电网仿真数据,包含5000个样本,每个样本包含160个特征量,即n=5000,N=160n=5000, N=160
    这些样本根据运行状态可以被分为三类,即:稳定、不稳定、潮流不收敛,因此经过LDA降维后至多保留两个特征

    import numpy as np
    from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
    
    test_features, test_labels = read_data(ADDRESS) 
    #从地址ADDRESS读取初始特征与标签,此函数为自定义函数
    
    lda = LDA(n_components=2)
    #创建LDA类,参数n_components为主成分所含特征数,令其为'mle'则自动选取特征数,由于原始数据只有3类,因此特征最多只能保留两个
    lda_feature = lda.fit_transform(test_features)
    #得到线性变换后的2个特征
    
    for i in range(2):
        print(lda.explained_variance_ratio_[i])
    #lda.explained_variance_ratio_为2个特征向量
    

    LDA类的参数n_components为主成分包含的特征数,默认为1,也可以设定为字符串’mle’自动选取特征数
    函数pca.fit_transform函数输入值为原始数据,输出为主成分,同时将会利用输入的原始数据训练模型
    pca.explained_variance_ratio_为得到的KK个特征向量

    利用得到的两个特征向量作图,可以得到如下结果:
    在这里插入图片描述
    可以看出三类样本在映射后的平面上分离程度较高

    如果希望利用同样的模型提取新数据的主成分,则可以利用transform函数实现:

    lda_feature = lda.fit_transform(test_features)#利用测试数据训练模型
    lda_feature_new=lda.transform(new_data)#利用训练好的模型提取新数据的特征
    
    展开全文
  • 1.数学原理LDA是一种由监督降维技术,它每个样本输出都是有类别。LDA思想是投影后类间方差尽可能大,类内方差尽可能小。(1)类间散度矩阵 其中, 为类别总数, 为类别为 样本均值, 为类别 样本数, 为...

    1.数学原理

    LDA是一种由监督的降维技术,它的每个样本输出都是有类别的。LDA的思想是投影后类间方差尽可能大,类内方差尽可能小。

    (1)类间散度矩阵

    其中,

    为类别总数,
    为类别为
    的样本的均值,
    为类别
    的样本数,
    为所有类别的均值。

    (2)类内散度矩阵

    (3)投影后的协方差矩阵

    类间协方差矩阵:

    类内协方差矩阵:

    类内方差最小,类间方差最大等价于:

    分子和分母都为

    的二次项,不是一般性,令
    ,则:

    使用拉格朗日乘子法:

    因此,

    ,转变为求矩阵
    的特征值和特征向量。

    由于

    是一个利用了样本的类别得到的投影矩阵,因此降维到的维度
    最大值为

    2.LDA算法流程

    输入:

    维样本的数据集,有
    个类别,需要降维到
    维。

    输出:降维后的样本集。

    (1)求类间散度矩阵

    和类内散度矩阵

    (2)计算出矩阵

    (3)计算出

    的最大
    个特征值和对应的特征向量,组成投影矩阵

    (4)

    3.LDA与PCA的区别

    (1)LDA为有监督降维,PCA为无监督降维。

    (2)PCA可以降低到任意维度,LDA只能降维至类别数减1。

    (3)LDA可以进行分类。

    4.sklearn实现LDA

    #生成1000个三个维度样本
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    %matplotlib inline
    from sklearn.datasets import make_classification
    x, y = make_classification(n_samples=1000, n_features=3, n_redundant=0, n_classes=3, n_informative=2,
                               n_clusters_per_class=1,class_sep =0.5, random_state =10)
    fig = plt.figure()
    ax = Axes3D(fig)
    ax.scatter(X[:, 0], x[:, 1], x[:, 2],c=y)

    1107a768301dfdc5cacddc899469a337.png
    #使用PCA降维
    from sklearn.decomposition import PCA
    model1=PCA(n_components=2)
    x1 = model1.fit_transform(x)
    plt.scatter(x1[:,0],x1[:,1],c=y)
    plt.show()

    3a9708103478a888cf9a732df16d53a0.png
    #使用LDA进行降维
    from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
    model2 = LinearDiscriminantAnalysis(n_components=2)
    model2.fit(x,y)
    x2=model2.transform(X)
    plt.scatter(x2[:,0],x2[:,1],c=y)
    plt.show()

    aefb832df6b932acc3e09b0e3d51384c.png
    展开全文
  • 分类原理判别分析

    2013-05-24 22:11:01
    算法做了几年,尽然在博客上没留下什么脚印,主要写博客太麻烦了~,现在开始写点系列文章,以示点凭证~,今天写的是数据挖掘的基本定理及原理:分类原理判别分析。 从概率统计的角度来看,判别分析问题可归结为...
  • 判别分析对判别变量有三个基本假设。 其一是变量之间没有显著相关。否则将无法估计判别函数,或者虽然能够求解但参数估计标准误很大,以致于参数估计统计性不显著。 其二是各组案例协方差矩阵相等。在此条件下...
  • 一、Fisher线性判别分析原理解析与算法描述 Fisher:1890-1962, 英国数学家,...Fisher准则的基本原理是,对于d维空间的样本,投影到一维坐标上,样本特征会混杂在一起,难以区分。如果找到一个投影方向,使得样本集
  • 面向数学模型及其基本原理的 判别分析 ,理论与基础巩固
  • 关于判别分析的理解

    2017-03-08 09:52:00
    基本原理是按照一定的判别准则,建立一个或多个判别函数,用研究对象大量资料确定判别函数中待定系数,并计算判别指标。据此即可确定某一样本属于何类。当得到一个新样品数据,要确定该样品属于已知类型中哪...
  • 基本原理是按照一定的判别准则,建立一个或多个判别函数,用研究对象大量资料确定判别函数中待定系数,并计算判别指标。据此即可确定某一样本属于何类。 当得到一个新样品数据,要确定该样品属于已知类型中...
  • 基本原理是按照一定的判别准则,建立一个或多个判别函数,用研究对象大量资料确定判别函数中待定系数,并计算判别指标。据此即可确定某一样本属于何类。 当得到一个新样品数据,要确定该样品属于已知类型中...
  • 基本原理是按照一定的判别准则,建立一个或多个判别函数,用研究对象大量资料确定判别函数中待定系数,并计算判别指标。据此即可确定某一样本属于何类。 当得到一个新样品数据,要确定该样品属于已知类型中...
  • SAS判别分析

    2014-12-03 10:18:20
    基本原理是按照一定的判别准则,建立一个或多个判别函数,用研究对象大量资料确定判别函数中待定系数,并计算判别指标。据此即可确定某一样本属于何类。 当得到一个新样品数据,要确定该样品属于已知类型中...
  • 上期《判别分析概述》中我们提到,判别分析(discriminant ...同时,两者均可利用SPSS完成,但在运用和解读过程中非常容易混淆,所以柠檬精建议读者在简单了解二者的基本原理后再进行实践。Fisher判别,又称典...
  • 判别分析又称“分辨法”,是在分类确定条件下,根据某一研究对象各种特征值判别其类型归属问题一种多变量统计分析方法。  其基本原理是按照一定判别准则,建立一个或多个判别函数,用研究对象大量资料...
  • 基本原理是按照一定的判别准则,建立一个或多个判别函数,用研究对象大量资料确定判别函数中待定系数,并计算判别指标。据此即可确定某一样本属于何类。 当得到一个新样品数据,要确定该样品属于已知类型中...
  • 基本原理是按照一定的判别准则,建立一个或多个判别函数,用研究对象大量资料确定判别函数中待定系数,并计算判别指标。据此即可确定某一样本属于何类。 当得到一个新样品数据,要确定该样品属于已知类型中...
  • 本期我们要学习的是Bayes公式判别,在此之前我们需要一起回顾一下Fisher判别和最大似然判别的基本原理:Fisher判别是寻找一个合适的投影方向(线性组合)使样本投影在该方向时,投影(综合指标)类内变...
  • 多元统计:判别分析

    2020-06-09 13:11:26
    距离判别的基本思想和方法3. 距离判别法例题三. 贝叶斯判别法1. 贝叶斯判别原理2. 贝叶斯判别法则3. 贝叶斯判别法例题四. 费希尔判别法1. 费希尔判别原理五. 距离判别法、贝叶斯判别法和费希尔判别法的异同 ...
  • 介绍了贝叶斯判别和逐步判别的基本原理分析了目前出现的一些特征变量优化方法,以油气解释评价中的贝叶斯判别应用为例,对于逐步贝叶斯判别中的变量优化方法进行了研究和总结,提出了变量的多步优化策略和分步多...
  • CS229高斯判别分析

    2020-07-20 23:41:10
    高斯判别分析基本原理算法解析 基本原理 在二分类中逻辑回归是通过不断优化θ\thetaθ参数,找到最合适分类界限。而高斯判别分析法采用先通过数据特征建立类别模型,然后在寻找分界线分类。 简单来说我们要进行...
  • 线性判别分析 LDA

    2017-07-09 21:22:00
    点到判决面的距离 点\(x_0\)到决策面\(g(x)= w^Tx+w_0\)的距离:\(r={g(x)\over \|w\|}\) 广义线性判别函数 ...Fisher准则的基本原理 找到一个最合适的投影轴,使两类样本在该轴上投影之间的距离尽可能远,而...
  • 使用Pyhton实现Fisher的线性判别。为了进一步理解和掌握Fisher线性判别的基本原理和实现过程,利用Fisher判别法解决实际问题进行试验。
  • "线性判别分析"(Linear Discriminant Analysis;LDA)的基本思想是:给定训练样例集,设法将样例投影到1条直线上,使同类样本的投影点尽可能接 近而异类样本的投影点尽可能远离;在对新样本进行分类时,同样将其投影到这条...
  • 内容简介线性判别分析LDA的基本概念代码实例:第一部分使用python详细说明了LDA的计算过程; 第二部分记录了如何使用sklearn完成LDA。什么是线性判别分析?LDA,全名 Linear Discrimination Analysis, 是一种由监督...
  • 线性判别分析基本原理 线性判别分析(Linear Discriminant Analysis, LDA)是一种可作为特征提取技术,它可以提高数据分析过程中计算效率,同时,对于不适用于正则化模型,它可以降低因维数灾难带来过拟合...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 249
精华内容 99
关键字:

判别分析的基本原理