weka 贝叶斯 java_NaiveBayes朴素贝叶斯分类器weka实现
1.参数设置(这两个参数我不怎么清楚什么意思,查了半天也没查到,有谁知道的务必不吝指教!!)
-K -- Use a kernel density estimator for numeric attributes rather than a normal distribution.对数值属性使用核密度估计代替正态分布
-D -- Use
supervised discretization to convert numeric attributes to nominal
ones.
这两者只能2选一
2.一开始加载arff文件是报错
原来是文件中属性有重名的,修改一下即可。
3.如果直接运行的话会因为内存不够而产生异常(数据量太大)
Exception in thread "main"
java.lang.OutOfMemoryError: Java heap space
at weka.core.Instances.sort(Instances.java:1231)
at weka.core.Instances.sort(Instances.java:1251)
at
weka.classifiers.bayes.NaiveBayes.buildClassifier(NaiveBayes.java:247)
at pers.NaiveBayesTest.main(NaiveBayesTest.java:37)
solution:右击要运行的class->Run
as->Run Cinfigurations->(X)=Argument
在VM
argument输入-Xmx512m即可运行。
4.代码如下:
package
pers;
import
java.io.File;
import
weka.classifiers.Classifier;
import
weka.classifiers.Evaluation;
import
weka.classifiers.bayes.NaiveBayes;
import
weka.core.converters.ArffLoader;
import
weka.core.Instances;
public class NaiveBayesTest
{
public
static
void
main(String[] args) throws Exception
{
// TODO Auto-generated method
stub
ArffLoader atf = new ArffLoader();
//Reads a source that is in
arff (attribute relation file format)
format.
File inputFile = new
File("Amazon_initial_50_30_10000.arff");//读入训练文件
atf.setFile(inputFile);
Instances instancesTrain = atf.getDataSet(); // 得到格式化的训练数据
instancesTrain.setClassIndex(instancesTrain.numAttributes()-1);//设置分类属性所在行号(第一行为0号),instancesTrain.numAttributes()可以取得属性总数
inputFile = new
File("Amazon_initial_50_30_10000test.arff");//读入测试文件
atf.setFile(inputFile);
Instances instancesTest = atf.getDataSet(); // 得到格式化的测试数据
instancesTest.setClassIndex(instancesTest.numAttributes() -
1); //设置分类属性所在行号(第一行为0号),instancesTest.numAttributes()可以取得属性总数
Classifier m_classifier = new
NaiveBayes();//用以建立一个naive
bayes分类器
String options[]=new
String[1];//训练参数数组
//options[0]="-K";//Use a
kernel estimator for numeric attributes rather than a normal
distribution.
//options[0]="-D";//Use
supervised discretization to convert numeric attributes to
nominal ones.
//m_classifier.setOptions(options);//设置训练参数
m_classifier.buildClassifier(instancesTrain); //训练
Evaluation eval = new
Evaluation(instancesTrain); //构造评价器
eval.evaluateModel(m_classifier, instancesTest);//用测试数据集来评价m_classifier
System.out.println(eval.toSummaryString("===
Summary ===\n",false));
//输出信息
System.out.println(eval.toMatrixString("===
Confusion Matrix ===\n"));//Confusion Matrix
}
}
训练数据和测试数据我用的是同一个文件:https://onedrive.live.com/redir?resid=DF3DA11703A9CA4C!164&authkey=!ACQWVXfn2asHy7I&ithint=file,.rar
项目文件我就懒得传了,和之前的decision
tree的类似,加入weka的jar包勿忘。
weka 贝叶斯 java_NaiveBayes朴素贝叶斯分类器weka实现相关推荐
- 朴素贝叶斯 半朴素贝叶斯_使用朴素贝叶斯和N-Gram的Twitter情绪分析
朴素贝叶斯 半朴素贝叶斯 In this article, we'll show you how to classify a tweet into either positive or negativ ...
- 图像算法三 —— 贝叶斯和朴素贝叶斯
文章目录 3. 贝叶斯和朴素贝叶斯 贝叶斯和朴素贝叶斯的区别 贝叶斯网络的概念 朴素贝叶斯的概念 朴素贝叶斯分类的数学原理 朴素贝叶斯的优缺点 3. 贝叶斯和朴素贝叶斯 贝叶斯和朴素贝叶斯的区别 朴素 ...
- 朴素贝叶斯 半朴素贝叶斯_SQL Server中的朴素贝叶斯预测
朴素贝叶斯 半朴素贝叶斯 In this article, we will walk through Microsoft Naive Bayes algorithm in SQL Server. 在本 ...
- 贝叶斯与朴素贝叶斯入门及实战
文章目录 什么是贝叶斯 朴素贝叶斯 原理 朴素贝叶斯优点 朴素贝叶斯缺点 贝叶斯模型 高斯分布朴素贝叶斯 多项式分布朴素贝叶斯 伯努利分布朴素贝叶斯 总结 贝叶斯实战 生成式模型和判别式模型的区别 什 ...
- 贝叶斯算法c语言,01 贝叶斯算法 - 朴素贝叶斯
引子: 1.孩子的性别问题 已知一对夫妻生了2个孩子,其中一个是女孩,那么另一个也是女孩的概率的多少? 普遍大家会觉得生男生女都一样,所以另一个也是女孩的概率是1/2.而另一部分稍微聪明一点的人认为: ...
- python推荐系统算法朴素贝叶斯_朴素贝叶斯算法在人才盘点中的应用(之一)
一.识别人才首先是处理不确定性问题 做招聘面试的HR应该会认同这样的经历. 打开应聘者简历,赫然写着TOP10名学毕业.抬头一瞧,小伙长得一表人才,精神抖擞,朝气蓬勃.HR兴趣大增. 再一看,研究方向 ...
- 贝叶斯(朴素贝叶斯,正太贝叶斯)及OpenCV源码分析
一.原理 OpenCV实现的贝叶斯分类器不是我们所熟悉的朴素贝叶斯分类器(Naïve Bayes Classifier),而是正态贝叶斯分类器(Normal Bayes Classifier),两者虽 ...
- 基于sklearn的朴素贝叶斯_sklearn 朴素贝叶斯
朴素贝叶斯是基于贝叶斯理论的一种监督学习算法,『朴素』意思是假设所有特征两两相互独立,给出类别y和一组依赖特征[x1..xn],根据贝叶斯理论,他们有如下的关系. P(y|x1,...xn)=P(y) ...
- 情感分析朴素贝叶斯_朴素贝叶斯推文的情感分析
情感分析朴素贝叶斯 Millions of tweets are posted every second. It helps us know how the public is responding ...
最新文章
- Python Numpy包安装
- Netty3 源代码分析 - NIO server绑定过程分析
- thonny python ide_学习用 Thonny 写代码:一个面向初学者的Python IDE
- 国家计算机二级申诉,CCF关于CSP-J/S2020第二轮认证申诉的通知
- PAT甲级1096 Consecutive Factors :[C++题解]连续的因子、约数
- 【安全系列之加密算法】常用安全的加密算法
- 张颐武:周小平的意义
- 使用JDBC进行数据库的事务操作(2)
- redhat6 使用raid5的系统安装
- Vim进阶2 map映射
- win2008 mysql端口_使用自定义端口连接SQL Server 2008的方法
- java 回文遍历_java 寻找全部回文
- Python天天学_03_基础三
- 台式计算机最常用的IO总线,三总线结构的计算机总线系统由 (1) 组成。
- 存储器分类和硬盘缓存介绍
- 数学基础(0)-- 高等数学、概率论与数理统计
- 黑客工具软件大全100套(转)
- 火星坐标系解密-iDesktopX空间数据处理
- 一文讲透计算机网络的数据链路层
- VC6中如何让改变控件Botton的字体(大小和字体)