zoukankan      html  css  js  c++  java
  • 数据挖掘算法学习(三)NaiveBayes算法

    算法简单介绍

    NBC是应用最广的分类算法之中的一个。朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同一时候,NBC模型所需预计的參数非常少,对缺失数据不太敏感,算法也比較简单

    算法如果

    给定目标值时属性之间互相条件独立。

    算法输入

    训练数据   T={(x1,y1),(x2,y2),……,(xn,yn)}
    待分类数据x0=(x0(1),x0(2),……,x0(n))T

    算法输出
    待分类数据
    x0的分类结果y0∈{c1,c2,……,ck}

    算法思想



    weka执行
    以weather.nominal.arff为例执行结果部分截图例如以下:


    从结果中能够看出,有两个分类,因此生成一个2*2的混淆矩阵。

    函数调用代码

    //读入样本

    Filefile= new File("F:\Program Files (x86)\Weka-3-7\data\weather.nominal.arff");

    ArffLoaderloader = newArffLoader();

    loader.setFile(file);

    ins= loader.getDataSet();

    ins.setClassIndex(ins.numAttributes()-1);

    //初始化分类器并训练

     cfs= (Classifier)Class.forName("weka.classifiers.bayes.NaiveBayes").newInstance();

    cfs.buildClassifier(ins);

    //获取分类器结果

    testingEvaluation.evaluateModelOnceAndRecordPrediction(cfs,testInst);

    //打印分类结果

    System.out.println("分类器的正确率:"+ (1-testingEvaluation.errorRate()));


    执行结果例如以下:

    分类器的正确率:0.9583333333333334


    算法应用

    垃圾邮件过滤系统
    分类web网页
    分类文本

    垃圾邮件过滤系统能够參考论文:周威成 马素霞 齐林海,一种基于机器学习的垃圾邮件智能过滤方法。


    原创文章,转载请注明出处,谢谢。



  • 相关阅读:
    清空map
    读取图片的DLL
    利用SysMailer发送邮件
    使用维度显示
    获取用户所属仓库与库位 Owner 所属仓位
    使用电子邮件模板
    使用SQL获取TableID
    导入数据到excel
    ax附件存取研究
    两步转移 过账
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3916973.html
Copyright © 2011-2022 走看看