Wine数据集——贝叶斯分类算法(MATLAB实现)

Wine数据集分类——贝叶斯分类算法(MATLAB实现)

  • 一、Wine数据集的介绍
      • 1.1 实验目的
      • 1.2 数据介绍
      • 1.3 数据来源
  • 二、贝叶斯算法理论
      • 2.1 贝叶斯分类
      • 2.2 贝叶斯公式
      • 2.3 朴素贝叶斯分类器的设计流程
      • 2.3 朴素贝叶斯分类器的数学原理
  • 三、MATLAB仿真实现

一、Wine数据集的介绍

1.1 实验目的

??该实验的Wine数据集来自于UCI机器学习数据库中,数据集中的数据则是产自意大利同一地区但来自三个不同品种的葡萄酒进行化学分析的结果,分析确定了三种酒中每种所含13种不同成分的数量。
??实验的目的就是利用分类算法实现Wine数据集中三种不同品种的葡萄酒分类。通过学习贝叶斯分类相关的知识,我们决定使用贝叶斯分类算法对Wine数据集进行分类。Wine数据集含有178个样本,我们将采用k折交叉验证的方法选取训练集和测试集,并采用朴素贝叶斯分类算法实现Wine数据集的分类。实验过程所使用的编程软件为MATLAB仿真软件,利用MATLAB实现算法及分类。

1.2 数据介绍

??下表是Wine数据集的相关信息。

Data Set Characteristics: Multivariate Number of Instances: 178 Area: Physical
Attribute Characteristics: Integer, Real Number of Attributes: 13 Date Donated: 1991-07-01
Associated Tasks: Classification Missing Values/td> No Number of Web Hits: 1509517

??这些数据包括了三种酒中13中不同成分的数量。13种成分分别是:Alcohol、Malic acid、Ash、 Alkalinity of ash、Magnesium、Total phenols、Flavanoids 、Nonflavanoid phenols、Proanthocyanins、Color intensity、Hue、OD280/OD315 of diluted wines、Proline。在‘Wine.data’文件中,每一行代表一种酒的样本,共有178个样本;一共14列,其中第一列为类别标志属性,共有3类,分别标记为‘1’、‘2’、‘3’,对于三种不同的葡萄酒;后面13列为每一个样本对应属性的属性值;类别‘1’共有59个样本,类别‘2’共有71个样本,类别‘3’共有48个样本
??由于数据集中每个样本的数据都是完整的,没有空缺值,所以没有对该数据集进行必要的数据清洗工作

1.3 数据来源

??http://archive.ics.uci.edu/ml/datasets/Wine

二、贝叶斯算法理论

2.1 贝叶斯分类

??贝叶斯分类是指通过训练集(已分类的数据子集)训练来归纳出分类器,并利用分类器对未分类的数据(可以看作是测试集)进行分类。其基本思想是依据先验概率、类条件概率的信息,并按照某种准则使分类结果从统计上讲是最佳的。它是一种有监督学习的分类方法。

2.2 贝叶斯公式

??若已知总共有M类样品,以及各类在n维特征空间的统计分布,根据概率知识可以通过样品库得知各类别 w i ( i = 1 , 2 , . . . , M ) w_i(i=1,2,…,M) wi?(i=1,2,...,M)的先验概率 p ( w i ) p(w_i) p(wi?)以及类条件概率 p ( X / w i ) p(X/w_i) p(X/wi?)。对于待测样品,贝叶斯公式可以计算出该样品分属各类别的概率,叫做后验概率 p ( w i / X ) p(w_i/X) p(wi?/X) 。比较各个后验概率,把X归于后验概率最大的那一个类。

Wine数据集——贝叶斯分类算法(MATLAB实现) ?? 可以看到,整个朴素贝叶斯分类分为三个阶段:

??第一阶段——准备工作阶段,这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。

??第二阶段——分类器训练阶段,这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。

??第三阶段——应用阶段。这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。

2.3 朴素贝叶斯分类器的数学原理

??本实验中所采用的贝叶斯分类算法是朴素贝叶斯分类算法。朴素贝叶斯算法又叫做基于最小错误率的贝叶斯分类算法,也可称为基于最大后验概率的贝叶斯分类算法。它的原理就是利用贝叶斯公式将样本划分到后验概率最大的那一类中。因此可以定义每一类的判别函数为:

Wine数据集——贝叶斯分类算法(MATLAB实现) ?? 假设样本空间被划分成c个类别决策区域,则分类判决规则为:
Wine数据集——贝叶斯分类算法(MATLAB实现) ?? 先分析一下判别函数。在判别函数中,先验概率是一个与特征向量无关的常量,类条件概率密度则满足一定的概率分布。因为类条件概率与我们要识别的样本x有关。可以说,类条件概率是x的函数。对于一个类别的所有样本,x的取值会呈现出某种概率分布,如果我们知道这个概率分布,也就知道了类条件概率密度,那么贝叶斯分类的分类决策规则也就确定下来了。类条件概率具有不同的概率分布,相应贝叶斯分类的分类决策规则就会有不同的形式。
??常见的类条件概率分布有:均匀分布、指数分布、正态分布等。
??对于连续变量,在大多数情况下,采用的是正态分布(高斯分布)。也就是说,类条件概率密度可以采用多维变量的正态密度函数来模拟,得到的贝叶斯分类也叫做高斯朴素贝叶斯分类

插讲:多维正态分布是样本在更高维度上的正态分布,它的基本形式与一维正态分布是相同的。只是在方差项上由一个协方差矩阵代替了方差,反映了各个维度之间存在的关联。

Wine数据集——贝叶斯分类算法(MATLAB实现) ?? 由于该判别函数含有指数,不方便计算。故取对数得到新的判别函数:
Wine数据集——贝叶斯分类算法(MATLAB实现) ?? 由于 d 2 ln ? ( 2 π ) frac{d}{2}ln (2π) 2d?ln(2π)与类别无关,所以判别函数可以进一步简化为:
Wine数据集——贝叶斯分类算法(MATLAB实现)

来源:Angelo_pj

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月1日
下一篇 2021年1月1日

相关推荐