山东大学模式识别实验(java)贝叶斯算法

本文介绍了使用Java实现贝叶斯算法进行模式识别的实验过程,主要涉及汽车数据集的分类。实验中,通过计算条件概率P(X|C)P(C)来确定数据类别,并封装汽车类,将数据存储在txt文件中。实验分为训练集和测试集,通过比较概率判断分类正确性,以评估算法准确率。
摘要由CSDN通过智能技术生成

贝叶斯算法,简单地说就是比较测试数据是各个类别的概率,概率最大的就判断为这个数据的类别。具体来说就是一个条件概率的计算,测试数据是X,某个类别是C,那么也就是求P(C|X)最大的C,等于P(X|C)P(C)/P(X),因为P(X)不变,所以不必引入计算。也就是说,比较的是P(X|C)P(C)。进一步,P(C)=C类数量/训练集总数,其中训练集总数不变,所以也可以忽略。P(X|C)=P(X1 | C).P(X2 | C).......也就是C类中X各个特征的值的条件概率。

首先需要一个测试集,然后求出各个类的数量和各个类的各个特征的各个值的条件概率(三层数组),接下来就可以对测试数据进行分类,使用上面的数据进行计算。

在本实验中,使用的是汽车数据集,分为四类。我将汽车封装为一个类,然后将数据集内容存储在一个txt中(放在项目根目录下,叫做a.txt),每一行对应一个汽车数据元素,然后在主类test类中还提供了txt转成汽车数组的方法。根据实验要求取数据集的部分作为训练集,全集作为测试集。由于全集数据其实都是已分类的数据,所以每次分完类后可以直接判断本次分类是否正确,从而得出正确率。

1.汽车类:

public class Car {
	private int kind,buying,maint,door,Persons,Lug_boot,Safety;

	public int getKind() {
		return kind;
	}

	public void setKind(int kind) {
		this.kind = kind;
	}

	public int getBuying() {
		return buying;
	}

	public void setBuying(int buying) {
		this.buying = buying;
	}

	public int getMaint() {
		return maint;
	}

	public void setMaint(int 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值