zoukankan      html  css  js  c++  java
  • LAD线性判别模型简介及sklearn参数

    本文LDA指线性判别模型,并非自然语言处理中的主题模型LDA。

    1.LDA简介

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

      从直观上可以看出,右图要比左图的投影效果好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图实际上是PCA的思想,没有用到类别信息,投影后的方差最大,但分类边界处数据混杂。以上就是LDA的主要思想了,当然在实际应用中,我们的数据是多个类别的,我们的原始数据一般也是超过二维的,投影后的也一般不是直线,而是一个低维的超平面。

      LDA除了可以用于降维以外,还可以用于分类。一个常见的LDA分类基本思想是假设各个类别的样本数据符合高斯分布,这样利用LDA进行投影后,可以利用极大似然估计计算各个类别投影数据的均值和方差,进而得到该类别高斯分布的概率密度函数。当一个新的样本到来后,我们可以将它投影,然后将投影后的样本特征分别带入各个类别的高斯分布概率密度函数,计算它属于这个类别的概率,最大的概率对应的类别即为预测类别。(不过LDA似乎很少应用于分类)

    2.LDA降维与PCA区别

      相同点:

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

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

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

      不同点:

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

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

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

        4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。

      从下图形象的看出,在左图数据分布下LDA比PCA降维较优,右图数据分布下,PCA比LDA较优。

    3.LinearDiscriminantAnalysis参数  class sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver='svd'shrinkage=Nonepriors=Nonen_components=Nonestore_covariance=Falsetol=0.0001)

    • solver:str,求解算法, 
      取值可以为: 
      • svd:使用奇异值分解求解,不用计算协方差矩阵,适用于特征数量很大的情形,无法使用参数收缩(shrinkage)
      • lsqr:最小平方QR分解,可以结合shrinkage使用
      • eigen:特征值分解,可以结合shrinkage使用
    • shrinkage:str or float,是否使用参数收缩 
      取值可以为: priors:array,用于LDA中贝叶斯规则的先验概率,当为None时,每个类priors为该类样本占总样本的比例;当为自定义值时,如果概率之和不为1,会按照自定义值进行归一化
      • None:不适用参数收缩
      • auto:str,使用Ledoit-Wolf lemma
      • 浮点数:自定义收缩比例
    • components:int,需要保留的特征个数,小于等于n-1
    • store_covariance:是否计算每个类的协方差矩阵,0.19版本删除

    LinearDiscriminantAnalysis类的fit方法

      fit()方法里根据不同的solver调用的方法均为LinearDiscriminantAnalysis的类方法

      fit()返回值:

    • selfLinearDiscriminantAnalysis实例对象

    属性Attributes:

    • covariances_:每个类的协方差矩阵, shape = [n_features, n_features]
    • means_:类均值,shape = [n_classes, n_features]
    • priors_:归一化的先验概率
    • rotations_:LDA分析得到的主轴,shape [n_features, n_component]
    • scalings_:数组列表,每个高斯分布的方差σ

     

    参考:

    https://www.cnblogs.com/pinard/p/6244265.html ;

    https://blog.csdn.net/qsczse943062710/article/details/75977118

  • 相关阅读:
    git 错误 fatal: Not a valid object name: 'master'.
    SQL: select一组数据,concat同表同列的数据
    Linux curl usage
    Regular Expression
    浅谈Linux Process status,环境锁
    浅谈Manpage
    Java文件读写详解。 附txt乱码问题, html乱码问题
    在ubuntu 18.04下装有线守护wg
    centOS 7 换ssh端口
    如何把DEBIAN变成UBUNTU-DESKTOP最少化安装
  • 原文地址:https://www.cnblogs.com/solong1989/p/9593555.html
Copyright © 2011-2022 走看看