精华内容
下载资源
问答
  • 李元 200820707027 自动化工程学院 第 PAGE 1页 总 NUMPAGES 6页 6 特征选择 6.1 问题 对threethreelarge.m数据采用任意一种...首先计算每一个特征的分类能力值再选择出其中最大分类能力的l个特征 6.3 结果 eigs = 8.
  • 模式识别分类

    千次阅读 2017-12-10 11:35:34
    模式识别分类按照理论分类: 统计模式识别: 是定量描述的识别方法。以模式集在特征空间中分布的类概率密度函数为基础,对总体特征进行研究,包括判别函数法和聚类分析法。是模式分类的经典型和基础性技术,历史最长...

    模式识别分类

    ——摘自《模式识别导论》齐敏,李大健,郝重阳, 清华大学出版社,2009.

    按照理论分类:

    统计模式识别: 是定量描述的识别方法。以模式集在特征空间中分布的类概率密度函数为基础,对总体特征进行研究,包括判别函数法和聚类分析法。是模式分类的经典型和基础性技术,历史最长,目前仍是模式识别的主要理论。

    句法模式识别: 也成为结构模式识别,是根据识别对象的结构特征,以形式语言理论为基础的一种模式识别方法。主要用于自然语言处理,发展相对缓慢。

    模糊模式识别: 将模糊数学的一些概念和方法应用到模式识别领域而产生的一类新方法。它以隶属度为基础,运用模糊数学中的“关系”概念和运算进行分类。

    神经网络模式识别: 神经网络模式识别是人工神经网络与模式识别相结合的产物。以人工神经元为基础,模拟人脑神经细胞的工作特点,对脑部工作机制的模拟更接近生理性,实现的是形象思维的模拟,与主要进行逻辑思维模拟的基于知识的逻辑推理相比有很大的不同。

    按照实现方法分类:

    监督分类: 也成为有人管理的分类。首先需要依靠已知类别的训练样本集,按照它们的特征向量的分布来确定判别函数,然后再利用判别函数对未知的模式进行分类判别。因此,使用此类方法需要有足够的先验知识。
    非监督分类: 也成为无人管理的分类。这类方法一般用于没有先验知识的情况,通常采用聚类分析的方法,即“物以类聚”的观点,用数学方法分析各特征向量之间的距离及分散情况,结果合理即可。

    展开全文
  • 中科大模式识别分类器作业,要求选择2-3个分类器在2-3个数据集上进行分类实验。
  • 支持向量机实现多分类,解决多分类的问题,模式识别
  • 模式识别分类器设计

    2017-07-20 09:35:00
    模式识别贝叶斯、BP、决策树分类器比较。内含MTALAB代码、PPT、数据集
  • 模式识别分类方法

    2018-04-10 16:03:03
    采用分类器对数据进行有效分类,有具体的代码和实验结果。
  • 基于matlab的Iris、乳腺癌数据集的模式识别分类算法,含有 遗传算法+SVM、isodata、感知器算法、LMSE、神经网络等算法的实现代码,用于聚类效果良好,是模式识别大作业的参考资料 网盘链接:...
  • 模式识别分类算法.ppt

    2020-08-05 20:15:04
    模式识别分类算 目录 研究背景 应用领域 相关算法 研究背景 模式识别( Pattern Recognition是指对 表征事物或现象的各种形式的(数值的 文字的和逻辑关系的)信息进行处理和分 析,以对事物或现象进行描述辨认分 类和...
  • matlab实现的模式识别分类器:fisher 与bayes 分类器,实现男女性别的分类
  • 模式分类技术、模式识别分类问题求解方法。求解多分类的方法。机器学习资料
  • 基于Matlab实现: 模式识别 K-Means算法 实现模式分类 模式识别 K-均值算法 实现模式分类
  • 几种常见模式识别方法总结,如K-NN,贝叶斯方法、 Principle Component Analysis、Linear Discriminant Analysis、Non-negative Matrix Factorization等等
  • 模式识别的几个经典分类器,附matlab程序。模式识别 分类器 贝叶斯 感知器 模式识别的几个经典分类器,附matlab程序。
  • 模式识别鸢尾花分类

    2018-03-26 16:40:26
    模式识别鸢尾花分类,matlab程序,总共3类鸢尾花进行分类
  • matlab程序通过输入要分类东西的特征然后通过程序自动识别分类,代码有说明,逻辑通俗易懂,非常简单,有不明白的可以私信询问,谢谢支持!
  • 模式识别_分类器设计

    2009-06-18 22:53:59
    很不错的c语言编写的k均值法,分类器设计,klT变换
  • 模式识别分类

    万次阅读 多人点赞 2017-07-10 11:45:38
    1、SVM分类器 答:SVM算法就是找一个超平面,并且它到离他最近的训练样本的距离要最大。即最优分割超平面最大化训练样本边界。如下图所示,就是将两种不同类别的样本特征分隔开,且分割面要在最优分隔位置: 注意...

    常见分类器介绍

    1、SVM分类器(监督学习分类器)

    答:训练样本必须先标识不同类别,然后进行训练。SVM算法就是找一个超平面,对于已经被标记的训练样本,SVM训练得到一个超平面,使得两个类别训练集中距离超平面最近的样本之间的垂直距离要最大(也就是如下图所示的两个虚线距离最大)。如下图所示,就是将两种不同类别的样本特征分隔开,且分割面要在最优分隔位置。


    例如,有两个样本点,第一个点为正样本,它的特征向量是(0,-1);第二个点为负样本,它的特征向量是(2,3),从这两个样本点组成的训练集构建一个线性SVM分类器:两个样本之间的中点向量是(1,1),样本点之间的连线斜率为2,由于分割线与样本连线垂直且经过中点,那么样本SVM分割面方程为:x+2y=3,如图:


    2、KNN分类器(监督学习分类器)

    答:(1)定义:KNN即K最近邻,是最简单的机器学习算法之一。已知训练样本必须先标识,然后进行训练得到未知样本分类。对于未知样本,按照某种计算距离找出它在训练集中的k个最近邻(监督学习:k个最邻近样本的分类已知),如果k个近邻中多数样本属于哪个类别,就将它判决为那一个类别。

    由于采用k投票机制,所以能够减小噪声的影响。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

    (2)算法流程:

    ①准备数据,对数据进行预处理;

    ②选用合适的数据结构存储训练数据和测试元组;

    ③设定参数,如k;

    ④维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组。随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列;

    ⑤遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L 与优先级队列中的最大距离Lmax;

    ⑥ 进行比较。若L>=Lmax,则舍弃该元组,遍历下一个元组。若L < Lmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列;

    ⑦遍历完毕,计算优先级队列中k 个元组的多数类,并将其作为测试元组的类别;

    ⑧测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k 值。

    具体如下:

    如果K=3,那么离绿色点最近的有2个红色三角形和1个蓝色的正方形,这3个点投票,于是绿色的这个待分类点属于红色的三角形 ;
    如果K=5,那么离绿色点最近的有2个红色三角形和3个蓝色的正方形,这5个点投票,于是绿色的这个待分类点属于蓝色的正方形 ;

    (3)特别适合于多分类问题(multi-modal,对象具有多个类别标签), kNN比SVM的表现要好。不足之处是计算量较大、样本不平衡时分类效果差(如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。)。

    针对这些缺陷,出现了改进方法:1)训练前对数据进行预处理,剔除关联性小的数据(针对计算量大的改进);2)采用权值的方法(和该样本距离小的邻居权值大)来改进(不平衡时分类效果差);

    3、K-means分类器(非监督学习分类器)

    答:(1)定义:设定参数k,然后将事先输入的n个数据对象划分为k个聚类,使得所获得的每个聚类满足内部对象相似度较高,而不同聚类中的对象相似度较小。注:这个是不需要事先标记的,所以是非监督学习。

    (2)算法描述:

    ①适当选择k个类的初始中心; 

    ②在第m次迭代中,对任意一个样本,求其到k个类中心的距离,将该样本归到距离最短的那个类; 

    ③利用均值方法更新该类的中心; 

    ④对于所有的C个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束;否则继续迭代。

    (3)缺点:

    ①聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适;
    ②K-means需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果(可以使用K-means++算法来解决)。

    (4)改进型算法——K-Means++

    k-means++算法就是用来改进K-Means算法的K个类中心不好选择的缺陷。它选择初始中心的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。

    4、KNN和K-Means的区别

    答:如下表:


    5、有关分类算法的准确率,召回率,F1 值的描述

    答:对于二类分类问题常用的评价指标是:精准度(precision)与召回率(recall)。

    通常以关注的类为正类,其他类为负类,分类器在测试数据集上的预测或正确或不正确,4种情况出现的总数分别记作:
    TP——将正类预测为正类数
    FN——将正类预测为负类数
    FP——将负类预测为正类数
    TN——将负类预测为负类数

    由此:
    精准率定义为:P = TP / (TP + FP)
    召回率定义为:R = TP / (TP + FN)
    F1值定义为: F1 = 2 P*R / (P + R)

    精准率和召回率和F1取值都在0和1之间,精准率和召回率高,F1值也会高。

    关于精准率和召回率的理解举例:

    假设一共有10篇文章,里面4篇是你要找的。根据你某个算法,找到其中5篇,但是实际上在这5篇里面,只有3篇是真正你要找的。那么你的这个算法的precision是3/5=60%;这个算法的recall是3/4=75%,也就是一共有用的这4篇里面,该算法只找到了其中3篇。

    注:在信息检索领域,精确率和召回率又被称为查准率和查全率:

    查准率=检索出的相关信息量 / 检索出的信息总量;
    查全率=检索出的相关信息量 / 系统中的相关信息总量;

    6、核函数

    答:核函数是一个特征分类工具,为了使特征更容易分离或更好的结构化,把低维特征数据映射到高维数据的工具。比如,一组特征是以一维线段形式混合存在的,无法使用分割面分割,就可使用核函数将组特征转化为2维或更高维形式的组合,从而使得分割得以实现。举例,如图:

    本来是二维的数据,现在我们把它映射的高维。这里也需要说明下,低维到高维,维数没有一个数量上的标准,可能就是无限维到无限维。

    Mercer 定理:任何半正定的函数都可以作为核函数;

    几种常用的核:

    1) 线性核
    线性内核是最简单的内核函数。 它由内积<x,y>加上可选的常数c给出。 使用线性内核的内核算法通常等于它们的非内核对应物,即具有线性内核的KPCA与标准PCA相同:

    2)多项式核函数

    多项式核是非固定内核。 多项式内核非常适合于所有训练数据都归一化的问题。表达式:k(x,y)=(αx ^ T y + c)^ d;

    可调参数是斜率α,常数项c和多项式度d。

    3)高斯核

    4)指数的内核

    5)拉普拉斯算子核


    7、判别式模型与生成式模型的区别

    答:生成式模型(Generative Model)与判别式模型(Discrimitive Model)是分类器常遇到的概念,它们的区别在于:对于输入x和类别标签y,生成式模型估计它们的联合概率分布P(x,y),判别式模型估计条件概率分布P(y|x)。生成式模型可以根据贝叶斯公式得到判别式模型,但反过来不行。

    生成式模型:

    判别式分析

    朴素贝叶斯

    K近邻(KNN)

    混合高斯模型

    隐马尔科夫模型(HMM)

    贝叶斯网络

    Sigmoid Belief Networks

    马尔科夫随机场(Markov Random Fields)

    深度信念网络(DBN)

    判别式模型:

    线性回归(Linear Regression)

    逻辑回归(Logistic Regression)

    神经网络(NN)

    支持向量机(SVM)

    高斯过程(Gaussian Process)

    条件随机场(CRF)

    CART(Classification and Regression Tree)


    8、模式识别分类中,先验概率未知时的处理方法

    答:有两种处理方式,如下(1)(2)所示:

    (1)使用N-P决策:

    在贝叶斯决策中,对于先验概率p(y),分为已知和未知两种情况:

    1)p(y)已知,直接使用贝叶斯公式求后验概率即可; 

    2)p(y)未知,可以使用聂曼-皮尔逊决策(N-P决策)来计算决策面。 

    (2)使用最大最小损失规则:

    最大最小损失规则主要作用就是解决使用最小损失规则时先验概率未知或难以计算的问题。



    9、在分类问题遇到正负样本数据量不等的情况的处理方法

    答:机器学习分类问题中的不均衡问题是指正负样本相差10倍以上,解决方法一般有:重采样、欠采样、调整权值。

    比如正样本为10w条数据,负样本只有1w条数据,可以采取以方法处理:

    1)将负样本重复10次,生成10w样本量,打乱顺序参与分类(可视为重采样变形形式);

    2)从10w正样本中随机抽取1w参与分类(欠采样);

    3)将负样本每个权重设置为10,正样本权重为1,参与训练过程(调整权值)。



    10、机器学习的降维方法

    答:机器学习中常见的特征降维方法包括:Lasso,PCA,小波分析,LDA,奇异值分解SVD,拉普拉斯特征映射,SparseAutoEncoder,局部线性嵌入LLE,等距映射Isomap。

    LASSO:通过参数缩减达到降维的目的;

    主成分分析PCA(Principal Component Analysis):又称为霍特林变换(K-L变换),是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维;

    小波分析:小波分析有一些变换的操作降低其他干扰可以看做是降维;

    线性判别式分析(Linear Discriminant Analysis):简称为LDA,也称为Fisher线性判别(Fisher Linear Discriminant,FLD),是模式识别的经典算法,在1996年由Belhumeur引入模式识别和人工智能领域;

    拉普拉斯映射:拉普拉斯特征映射将处于流形上的数据,在尽量保留原数据间相似度的情况下,映射到低维下表示;

    深度学习SparseAutoEncoder 稀疏自编码就是用少于输入层神经元数量的隐含层神经元去学习表征输入层的特征,相当于把输入层的特征压缩了,所以是特征降维;

    矩阵奇异值分解SVD:在PCA算法中,用到了SVD,类似PCA,可以看成一类;

    LLE局部线性嵌入(Locally linear embedding,LLE):是一种非线性降维算法,它能够使降维后的数据较好地保持原有流形结构。LLE可以说是流形学习方法最经典的工作之一。很多后续的流形学习、降维方法都与LLE有密切联系;

    Isomap等距映射:Isomap是一种非迭代的全局优化算法,通过一种原本试用于欧式空间的算法MDS,达到降维的目的。




    11、常见的机器学习算法

    答:机器学习算法通常可以被分为三大类 ——监督式学习,非监督式学习和强化学习(又叫“半监督学习”)

    监督式学习主要用于一部分数据集(训练数据)有某些可以获取的熟悉标签,但剩余的样本缺失并且需要预测的场景。

    非监督式学习主要用于从未标注数据集中挖掘相互之间的隐含关系。

    强化学习介于两者之间 —— 每一步预测或者行为都或多或少有一些反馈信息,但是却没有准确的标签或者错误提示。

    监督学习分为两大类:回归分析和分类

    回归分析(Regression Analysis):如果拿二维平面来说,就是对已经存在的点(训练数据)进行分析,拟合出适当的函数模型y=f(x),这里y就是数据的标签,而对于一个新的自变量x,通过这个函数模型得到标签y;

    分类(Classification):训练数据是特征向量与其对应的标签,同样要通过分析特征向量,对于一个新的向量得到其标签。
    回归分析与分类区别其实就是数据的区别就是回归是针对连续数据,分类是针对离散数据。

    非监督式学习也可分为两大类:聚类问题和关联问题
    聚类问题:
    聚类学习问题指的是我们想在数据中发现内在的分组,比如以购买行为对顾客进行分组。常见的聚类算法有:基于类心的聚类算法、基于连接的聚类算法、基于密度的聚类算法、概率型算法、降维算法、神经网络/深度学习;
    关联问题:关联问题学习问题指的是我们想发现数据的各部分之间的联系和规则,例如购买X物品的顾客也喜欢购买Y物品。

    常用的机器学习算法:决策树,随机森林算法,逻辑回归,SVM分类器,朴素贝叶斯分类器,K最近邻算法(KNN),K-Means算法,Adaboost 算法,神经网络,隐马尔可夫、聚类算法;

    其中,

    监督学习算法:决策树,随机森林算法,逻辑回归,最小二乘法,SVM分类器,朴素贝叶斯分类器,KNN,Adaboost 算法,神经网络,马尔可夫

    无监督学习算法:K-Means算法、主成分分析(PCA)、奇异值分解(SVD)、聚类算法、独立成分分析(ICA)。




    12、常见的类概率求解问题

    答:举例:
    解析:概率问题基本上都是贝叶斯和全概率互相结合求解,他们之间往往可以通过条件概率建立联系。
    本题中,要判断 xi 属于w1,还是w2,就是判断 p(w1 | xi) 和 p(w2 | xi)的大小关系,哪个概率大就属于对应的类别。即在xi已经发生的情况下,xi 属于哪个类别(w1 ,w2)的可能性更大:
    p(w1 | xi) = p(xiw1) / p(xi) = p(xi | w1) * p(w1) / p(xi) = 0.6*(2 - xi) / p(xi) // 因为xi都在 (1,2)范围
    p(w2 | xi) = p(xiw2) / p(xi) = p(xi | w2) * p(w2) / p(xi) = 0.4*(xi - 1) / p(xi) // 因为xi都在 (1,2)范围
    上面两等式相减,得:
    delta = p(w1 | xi) - p(w2 | xi) = (1.6 - xi) / p(xi);
    所以,在上诉样本中,大于1.6的,属于w2,小于1.6的,属于w1。

    补充一下贝叶斯公式:


    13、机器学习中的过拟合

    答:机器学习训练中过拟合发生的原因有两点:
    (1)训练集偏少,造成训练特征不具有代表性;
    (2)网络过于复杂,造成训练获取的特征过于苛刻;

    解决方法对应也是两个方向:
    (1)增加训练集;
    (2)简单化训练网络,包括:
    ①正则化,一般有L1正则与L2正则等;
    ②early stopping,即在发生过拟合的临界点前提前停止;
    ③减少神经网络的隐含层节点数,减小模型复杂度。


    14、PCA——主成分分析法

    答:PCA的目的是降维,就是“降噪”和“去冗余”
    “降噪”的目的就是使保留下来的维度间的相关性尽可能小,而“去冗余”的目的就是使保留下来的维度含有的“能量”即方差尽可能大。
    有什么数据结构能同时表现不同维度间的相关性以及各个维度上的方差呢?
    自然是协方差矩阵。协方差矩阵的主对角线上的元素是各个维度上的方差(即能量),其他元素是两两维度间的协方差(即相关性)。
    (1)先来看“降噪”,让保留下的不同维度间的相关性尽可能小,也就是说让协方差矩阵中非对角线元素都基本为零。达到这个目的的方式就是矩阵对角化。
    (2)对于“去冗余”,对角化后得到的矩阵,其对角线上是协方差矩阵的特征值,它表示各个维度本身应该拥有的能量。通过对角化后,剩余维度间的相关性已经减到最弱,已经不会再受“噪声”的影响了,故此时拥有的能量应该比先前大了。对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。所以我们只取那些含有较大能量(特征值)的维度,其余的就舍掉即可。(3)PCA的本质:其实就是对角化协方差矩阵 ,目的是让维度之间的相关性最小(降噪),保留下来的维度的能量最大(去冗余)。
    (3)主要 思想:寻找表示数据分布的最优子空间(降维,可以去相关)。

    其实就是取协方差矩阵前s个最大特征值对应的特征向量构成映射矩阵,对数据进行降维。


    具体可以参考:http://lanbing510.info/public/file/posts/pca.doc


    15、时间序列模型

    答:(1)AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值;
    (2)MA模型(moving average model)滑动平均模型,模型参量法谱分析方法之一;
    (3)ARMA模型(auto regressive moving average model)自回归滑动平均模型,模型参量法高分辨率谱分析方法之一。这种方法是研究平稳随机过程有理谱的典型方法。它比AR模型法与MA模型法有较精确的谱估计及较优良的谱分辨率性能,但其参数估算比较繁琐;
    (4)GARCH模型称为广义ARCH模型,是ARCH模型的拓展, GARCH对误差的方差进行了进一步的建模,特别适用于波动性的分析和 预测。

    16、三种常见的概率函数

    答:概率质量函数 (probability mass function,PMF)是离散随机变量在各特定取值上的概率;
    概率密度函数(probability density function,PDF )是对连续随机变量定义的,本身不是概率,只有对连续随机变量的取值进行积分后才是概率;
    累积分布函数(cumulative distribution function,CDF) 能完整描述一个实数随机变量X的概率分布,是概率密度函数的积分。对於所有实数x ,与pdf相对。
    展开全文
  • 通过模式识别原理,对手写程序进行识别,基于VC++开发。
  • 这些数据可以用于模式识别中验证算法,可以观测分类效果
  • 模式识别分类器评价指标之DET曲线

    千次阅读 2017-10-24 21:31:50
    DET(Detection Error Tradeoff )曲线是对二元分类系统误码率的...现在DET曲线扩展到用于模式识别分类器性能的评价的一个指标之一。 在上式中, 表示正样本总数, 表示正样本被拒绝即判定为负样本的数目, 表示负样本

    DET(Detection Error Tradeoff )曲线是对二元分类系统误码率的曲线图,绘制出错误拒绝率FRR(False Reject Rate)与错误接受率(False Accept Rate)之间随着判断阈值的变化而变化的曲线图。现在DET曲线扩展到用于模式识别分类器性能的评价的一个指标之一。


    在上式中, 表示正样本总数, 表示正样本被拒绝即判定为负样本的数目, 表示负样本总数,表示被错误接受的样本数,也就是本身是负样本被判定为正样本的样本数目。由此可以看出,FRR与FAR均受到判定阈值的影响,并且当FAR逐渐增大的时候,也就是当错误接受率逐渐靠近1时,FRR错误拒绝率逐渐减小;当FRR逐渐增大时,FAR必然是逐渐减小的。

    当在不同的判定阈值时,画出FRR与FAR的关系,也就是DET曲线。

    具体Matlab代码如下:

    function plot_det(true_scores,false_scores)
    %实际上,这里的true_scores=-true_scores
    % false_scores=-false_scores
    
    score_max = 9E99;
     
    %计算FRR与FAR
    num_true = max(size(true_scores));
    true_sorted = sort(true_scores);  %label未按照ind排列
    
    true_sorted(num_true+1) = score_max;
     
    num_false = max(size(false_scores));
    false_sorted = sort(false_scores); %label未按照ind排列
    
    false_sorted(num_false+1) = score_max;
     
    frr = zeros(num_true+num_false+1, 1); 
    
    far = zeros(num_true+num_false+1, 1); 
     
    npts = 1;
    
    frr(npts) = 0.0;
    far(npts) = 1.0;
    ntrue = 1;
    nfalse = 1;
    num_true
    num_false
    while ntrue <= num_true | nfalse <= num_false
            if true_sorted(ntrue) <= false_sorted(nfalse)
    %----------------------------------------------------------------
    %----排序后按照对应序号元素比较,并不改变针对某个判定阈值下错误拒  
    %绝FR样本数目和错误接受FA样本数目,并且前面已经提到true_scores 
    %和false_scores实际上已经取反,所以这里的'<='的结果ntrue实际上 
    %变成被拒绝的样本数目。注意:这里是按照距离相似度,距离越小越相似
    %----------------------------------------------------------------
    
                    ntrue = ntrue+1;
    
            else
    
                    nfalse = nfalse+1;
    
            end
    
            npts = npts+1;
    
            frr(npts) = (ntrue-1) / num_true;
    
            far(npts) = (num_false - (nfalse-1)) / num_false;
    
    end
     
    det.frr = frr(1:npts);
    det.far = far(1:npts);
    
    plot(det.frr,det.far)
    	title('DET曲线')
    end
    










    参考:

    1. 模式识别 评价方法 ROC曲线, DET曲线, FPPW, FPPI etc.


    展开全文
  • 这是《模式识别》的课程实验作业,基于C均值的分类器,可以随机生成样本,然后训练,错误率分析等内容,具有动态效果,分类进度高。
  • MATLAB下设计GUI界面模式识别分类器功能,通过鼠标选点感知器分类
  • 关于模式识别课程的学习代码,采用c语言实现通过学习训练实现对手写数字的自动识别。
  • 模式识别课程 老师让用最大似然分类法对一个遥感影像进行分类,在CSDN 上有很多大佬都写过类似的文章,本人阅读之后,感触良多,此篇博客就简单记录一下 这段时间对MLC 的学习,希望可以帮助到大家。

    最近(2020/6/14)模式识别课程 老师让用最大似然分类法对一个遥感影像进行分类,在CSDN 上有很多大佬都写过类似的文章,本人阅读之后,犹如醍醐灌顶,对这些大佬们的钦佩之情犹如绵绵江水滔滔不绝。此篇博客就简单记录一下 这段时间对MLC 的学习,希望可以帮助到大家。


    一、预备知识

    关于MLC,百度百科 中,最大似然分类(MaximumLikelihood Classification )被定义为 在两类或多类判决中,用统计方法根据最大似然比贝叶斯判决准则法建立非线性判别函数集,假定各类分布函数为正态分布,并选择训练区,计算各待分类样区的归属概率,而进行分类的一种图像分类方法。 其又称为贝叶斯(Bayes)分类法,是根据Bayes准则对遥感影像进行分类的。

    1. 一篇大佬的博客

    下面是 liangdas(CSDN博主)对MLC 的一些介绍,我觉得挺好的,就摘抄下来了,其中缺失部分也做了一些补充。

    原文链接:https://blog.csdn.net/liangdas/article/details/19294951

    前言:

    最小距离分类法只考虑了待分类样本到各个类别中心的距离,而没有考虑已知样本的分布,所以它的分类速度快,但精度不高。今天要介绍的是另外一种分类方法——最大似然分类法,它也是分类里面用得很多的一种分类方法,它在分类的时候,不仅考虑了待分类样本到已知类别中心的距离,而且还考虑了已知类别的分布特征,所以其分类精度比最小距离分类法要高。

    下面有一个图,黄色所示类别A的分布,蓝色是类别B的分布,类别A和B的类别中心都红色的点表示出来了,那么有一个未知类别的样本p,假设p到类别A的距离是Ap,到类别B的距离是Bp,现在Ap=Bp,那么如果用最小距离分类法,我们是不能判断样本p到底是属于A类还是B类的,所以这就是最小距离分类法的局限性。
    在这里插入图片描述

    感性认识:

    假设在我们读书的时候,在一个月内,30天,你发现晚上11点以后实验室还亮着灯,你很好奇,每次推门进去,发现这30天内,实验室中不是甲就是乙,或者他们同时都在,你做了统计,是甲的天数是28天,是乙的次数是4天,然后有一天晚上11点,你发现实验室的灯又亮了,你同学问你:“你猜现在是谁在实验室呀?”,你会回答“应该是甲吧”。这其实就是生活中我们利用最大似然来分类的一个例子。

    另外一个例子:现在我们有两个盒子:甲和乙,每个里面都装了100个球,其中甲中装了95个红球,5个黑球,乙中装了60个红球,40个黑球,现在有人从盒子里面取出了一个球,发现是红球,然后让你猜:“他是从哪个盒子里面取出来的?”,想必你会猜“甲”吧。

    好了,其实我们生活中,已经对最大似然估计有了自己的经验体会,是不是还没有意识到它就是最大似然分类法呢?呵呵。(不是我呵呵的)

    基本原理:

    假设有两个事件A,B,我们通过先验的知识,知道A发生的条件下,x也发生的概率是P(x|A); B发生的条件下,x也发生的概率是P(X|B),那么,现在有一个事件x发生了,我们能否判断这个事件x是在A条件下,还是在B条件下发生的可能性大些呢?也就是要求出P(A|x)和P(B|x)哪一个最大?对分类问题而言,哪一个概率大,我们就说x属于哪一类。

    我们回忆下贝叶斯公式:P(A|B)=P(B|A)*P(A)/P(B)

    从贝叶斯公式中我们可以看到,求概率P(A|B)的问题转化成了求P(B|A),P(A)和P(B)的问题,其实里面真正的精华是:概率P(A|B)和P(B|A)的转换。因为通常,我们事先能知道P(A),P(B);或者是P(A)和P(B)在分类问题中是公共的项,可以约去;再或是他们的差异可以忽略不计,所以,要P(A|B)最大,也就是要P(B|A)最大!而对于P(B|A),我们可以从事先已经发生的事件中,通过统计等数学方法计算得到,这样这个分类问题就好解了!我们可以提炼下面的目标函数:
    在这里插入图片描述
    贝叶斯公式的经典之处就是将后验概率的问题转化成了先验概率的问题!

    再回到上面的盒子和白球的问题中,A和B分别代表盒子甲和乙,事件x就是红球发生的概率,我们先验已经知道P(x|A)= 95/100=0.95,P(x|B)=60/100=0.6,我们要求的是P(A|x)和P(B|x),然后比较哪个最大?

    P(A|x)= P(A)*P(x|A)/P(x)
    P(B|x)= P(B)*P(x|B)/P(x)

    对于P(A), P(B),因为我们目前总共只有两个盒子甲和乙,也就是A和B,它们各有一个,所以P(A)=P(B)=1/2=0.5。

    对于P(x),因为P(A|x)和P(B|x)的贝叶斯表达式中都有P(x)这一项,所以,P(x)作为公共项,我们可以不考虑。如果硬是想知道它的值,那么因为是随机取一个球,P(x)=(95+60)/(100+100)。
    这样我们就可以轻松的知道P(A|x)大,还是P(B|x)大了。
    最大似然分类又叫贝叶斯分类。

    N 维空间的最大似然分类法原理:

    上面的例子中, x都是二项分布的,也就是x的取值只取两个值,通常为0,1,发生或者不发生等,但是在实际问题中,x往往不是服从这么一个简单的二项分布,而很有可能是其他更复杂一些的分布。

    在统计学和模式识别中,对某一个待研究的集合,在经验的基础上,我们通常假设它是一个服从正太分布的变量集合,如一群人的身高、某各班级某一科目的考试成绩、某个类别的某一维特征,我们都假定它是服从正态分布的,也叫高斯分布,即用均值 μ \mu μ,和方差 σ \sigma σ来描述的一组样本分布。对一维正态分布,其定义为:

    若随机变量 X X X 服从一个位置参数为 μ \mu μ、尺度参数为 σ \sigma σ 的正态分布,记为: X ∼ N ( μ , σ 2 ) X \sim N( \mu , \sigma^2 ) XN(μ,σ2)

    则其概率密度函数为 f ( x ) = 1 σ 2 π    e − ( x − μ ) 2 2 σ 2  ⁣ {\displaystyle f(x)={\frac {1}{\sigma {\sqrt {2\pi }}}}\;e^{-{\frac {\left(x-\mu \right)^{2}}{2\sigma ^{2}}}}\!} f(x)=σ2π 1e2σ2(xμ)2

    其含义为:变量 x 在此正态分布中出现的概率。

    通常,为了描述某一个对象,我们会从这个对象抽象出多个属性,每一个属性代表一个一维空间,多个属性就组成一个多维空间。对于多维空间的中的变量,它也有其正态分布的概率密度函数:(大佬的博客中,这部分有些内容缺失了,我按我的理解补充一下,有可能不是大佬本意)
    在这里插入图片描述
    上面已经指出了,最大似然分类的目标函数是:
    在这里插入图片描述
    p(Ci) 通常可以根据已知条件计算得到,或者其区别可以忽略不计。
    p(x) 是公共项,所以不用考虑其具体的值。

    N 维空间的最大似然分类法的化简:

    在这里插入图片描述

    2. 一些基础概念

    学了模式识别,我都学到了啥?下面列的一些概念是这门课程中涉及到的,有可能与本篇博文讲的东西关联性不是很强。(本来想一下写到这里的,可后来发现要点太多,就另开了一篇博客。)

    https://blog.csdn.net/Gou_Hailong/article/details/106747589

    有一点,我觉得有必要单独列出来:

    模式识别系统设计 / 评价过程
    系统评价原则: 为了更好地对模式识别系统性能进行评价,必须使用一组独立于训练集的测试集对系统进行测试。

    训练集: 是一个已知样本集,在监督学习方法中,用它来开发出模式分类器。

    测试集: 在设计识别和分类系统时没有用过的独立样本集。
    在这里插入图片描述

    二、着手编程

    前面已经提到,最大似然分类又称 Bayes 分类法,是根据 Bayes 则对遥感影像进行分类的。其具体内容是什么呢?请看下面原理部分,我们从头开始。

    1. 原理

    最大似然分类法将卫星遥感多波段数据的分布当作多维正态分布来构造判别分类函数。其基本思想是:各类的已知像元的数据在平面或空间中构成一定的点群;每一类的每一维数据在自己的数轴上形成一个正态分布,该类的多维数据就构成该类的一个多维正态分布,有了各类的多维分布模型,对于任何一个未知类别的数据向量,都可反过来求它属于各类的概率;比较这些概率的大小,看属于哪一类的概率大,就把这个数据向量或这个像元归为该类。

    基于该基本思想,我们有如下步骤(由于这里用到的数据有可能不是各位人手都有的,所以权当我抛砖引玉,这里就当是看一个对遥感影像进行分类的例子吧):

    首先先介绍一下实验数据:实验数据是 191 Band Hyperspectral Image: HYDICE image of Washington DC Mall (Dcmall),测试数据集,训练数据集。也就是一张191波段的 16位 的高光谱图像,还有两个已经分类好的数据集,所以大家应该知道我为什么要把“模式识别系统设计 / 评价过程”在上面单独列出来了吧😜

    1.用 训练数据集 将各类的 类概率密度函数 确定下来。训练数据集中数据被分为了5类:训练grass116.txt、训练path50.txt、训练road110.txt、训练roof431.txt、训练tree49.txt 都被保存在如上的 txt 文件当中,其中后面的数字代表有多少个像素点。

    (这里要吐槽一下,本来想直接在这里插公式的,但是看了好多篇博客,从Mathtype 复制粘贴了好多次都没有成功,最终我还是放弃了,有朋友知道怎么解决的 还请指点迷津)

    在这里插入图片描述

    2. 编程日志

    6.14 开始准备相关事宜

    6.15 将最大似然法的思路捋顺

    6.16 因为matlab基础不牢,求方差卡脖子,费了一下午时间搞清楚了,并发现了之前思路里边的一个小错误:

    https://blog.csdn.net/Gou_Hailong/article/details/106788580

    6.17 【上午】发现之前想做191个波段的分类完全是异想天开,因为算出来的协方差矩阵太nm离谱 大到没边儿了(求判别函数都是inf)。猜想训练数据集的获得也并不是将191个波段完全考虑的,所以决定用各类方差都比较小的188、190、191这三个波段进行分类。【下午】憨憨,还没归一化。但是归一化之后分类结果都是归成了一类,怎么解?

    6.18 今天找到了原因,原来是我个铁憨憨没有改变待分类样本的数据,一直都是对第一个像素点进行的判别。今天没有编程,先写了写论文,洋洋给我了一些启发:用测试样本集计算混淆矩阵来评定其精度,开篇博文介绍了一下混淆矩阵:

    https://blog.csdn.net/Gou_Hailong/article/details/106842879

    6.19 今天有巨大的突破,多亏了洋洋。混淆矩阵顺利成章做出来了,和洋洋的结果差不多。我想说的大突破是找到了可以表示分类结果的方法:以不同的颜色代表不同的类别,然后按像素点所在的位置将其染色。前提条件是了解怎么用Matlab 来画图(这个画图不是画数学函数曲线,是那种画画),方法加到了之前写的一个博客当中:

    https://blog.csdn.net/Gou_Hailong/article/details/106242250

    6.20 今天就是扫尾工作了,K 均值法之前写过,只不过将 2 维变 n 维就好了。n维算法也已经补充到了博客:

    https://blog.csdn.net/Gou_Hailong/article/details/106027047

    3. 源码

    慎重考虑,我决定还是不提供源码了,我怕之后有学弟学妹们偷懒+蜂蜜毒药+老师找我喝茶 😨 😨 😨
    在这里插入图片描述
    为了下次看代码方便,我还是上传一张结构图吧。
    在这里插入图片描述

    引用/参考 文章

    [1] liangdas-CSDN博主:https://blog.csdn.net/liangdas/article/details/19294951
    [2] 百度文库:https://wenku.baidu.com/view/12a5de46a8956bec0975e364.html
    
    展开全文
  • 模式识别实现之人脸识别(matlab)-附件资源
  • 1.基于概率统计的Bayes分类器 因为在实际分类中由于考虑的侧重点不同或者关心的点不一样导致不能使用同一决策去解决所有的事件的分类,所以需要根据不同的准测函数选择不同的分类决策(基于最小错误率的Bayes决策,...
  • 模式识别分类器评价指标之CMC曲线

    万次阅读 热门讨论 2017-10-15 19:13:41
    CMC曲线全称是Cumulative Match Characteristic (CMC) curve,也就是累积匹配曲线,同ROC曲线Receiver Operating Characteristic (ROC) curve一样,是模式识别系统,如人脸,指纹,虹膜等的重要评价指标,尤其是在...
  • 模式识别分类常用的matlab代码

    热门讨论 2011-05-26 16:32:10
    模式识别中用到的文本分类,图像识别的分类算法,bp神经网络,浮动搜索算法,特征选择算法,svm文本分类算法等等,来自于一个希腊学者的模式识别著作的代码
  • 模式识别之特征选择

    2018-10-30 16:19:27
    本书系统深入地论述用于模式识别的特征选择的理论与方法。在内容上注重系统、全面地论述特征选择理论和方法,并力求反映国内、外特征选择领域的最新发展趋势。 全书重点论述各种有监督和无监督特征选择理论及方法。...
  • 花卉图像识别分类

    2018-10-13 10:58:26
    征,并使用分级SVM分类器对花卉图像进行了识别。论文提出了分区域特征提取以 及极坐标系下的灰度共生矩阵适于描述放射状生长的花朵纹理特征,对提高系统的识 别准确率具有重要意义,此外,所设计的分级SVM分类器有效...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 140,833
精华内容 56,333
关键字:

模式识别分类