`
文章列表
Viterbi的算法在这边就不解释了。 主要可以参考: (1) Wiki 详细介绍了算法的原理与python实现。  不过个人感觉看这个python的实现没太看懂。 于是乎自己在下面又写了一遍而且感觉相对来说要更清楚一些   (2) 知乎:谁能通俗的讲解下viterbi算法吗? 其中最高票的答案非常详细的一步步的描写了运算的过程 最好各位再在草稿纸上面写写画画以求彻底明白   最后贴一下我自己写出来的python实现: # -*- coding: utf-8 -*- # ---- init some data ---- # 隐藏变量, states stat ...
主要参考: http://www.cnblogs.com/dennisit/p/3258664.html   原文写得非常好,非常详细。但是版本有一些老了,以其中的displayToken()中跟displayAllTokenInfo()已经需要修改。否则无法在最新的4.10上工作。   在最新的版本之中,需要: (1)在stream的incrementToken之前增加一个reset的动作: (2)(我使用JapaneseAnalyzer测试的结果) 这样显示的结果,会出现重复: 比如: 写道 原文:日本経済新聞でモバゲーの記事を読んだ======日文=======Sta ...
上一篇文章说的ReduceSide Join的一个缺点就是,在map方法之中,只对数据加了tag、提取了groupkey,没有做任何的数据过滤,这样在map-reduce之中的shuffle过程会造成大量的 磁盘IO使得效率降低。   这次使用的是Replicated Join,完成的 ...
Note: 1. 内容主要参考<Hadoop in Action> Chapter 5.2 2. 代码主要参考: http://qindongliang.iteye.com/blog/2052842 3. 这是基于老的API的实现,这种方法并不高效简洁   数据:(原始数据可以从movielens-1m里面去要,这里将原始数据进行了简单的修改方便演示与自测) 文件: u.user  结构: user id | age | gender | occupation | zip code 样例: 1|24|M|technician|85711 2|5 ...
注意: 1. 本人目前使用的版本是1.2.1,因此ChainMapper使用的还是old api。  2. 老的API之中,只支持 N-Mapper + 1-Reducer的模式。 Reducer不在链式任务最开始即可。 比如: Map1 -> Map2 -> Reducer -> Map3 -> Map4   (不确定在新版的API之中是否支持 N-Reducer的模式。不过new api 确实要简单简洁很多)     任务介绍: 这个任务需要两步完成: 1. 对一篇文章进行WordCount 2. 统计出现次数超过5词的单词   Wor ...
同样是<Hadoop in Action> 上面的练习~   练习: 计算两个向量的内积,比如: v1 = [1 2 3] v2 = [2 3 4] 内积 = 2 + 5 + 12 = 19   我的输入文件: 1.0 2.0 3.0 4.0 1 1 即: v1 = [1 3 1] v2 = [2 4 1] 结果: 15   思路: 每行读取两个向量的两个元素并计算乘积,然后在Reduce之中进行求和。 注意: 如果在main函数之中,设定了setCombiner(Reduce.class) 最后结果会出错,因为和被计算了两次! 即算出来的 ...
题外话: 《Hadoop in Action》 是一本非常不错的交Hadoop的入门书,而且建议看英文版。此书作者的英文表达非常简单易懂。相信有一定英文阅读能力的同学直接用英文版就能非常容易的上手~     进入正题。 这个题目是《Hadoop in Action》 上面的一道题目,求出Top K的值。 我自己随便弄了一个输入文件: g 445 a 1117 b 222 c 333 d 444 e 123 f 345 h 456     讲讲我的思路: 对于Top K的问题,首先要在每个block/分片之中找到这部分的Top K。并且由于只能输出一次,所以输 ...
假设hadoop运行在伪分布式的模式,并且本机直接用localhost访问   1. JobTracker: http://localhost:50030/jobtracker.jsp     2. DFS Heath Track 在这里面能直接点击下面的 “Browse filesystem” 查看上传上来的文件  
我们在之前一篇WordCount的文章里面使用了下面这条语句:   job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); 这本身不起眼的一句话,其实有一个容易错的地方。   如果你遇到 写道 Type mismatch in key from map: expected org.apache.hadoop.io.LongWritable, recieved org.apache.hadoop.io.Text  这样的错误,那基本上就是因 ...
Hadoop就不介绍了~ 之后应该会补充一个如何在单机Ubuntu上面部署hadoop的文章。不过网上也一大把了~  先贴一个可以用的WordCount代码   package org.myorg; import java.io.IOException; import java.util.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.conf.*; import org.apache.hadoop.io.*; import org.apache.hadoop ...
通常,在网上找到的mahout的naive bayes的例子跟官网的例子,都是针对20 newsgroup. 而且通常是命令行版本。虽然能得出预测、分类结果,但是对于Bayes具体是如何工作,以及如何处理自己的数据会比较茫然。   在努力了差不多一个星期之后,终于有点成果。   这个例子就是使用mahout 0.9 对kddcup 1999 的数据进行分析。   第一步: 下载数据。 地址: http://kdd.ics.uci.edu/databases/kddcup99/   关于数据的一些简单的预处理,我们会在第二步进行。细心的你可能发现,有些数据是2007年上传的! ...
《Apache Mahout Cook》 第二章的标题是: Using Sequence Files – When and Why ?   看了半天也没看懂需要sequence file的原因。其实是因为我对hadoop不了解。   sequence file 是hadoop底下特有的一种key/value文件格式,而不是mahout自己特有的。而mahout需要hadoop,所以就一定需要sequence file~~~   这就是Why ~
具体请参考:http://mail-archives.apache.org/mod_mbox/mahout-user/201311.mbox/%3C1384299917.36018.YahooMailNeo@web163504.mail.gq1.yahoo.com%3E 虽然官方已经关掉了,但是在我的环境(Ubuntu 14.04 + Hadoop 1.2.1) 依然出错 官方bug链接:https://issues.apache.org/jira/browse/MAHOUT-1319   换成0.7就好了,囧 ~
在mahout的官网上面,有讲诉如何在命令行之中使用Logistic Regression对自带的donut.csv进行训练的例子。 现在我们要做的,是自己在java代码之中对iris的数据使用LR进行分析。   首先,我们要熟悉一下,使用LR需要哪些参数以及他们的作用。我们从《mahout实战》上面给出的命令行例子来了解一下:   $ bin/mahout trainlogistic --input donut.csv \ --output ./model \ --target color --categories 2 \ --predictors x y --types ...
mahout的完整运行还是需要hadoop的支持的,不过很多算法只需要能把hadoop的jar包加入到classpath之中就能正常运行。 比如我们在使用LogisticModelParameters的时候,会引用包 import org.apache.hadoop.io.Writable;  按照之前的文章,仅仅将mahout的包加入到classpath之中,就会提示找不到hadoop*** 为了解决这个问题,就必须得通过maven进行项目引入搭建开发环境。   下面就是我在没有hadoop的Windows之中利用Eclipse进行mahout开发环境的搭建步骤。 如何下载并 ...
Global site tag (gtag.js) - Google Analytics