mahout Newsgroups 贝叶斯分类实例

Mahout 用朴素贝叶斯对20 Newsgroups 数据分类的案例 源起 《Mahout in Action(Mahout 实战)》这本书的第14.6节有一个用朴素贝叶斯对20 Newsgroups 进行数据分类的案例,但是由于该出出版使用的是mahout0.6版本进行的实验,我用目前最新的0.13版本已经不能再重复这个实验了(mahout做了很多改动)。 ERROR MahoutDriver: : Try the new vector backed naiv 阅读详情

1、首先下载newsgroups数据集

数据集网址为http://people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz,将数据集解压,会得到两个文件夹20news-bydate-test和20news-bydate-train,将两个文件夹合并存入20news-all文件夹

2、将数据集转化为sequencefile方便mahout操作。

本地运行需要配置本地MAHOUT

 export MAHOUT_HOME=MAHOUT_DIR                          //MAHOUT_DIR为本地MAHOUT目录
export MAHOUT_LOCAL=$MAHOUT_HOME   

此过程需要在本地完成,因为hadoop擅长处理大文件,而此过程需要将很多小文件进行序列化形成一个大的序列化文件。

$ mahout seqdirectory 
        -i ${WORK_DIR}/20news-all      //input FileDirectory
        -o 20news-seq                  //output FileDirectory
        -ow                            //overwrite

运行结束后将本地MAHOUT_LOCAL配置去掉

  export -n MAHOUT_LOCAL                 //删除MAHOUT_LOCAL本地设置

3、将20news-seq上传至hdfs

hadoop fs -put ${WORK_DIR}/20news-seq ${HDFS_DIR}/
4、转换和预处理数据集变成 <Text,VectorWritable>格式

$ mahout seq2sparse 
        -i ${HDFS_DIR}/20news-seq    
        -o ${HDFS_DIR}/20news-vectors
        -lnorm             //(Optional) Whether output vectors should be logNormalize. If set true else false
        -nv                //(Optional) Whether output vectors should be NamedVectors. If set true else false
        -wt tfidf          //The kind of weight to use. Currently TF or TFIDF. Default: TFIDF
5、将数据集进行分片,分为训练集和测试集。

 $ mahout split 
        -i ${HDFS_DIR}/20news-vectors/tfidf-vectors 
        --trainingOutput ${HDFS_DIR}/20news-train-vectors  //The training data output directory
        --testOutput ${HDFS_DIR}/20news-test-vectors       //The test data output directory
        --randomSelectionPct 20                         //Percentage of items to be randomly selected as test data when using
        --overwrite 
        --sequenceFiles            //Set if the input files are sequence files.  Default is false
        -xm sequential             //串行执行
6、训练贝叶斯分类模型

 $ mahout trainnb 
        -i ${WORK_DIR}/20news-train-vectors   
        -el                                   //Extract the labels from the input
        -o ${WORK_DIR}/model                  
        -li ${WORK_DIR}/labelindex            //The path to store the label index in
        -ow                                   //overwrite
        -c                                    //train complementary?
7、测试贝叶斯分类模型

$ mahout testnb 
        -i ${WORK_DIR}/20news-test-vectors
        -m ${WORK_DIR}/model                //The path to the model built during training
        -l ${WORK_DIR}/labelindex           //The path to the location of the label index
        -ow 
        -o ${WORK_DIR}/20news-testing       //test complementary?
        -c
8、运算结果

=======================================================
Summary
-------------------------------------------------------
Correctly Classified Instances          :       2107       91.2121%
Incorrectly Classified Instances        :        203        8.7879%
Total Classified Instances              :       2310


=======================================================
Confusion Matrix
-------------------------------------------------------
a       b       c       d       e       f       g       h       i       j       k       l       m       n       o       p       q       r       s       t       <--Classified as
91      0       0       0       0       0       0       0       0       0       0       0       0       0       0       2       0       0       4       0        |  97         a     = alt.atheism
0       104     0       2       1       3       3       0       0       0       0       0       1       0       1       0       0       0       0       0        |  115        b     = comp.graphics
0       14      84      14      4       8       2       0       0       0       0       0       1       0       0       0       0       0       1       1        |  129        c     = comp.os.ms-windows.misc
0       2       2       121     4       0       0       1       0       0       0       0       3       0       0       0       0       0       0       0        |  133        d     = comp.sys.ibm.pc.hardware
0       4       0       2       122     0       4       0       0       0       0       0       1       0       0       0       0       0       0       0        |  133        e     = comp.sys.mac.hardware
0       6       1       3       2       109     1       0       0       0       0       0       0       0       1       0       0       0       0       0        |  123        f     = comp.windows.x
0       1       0       4       1       1       93      4       2       0       0       1       3       0       0       0       0       0       0       0        |  110        g     = misc.forsale
0       0       0       0       0       0       1       101     5       0       0       0       3       0       1       0       0       0       0       0        |  111        h     = rec.autos
0       0       0       0       1       0       0       3       132     0       0       0       0       0       0       0       0       0       0       0        |  136        i     = rec.motorcycles
0       0       0       1       0       0       0       0       1       119     1       0       0       0       0       0       0       0       0       0        |  122        j     = rec.sport.baseball
0       0       0       0       0       0       1       1       0       0       125     0       0       0       0       0       0       0       0       0        |  127        k     = rec.sport.hockey
0       2       0       0       0       2       0       0       0       0       0       117     0       0       1       0       0       0       0       1        |  123        l     = sci.crypt
0       2       0       1       3       0       2       1       0       0       0       0       112     1       0       0       0       0       0       0        |  122        m     = sci.electronics
0       0       0       1       0       0       1       0       1       0       0       1       2       100     2       0       0       0       0       2        |  110        n     = sci.med
0       1       0       0       0       0       0       0       0       0       0       0       0       0       112     0       0       0       0       0        |  113        o     = sci.space
1       1       0       0       0       0       1       0       0       0       0       0       0       0       2       96      0       0       2       1        |  104        p     = soc.religion.christian
1       0       0       0       0       0       0       0       0       0       0       0       1       0       0       1       110     0       0       2        |  115        q     = talk.politics.mideast
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       2       111     0       0        |  113        r     = talk.politics.guns
9       0       0       0       0       0       0       0       1       1       1       0       0       0       0       4       1       0       66      0        |  83         s     = talk.religion.misc
0       0       0       0       0       0       0       0       0       0       0       1       0       0       0       0       3       2       3       82       |  91         t     = talk.politics.misc


=======================================================
Statistics
-------------------------------------------------------
Kappa                                       0.8648
Accuracy                                   91.2121%
Reliability                                86.7628%
Reliability (standard deviation)            0.2128








Mahout贝叶斯算法源码分析(9) Twenty Newsgroups Classification实例任务跑的是哪个算法?就是bayesian,也就是我们说的贝叶斯,首先不管你是否了解贝叶斯算法(说实话,我真的不知道这个算法的原理),如果你看了这篇博客,至少应该了解如何对数据 进行处理,然后就可以分类了,不管它是啥算法,好,来开始。 接上篇系列blog: Twenty Newsgroups Classification实例任务之 阅读详情

相关推荐

结合mahout的数据挖掘算法介绍

数据挖掘算法 前言:数据挖掘和机器学习包含了许多的算法,算法的介绍往往是枯燥乏味的。本文中结合mahout和小例子还解释这些算法。因此我们先介绍一下mahout。 准备工作:Mahout环境的搭建 初识mahout Hadoop是为了大数据而生的,在之前的学习中,我们也了解了Mapreduce程序的基本原理。但是,读者对如何将Hadoop应用到大数据还是没有一个清晰地认识。相信读者朋友们了

行走的逗比 2万+

mahout贝叶斯分类器测试样例

MAHOUT 0.9版本的贝叶斯分类器测试样例测试非常简单,执行下面这条语句,然后选择第2项就OK了。 [jifeng@jifeng01 hadoop]$ $MAHOUT_HOME/examples/bin/classify-20newsgroups.sh Please select a number to choose the corresponding task to run 1. cn

风行天下 2725

【甘道夫】通过Mahout构建贝叶斯文本分类器案例详解--配套代码

http://blog.youkuaiyun.com/u010967382/article/details/25368795#comments 博客配套代码

朴素贝叶斯方法的应用实例----基于newsgroup文档集的贝叶斯算法实现

转载自:http://blog.youkuaiyun.com/v_july_v/article/details/7577684

Be happy & Be beautiful 1350

数据包络分析(超效率-SBM模型)附python代码

超效率-SBM模型超效率SBMpython代码(部分) 这段时间差不多忙完了,终于有时间可以来经营我的博客了。 上阵子挺多人私信我,原谅我记性不好,可能没有回复全。 这篇文章是超效率的扩展。 超效率SBM SBM本身就是非径向模型(non-radial model),想要了解径向超效率的请自行去前面翻阅。 上篇文章说到super-SBM的一个模型,公式为: 这个模型是分式模型,我们可以通过charnes cooper变换,将其转变成为: python代码(部分) 在编程过程中,本来我以为第一个模型是无

weixin_43217288的博客 3万+

视觉开发板—K210自学笔记(三)--点亮LED

K210点亮LED灯

adamsecond 3412

Mahout Naive Bayes中文新闻分类示例

转载原文:http://www.cnblogs.com/panweishadow/p/4320720.html 一、简介 关于Mahout的介绍,请看这里:http://mahout.apache.org/ 关于Naive Bayes的资料,请戳这里: Mahout实现了Naive Bayes分类算法,这里我用它来进行中文的新闻文本分类。 官方有一组分类例子,使用20

脚印 1109

Charles 抓包工具下载安装及基础使用

本篇内容主讲关于Charles抓包工具,从下载安装以及配置信息,证书的下载安装以及PC端设置代理配置和移动端设备配置代理,阐述关于Charles抓包工具面板的基础使用以及如何进行抓包和设置断点,对于软件测试以及对抓包感兴趣的读者可以翻阅!感谢大家的支持!!!

灵魂学者的博客 2958

Mahout贝叶斯算法实例--Twenty Newsgroups Classification

按照mahout官网https://cwiki.apache.org/confluence/display/MAHOUT/Twenty+Newsgroups的说法,我只用运行一条命令就可以完成这个算法的调用了,如下: mahout@ubuntu:~/mahout-d-0.7/examples/bin$ ./classify-20newsgroups.sh 但是,我首先运行就出错了,因为我不是ro

fansy1990的专栏 5095

ADS2023仿真变容二极管特性

仿真S-Param仿真控件,设置为Single Point,将频率设置为1MHz,同时勾选Z-parameters,取消S-parameters,从元件库中选择元器件搭建原理图,并根据器件spice提供的相关参数,对原理图中器件参数进行修改,修改完成的电路图如下图所示。添加var控件和MeasEqn控件,相关设置如图所示,Ct为变容管的电容值,Q0为其品质因数。因此,对变容二极管的模型仿真结果是可以信赖的。将其解压,在spice文件夹中,可以找到我们想要的器件参数,和仿真简要电路图。

weixin_45811090的博客 1万+

AD20 Channel-Offset Error 解决办法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言AD20 PCB相同电路模块ROOM格式复用时出现 Channel-Offset Error 解决办法一、问题现象二、解决办法 前言 AD20 PCB相同电路模块ROOM格式复用时出现 Channel-Offset Error 解决办法 一、问题现象 我们经常在使用Room格式快速布局相同模块电路时出现以下问题, 二、解决办法 相同模块电路PCB布局复制的过程网上有很多,这里不再做赘述,步骤都差不多,只说问题根源; 1:.

m0_47201213的博客 7629

Naive Bayes分类示例

http://openresearch.baidu.com/activitybulletin/448.jhtml   Naive Bayes分类示例 发布日期:2012-11-08 15:29:30 发布人:本站编辑 来源:本站原创 浏览次数: 5 次   1.简介 (1) 贝叶斯分类器的分类原理发源于古典概率理论,是通过某对象的先验概率,利用贝叶斯公式计算出

windowsLearner的专栏 2300

zynq-7000学习笔记(八)——USB摄像头图像采集

PC平台:WINDOWS 10 64位 Xilinx设计开发套件:Xilinx_vivado_sdk_2015.4 开发板:Zed Board USB摄像头:罗技 C270(720P) linux源码:2016_R1 一、配置linux,支持UVC       如果是中星微的ZC3XX系列的芯片,则要进到GSPCA把ZC3XX的驱动选上

luotong86的专栏 1万+

【大数据分析与挖掘技术】Mahout分类算法

分类是使用特定信息从一个预定义的潜在回应列表中做出单一选择的过程。本篇文章介绍分类的概念,和一些在Mahout中的常见的训练分类器的算法。

Morse_Chen的博客 1738

BGE(BAAI General Embedding)模型详解

BGE(BAAI General Embedding)是北京智源人工智能研究院(BAAI)推出的通用文本嵌入模型系列,旨在为各种自然语言处理任务提供高质量的向量表示。

ttyy1112的专栏 7558

基于单片机的智能温控风扇设计

该智能温控风扇系统的设计目标是根据环境温度自动控制风扇的转速或开关状态,确保用户始终处于舒适的温度范围内。实时温度监测:通过温度传感器(如DS18B20或DHT22)实时监控环境温度。风扇控制:根据温度变化自动调节风扇的转速,温度过高时风扇加速,温度适中时风扇转速降低,达到节能与舒适平衡。LCD显示:通过LCD屏幕实时显示温度信息。无线通信:通过Wi-Fi或蓝牙模块将温度数据发送至手机或云平台,支持远程控制风扇的开关或调节转速。报警功能:温度过高或过低时,蜂鸣器发出警报,提示用户注意。

2201_76125393的博客 1159

Mahout分类算法学习之实现Naive Bayes分类示例

1.简介 (1) 贝叶斯分类器的分类原理发源于古典概率理论,是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。朴素贝叶斯分类器(Naive Bayes Classifier)做了一个简单的假定:给定目标值时属性之间相互条件独立,即给定元组的类标号,假定属性值有条件地相互独立,即在属性间不存在依赖关系。朴素贝叶斯分类模型所...

Thinkgamer博客 3645

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Mahout的0.11安装与测试

Mahout的0.11安装与测试 1.1 Mahout 本地hadoop环境布置,当然测试mahout可以安装单节点 hostname ip 安装位置 hadoop 集群部署 invin01 192.168.199.61 NameNode, DFSZKFailoverContr

invin_top的博客 1675

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

伪分布式hadoop+mahout部署及20newsgroups经典算法测试

--------------------------------------------------------------------------第一阶段:hadoop的伪分布式安装 第二阶段:mahout的安装 第三阶段:20newsgroups的bayes算法测试---------------------------------------------------------------...

weixin_30800807的博客 722

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

使用mahout下的朴素贝叶斯分类器对新闻分类

转载地址:http://www.letiantian.me/2014-10-22-mahout-naive-bayes-newsgroups/ mahout版本是0.9;hadoop版本是1.2.1。 下载数据集20 newsgroups dataset,解压后得到20news-bydate目录: $ cp -R 20news-bydate/*/* 2

hechenghai 3942

贝叶斯分类(classify-20newsgroups)

 2014年1月23日 刘 小飞 发表回复 原创文章,转载请注明: 转载自慢慢的回味 本文链接地址: 贝叶斯分类(classify-20newsgroups) 一 理论分析 Tackling the Poor Assumptions of Naive Bayes Text Classifiers 贝叶斯的多项式模型如下公式。表示一个文档由一系列单词构

codemosi的专栏,点击我可以跳到目录一栏 2322

mahout 运行Twenty Newsgroups Classification实例

按照mahout官网https://cwiki.apache.org/confluence/display/MAHOUT/Twenty+Newsgroups的说法,我只用运行一条命令就可以完成这个算法的调用了,如下: mahout@ubuntu:~/mahout-d-0.7/examples/bin$ ./classify-20newsgroups.sh 但是,我首先运行就出错了,因为我不是r...

星.云计算 252

分类Classification-二十个新闻组(Twenty Newsgroups)

[size=x-large]二十个新闻组分类列子[/size] [size=large]介绍[/size] 这二十个新闻组数据集合是收集大约20,000新闻组文档,均匀的分布在20个不同的集合。这20个新闻组集合采集最近流行的数据集合到文本程序中作为实验,根据机器学习技术。例如文本分类,文本聚集。我们将使用Mahout的Bayes Classifier创造一个模型,它将一个新文档分类到这2...

奔跑的羚羊 1331

贝叶斯分类测试

1.数据       使用20 newsgroups data (http://people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz) ,数据集按时间分为训练数据和测试数据,总大小约为85MB,每个数据文件为一条信息,文件头部几行指定消息的发送者、长度、类型、使用软件,以及主题 等,然后用空行将期与正文隔开,正文没有固定的格

july_2的专栏 306
上一篇: 机器学习算法优缺点及其应用领域
下一篇: 实现mahout0.9 bayes 预测功能(mahout只有trainnb和testnb)
mach_learn
博客等级 码龄12年 34粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值