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网页
    分类文本

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


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



  • 相关阅读:
    Python学习摘要201802
    机器学习-梯度下降参数调优小结
    用尽洪荒之力学习Flask源码
    Flask类的属性和方法大全
    Flask第三方工具组件介绍
    Flask自带的常用组件介绍
    Centos下部署Flask
    Python Tips阅读摘要
    web程序设计关于我们
    软工实践总结
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3916973.html
Copyright © 2011-2022 走看看