mahout bayesian
来源:互联网 发布:sal绘画软件 sai 编辑:程序博客网 时间:2024/06/06 04:01
Bayesian算法是一种利用概率统计知识进行分类的算法,在许多场合,朴素贝叶斯的分类算法可以与决策树和神经网络分类算法相媲美,该算法能运用到大型数据库中,且方法简单、分类准确率高、速度快。这个算法是在贝叶斯定理的基础上发展而来的,贝叶斯定理假设不同属性值之间是不关联的。但是在现实生活中的很多情况下,这种假设是不成立的,从而会导致该算法的准确度有所下降。
贝叶斯算法的流程图如1-1所示。
图 1-1 贝叶斯算法流程图
每个数据样本由特征向量X(a1,a2,...)表示,每个数据样本X后面都有这个样本所属的类别yi,P(yi)表示每个类别的概率,P(ai|yi)表示每个属性每个类别在yi发生的前提下的厚颜概率,p(yi|(a1,a2,...))表示新的特征向量X最可能被分为的i类。
项目期间并没有具体用该算法进行分类操作,因为这里我就用从相关资料上了解到的实例对mahout bayesian算法进一步进行解释。
在mahout中,Bayesian算法可用来进行文本的分类,这里结合20组新闻数据(Twenty newsgroups classification example)实例来说明mahout中算法的实现思路。
具体实现过程:
Input:20组新闻数据,一共有大概20000个文件,包含在20个文件夹中,文件夹即为文件所属的类别
1. 转换文本为向量文件
(1)文本文件转为序列文件 对应seqdirectory任务
bin/mahout seqdirectory -i lyn/mahout/20news-all -o lyn/mahout/20news-seq(2)把序列文件转换为向量 对应seq2sparse任务
bin/mahout seq2sparse -i lyn/mahout/20news-seq -o lyn/mahout/20news-vectors -lnorm -nv -wt tfidf
2. 将输入文件分为两部分,一部分用于训练贝叶斯模型,另一部分用于测试。这部分不会设计到job任务,而是直接对HDFS文件进行操作,将原始数据按照一定的比例分为两组 对应split任务
bin/mahout trainnb -i lyn/mahout/20news-vectors -tr lyn/mahout/20news-train-vectors -te lyn/mahout/20news-test-vectors -rs 40 -ow --sequenceFiles -xm sequential
3. 训练贝叶斯模型 对应trainnb任务
bin/mahout -i lyn/mahout/20news-train-vectors -el -o lyn/mahout/model -li lyn/mahout/labelindex -ow4. 测试、评估贝叶斯模型
bin/mahout testnb -i lyn/mahout/20news-train-vectors -m lyn/mahout/model -l lyn/mahout/labelindex -ow -o lyn/mahout/20news-testing
参考来源:blog.csdn.net/fansy1990
<<Mahout算法解析与案例实战>>
- Mahout Bayesian
- mahout bayesian
- mahout
- Mahout
- mahout
- mahout
- mahout
- Mahout
- mahout
- Mahout
- mahout
- mahout
- mahout
- mahout
- mahout
- Bayesian Network
- Bayesian Networks
- Bayesian models
- VS2013/VS2015搭建wxWidgets开发环境
- Service知识点全解析(二)——远程服务
- 华为oj初级 寻找等差数列
- 【Linux】Centos之安装Nginx及注意事项
- 我眼中的敏捷团队
- mahout bayesian
- 统计学习方法--学习笔记----6.1.1 Logistic 回归 (拟牛顿法- DFP算法)
- Mproxy项目实录第5天
- 1049. 数列的片段和
- leetcode 516. Longest Palindromic Subsequence
- 负载均衡分类
- 【OpenCV学习笔记】八、鼠标与滑动条操作
- Eclipse4.4以上版本不能使用easyExplorer,采用OpenExplorer
- 1. Two Sum