题目 基于朴素贝叶斯模式识别系统的设计与实现
1.1 题目的主要研究内容
(1)本系统利用朴素贝叶斯贝叶斯分类器对鸢尾花进行分类。数据集由训练集和测试集组成,通过对数据进行特征提取与特征选择,对鸢尾花类型做出一个分类结果。朴素贝叶斯算法结合先验概率与后验概率,避免了先验概率的主观性和单独使用样本信息的过拟合现象,并且保持目标值属性之间相互条件独立。朴素贝叶斯简化了贝叶斯算法,具有较好的分类效果,同时在实际场景中大大降低了算法复杂性。
(2)系统流程图
1.2 题目研究的工作基础或实验条件
(1)硬件环境
CPU: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz 2.71 GHz
机带RAM:8GB
显卡:NVIDIA GeForce MX150
(2)软件环境
开发语言:Python
1.3 数据集描述
本系统所用的数据集为鸢尾花数据集。其中包含3类分别为山鸢尾(Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica),共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度(sepal length)、花萼宽度(sepal width)、花瓣长度(petal length)、花瓣宽度(petal width)。鸢尾花数据形式:
5.3,3.7,1.5,0.2,Iris-setosa
6.5,3.0,5.2,2.0,Iris-virginica
5.0,3.3,1.4,0.2,Iris-setosa
1.4 特征提取过程描述
鸢尾花数据集中有4个特征,分别为鸢尾花的花萼长度、花萼宽度、花瓣长度、 花瓣宽度。在训练数据集上,我们首先计算不同种类的各个特征的和,然后计算样本在各个属性上取值的均值,最后在计算各类样本在每个属性上的方差。通过特征提取过程中得到的均值和方差,我们能够计算出鸢尾花的每个种类上的各个特征属性的条件概率和后验概率。
1.5 分类过程描述
1.首先估计类先验概率,这里每个类别所占比例相同。
2.根据在特征提取部分中得到的均值和方差设置概率密度函数计算测试数据集上各个属性在每个类上的条件概率。
3.根据前两步计算的先验概率和条件概率,计算后验概率。即:后验概率=先验概率*条件概率
4.计算每个种类上的后验概率
5.比较每个种类上的后验概率,后验概率最大的类别为分类结果。
1.6 主要程序代码(要求必须有注释)
1.数据集的读取:
#读取训练数据集,这里将每种花取前45条数据,剩下的5条数据另外存入测试数据集
def read_train_data(filename):
f=open(filename,'r')
all_lines=f.readlines()
for line in all_li