数据挖掘—朴素贝叶斯分类算法(Java实现)

该博客介绍了如何使用Java实现朴素贝叶斯分类算法。首先,通过统计训练集中的类别分布和属性值出现频率来构建概率表;然后,利用这些概率构建分类模型;最后,应用模型对新的数据进行分类。
摘要由CSDN通过智能技术生成

算法描述

(1)扫描训练样本数据集,分别统计训练集中类别 Ci 的个数 Di 和属于类别Ci 的样本中属性Ak取值Xk为 Dik 的实例样本个数,构成统计表;
(2)计算先验概率和条件概率,构成概率表;
(3)构建分类模型;
(4)扫描待分类的样本数据集,调用已得到的统计表、概率表以及构建好的分类准则,得出分类结果;

代码

public class Bayes {
   

    //将训练集按巡逻集合的最后一个值进行分类
    Map<String, ArrayList<ArrayList<String>>> datasOfClass(ArrayList<ArrayList<String>> datas){
   

        Map<String, ArrayList<ArrayList<String>>> map = new HashMap<String, ArrayList<ArrayList<String>>>();
        ArrayList<String> t = null;
        String c = "";
        for (int i = 0; i < datas.size(); i++) {
   
            t = datas.get(i);
            c = t.get(t.size() - 1);
            if(c.length()==0) continue;
            if (map.containsKey(c)) {
   
                map.get(c).add(t);
            } else {
   
                ArrayList<ArrayList<String>> nt = new ArrayList<ArrayList<String>>();
                nt.add(t);
                map.put(c, nt);
            }
        }

        return map;
    }

    //在训练数据的基础上预测测试元组的类别 ,testT的各个属性在结果集里面出现的概率相乘最高的,即是结果
    public String predictClass(ArrayList<ArrayList<String>> datas, ArrayList<String> testT) {
   
        Map<String, ArrayList<ArrayList<String>>> doc = this.datasOfClass(datas);
        //将训练集元素划分保存在数据里
        Object classes[] = doc.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值