mahout
文章平均质量分 57
softwarehe
这个作者很懒,什么都没留下…
展开
-
mahout0.5和solr3.4的结合使用
往上搜到一篇文章讲这个http://blog.neofreko.com/index.php/tag/solr/How to use Lucene 3.4 with Mahout 0.5 As you may have been frustrated by, Mahout 0.5 was build with Lucene 3.1 dependencies. How on earth c原创 2012-03-26 17:40:43 · 884 阅读 · 0 评论 -
mahout SparseVectorsFromSequenceFiles详解(3)
创建dictionary和tf-vectors实现类是DictionaryVectorizer调用createTermFrequencyVectors方法,参数是:input,output,tfVectorsFolderName,baseConf,这几个参数很明显minSupport -- 最少要在文档中出现多少次才会放置到sparsevector,缺省值2maxNGramSi原创 2013-01-17 14:48:14 · 1437 阅读 · 1 评论 -
mahout SparseVectorsFromSequenceFiles详解(4)
这一部分讲述当n-gram不为1时候的情况待续。。。原创 2013-01-17 17:42:34 · 824 阅读 · 0 评论 -
mahout SparseVectorsFromSequenceFiles详解(7)
现在进入倒数第二步,DF的生成calculateDF调用方法是TFIDFConverter.calculateDF输入目录是tf-vectors目录,上一个步骤生成的,key是文档目录,value是词频vector真正的执行方法是startDFCounting,又是一个hadoop程序,mapper是TermDocumentCountMapper,reducer是TermDoc原创 2013-01-18 09:33:45 · 892 阅读 · 0 评论 -
mahout SparseVectorsFromSequenceFiles详解(8)
最后一步,生成tf-idf调用方法是TFIDFConverter.processTfIdf,继续以tf-vectors为输入目录先是makePartialVectors,hadoop程序,Mapper是缺省的,Reducer是TFIDFPartialVectorReducer @Override protected void reduce(WritableComparable原创 2013-01-18 09:34:07 · 1040 阅读 · 0 评论 -
mahout SparseVectorsFromSequenceFiles详解(6)
这一部分是tf的生成首先是生成PartialVectors,每个dictionaryChunk生成一个PartialVectors,代码如下: int partialVectorIndex = 0; Collection partialVectorPaths = Lists.newArrayList(); for (Path dictionaryChunk : d原创 2013-01-18 09:33:20 · 1062 阅读 · 0 评论 -
mahout SparseVectorsFromSequenceFiles详解(5)
这一部分讲述createDictionaryChunks参数wordCountPath,这是输入目录,即上面wordcount目录dictionaryPathBase,输出目录其它几个参数很明显代码很简单 List chunkPaths = Lists.newArrayList(); Configuration conf = new Configur原创 2013-01-17 17:51:27 · 978 阅读 · 0 评论 -
mahout SparseVectorsFromSequenceFiles详解(2)
文档处理DocumentProcessor类处理sequencefile创建输出PathPath tokenizedPath = new Path(outputDir, DocumentProcessor.TOKENIZED_DOCUMENT_OUTPUT_FOLDER);这个Path是hadoop的函数,前面的参数是parent,后面的参数是child,将他们组合在一起并规范化(原创 2013-01-17 11:18:02 · 1393 阅读 · 0 评论 -
Mahout MinHash代码阅读理解
MinHash的介绍请参看http://rdc.taobao.com/team/jm/archives/2434初始化 Configuration conf = getConf(); conf.setInt(MinhashOptionCreator.MIN_CLUSTER_SIZE, minClusterSize); conf.setInt(Minhas原创 2013-01-21 11:00:00 · 1745 阅读 · 0 评论 -
mahout in action推荐系统阅读笔记(2)
推荐器评估评估推进器,需要对比估计的preference和实际的preference实现方法很简单,从实际数据中去掉一些preference,做为test数据,对剩下的数据做预测,和test数据对比平均差值越低越好,也可以使用平方根均差代码:package mia.recommender.ch02;import org.apache.mahout.cf.taste.comm原创 2013-03-06 15:45:24 · 1192 阅读 · 0 评论 -
mahout in action推荐系统阅读笔记(3)
第三章:数据表示推荐质量和数据的数量和质量关系很大,通常来说,数据越多越好,数据质量越高越好推荐算法的性能和可扩展性与数据的表示关系很大,因为推荐都是数据密集的(data-intensive)preference data 表示单独的一个preference包括user id,item id,preference value的元组,有时候preference value可以没有原创 2013-03-07 11:31:09 · 1083 阅读 · 0 评论 -
mahout in action推荐系统阅读笔记(4)
DataModeldatamodel里边存放所有userids,itemids,preference values,提供访问接口基于内存的DataModelGenericDataModel一个最简单实现是GenericDataModel,数据源都来自于内存GenericDataModel包含下面四个属性: private final long[] userIDs;原创 2013-03-07 15:11:18 · 1714 阅读 · 1 评论 -
mahout in action推荐系统阅读笔记(6)
item based推荐很多方面是和user based相同的不同的是user based先要查找和自己相似用户,从他们喜欢的里边推荐,而item based是先找到user喜欢的item,然后寻找和这个item相似的itemuser based算法当用户多时候花费时间多,item based算法当item多时候花费时间多算法for every item i that原创 2013-03-07 17:47:19 · 1050 阅读 · 1 评论 -
mahout in action推荐系统阅读笔记(5)
第四章:making recommendation理解User based推荐重点在于用户之间的相似性,第一个算法如下:for every item i that u has no preference for yet for every other user v that has a preference for i compute a similarity s betw原创 2013-03-07 17:29:57 · 1109 阅读 · 0 评论 -
mahout in action推荐系统阅读笔记(7)
本部分介绍ReloadFromJDBCDataModelReloadFromJDBCDataModel这个类的目标是提高jdbc类型的data model性能属性 private static final Logger log = LoggerFactory.getLogger(ReloadFromJDBCDataModel.class); private DataMo原创 2013-03-08 15:14:38 · 1704 阅读 · 0 评论 -
mahout SparseVectorsFromSequenceFiles详解(1)
mahout预处理数据的第一步是将文档转化为可以被hadoop处理的sequencefile,第二步是从sequencefile转化为Vector,称为Vectorizer过程,这里剖析的SparseVectorsFromSequenceFiles是其中一个实现。SparseVectorsFromSequenceFiles.java位置在mahout-distribution-0.6/core原创 2013-01-16 17:43:15 · 1974 阅读 · 0 评论 -
mahout将文件sequence化过程
实现文件是mahout-distribution-0.6/integration/src/main/java/org/apache/mahout/text/SequenceFilesFromDirectory.javasequence化的意义原始文档不能被hadoop处理,需要一个转化过程,这个过程就是sequence化定义类sequencefile格式是hadoop提供的原创 2013-01-16 12:52:37 · 1633 阅读 · 0 评论 -
Collocations in Mahout阅读理解
官网讲解:https://cwiki.apache.org/MAHOUT/collocations.htmlcollocation是经常在一起出现的词,如coca colalatent semantic indexing(LSI)可以解决这一问题,但mahout还没实现LSI,采用的是log-likelihood ratio(llr)方法算法实施时经历了两个map-reduce p原创 2013-01-15 17:41:07 · 976 阅读 · 0 评论 -
hadoop in action第一个例子编译错误处理
用书上的命令行编译的时候,出现以下错误:playground/src/WordCount.java:53: cannot access org.apache.commons.cli.Options将commons-cli-1.2.jar加入到classpath路径中就可以了:javac -classpath ${HADOOP_HOME}/hadoop-0.20.2-core.jar原创 2012-03-28 15:30:34 · 1317 阅读 · 0 评论 -
“基于 Apache Mahout 构建社会化推荐引擎”一文例子运行纪实
这篇文章原作者不知何故,在几个关键点上一笔带过,想要让例子运行起来,得费自己好大功夫才能搞定,去年我搞好了一次,没记博客,结果服务器不知怎么原来东西没了,这次我是花了2天时间搞定的,记下来一是为自己备忘,也希望能帮助那些还在苦闷的同行者。1:Taste 的安装与简单的 Demo 实现这一部分还是写的比较好的,基本按照文档操作就能看到结果2:使用 Taste 构建推荐引擎实例 – 电原创 2012-04-16 13:42:31 · 6855 阅读 · 24 评论 -
mahout开发环境搭建
1:java版本选择选择1.6版本,ide选择eclipse2:安装maven选择二进制包,解压后添加M2_HOME和M2环境变量,参见maven的官网,在/etc/profile的PATH添加maven的bin路径,我的是如下设置的PATH=$PATH:/opt/apache-maven-3.0.3/bin3:安装mahout解压mvn install如果jdk使用的原创 2012-03-15 16:42:33 · 3432 阅读 · 0 评论 -
mahout读书笔记 -- 聚类(2)
最简单例子:聚类算法包括k-means,canopy,fuzzy k-means,lda等,例子是用k-means讲解的。mahout的聚类算法要求输入格式是sequencefile,hadoop库也广泛使用这一格式为mahout准备输入数据分为三步:1:数据预处理2:使用预处理数据创建vectors3:保存vectors到sequencefile具体到例子,第一步不需原创 2013-01-06 15:16:40 · 1113 阅读 · 0 评论 -
分类步骤
1:数据准备2:训练3:评估4:生产化原创 2013-01-06 10:11:15 · 609 阅读 · 0 评论 -
mahout读书笔记 -- 聚类(1)
自己看书第二遍的记录,主要是为加深理解第七章 聚类介绍人类具有发现重复模式和类型的能力,例如我们能分辨甜的和咸的味道我们在分类的时候,物品是否同类和选择的度量方式有关,比如对猿和猴可以以外形分为两类,但他们都喜欢香蕉,又可以根据这个喜好把他们归为一类,用计算机语言来表达,就是根据选择特征的不同得到不同的分类。图书馆聚类例子:最开始是无序状态,找本书太难了,的一本本找,进化一原创 2013-01-06 11:23:29 · 603 阅读 · 0 评论 -
mahout读书笔记 -- 聚类(4)
相似性度量:1:Euclidean distance measure,直观看就是两点直连距离2:Squared Euclidean distance measure,和类别1的不同就是它不开方了3:Manhattan distance measure,两点之间的折线距离,蚂蚁爬台阶的距离4:Cosine distance measure,可以看成两点与原点相连向量夹角,缺点是没有考原创 2013-01-06 16:44:52 · 580 阅读 · 0 评论 -
mahout读书笔记 -- 聚类(5)
第八章 数据表示聚类的第一步是将数据vector化,将对象的特征和属性转化为数据vector就是排序好的列表,没啥特别的vector的分类:1:DenseVector,不管是否0都记录上,用单数组实现2:RandomAccessSparseVector,只记录非0的值,用hashmap实现,随机访问3:SequentialAccessSparseVector,也是只记录非0原创 2013-01-06 17:49:31 · 643 阅读 · 0 评论 -
mahout读书笔记 -- 聚类(6)
本部分主要关注文档向量化VSM(vector space model)是文档向量化的通用方法,其做法是对于要向量化的所有文档,取出所有至少出现过一次的词,为每个词分配一个数字,这样对于每个文档,其向量就是每个词的出现次数组成的一个列表,词的出现次数就是术语term frequency,即TF,这个向量是一个sparse vector,因为1个文档所包含的词远小于所有文档包含的词由于某些词在原创 2013-01-07 13:36:26 · 708 阅读 · 0 评论 -
mahout读书笔记 -- 聚类(3)
k-means要完成运算,需要以下输入参数:1:包含vectors的sequencefile2:包含初始中心点vector的sequencefile3:相似性度量4:convergenceThreshold,达到这个值就不在计算5:循环次数最后看数据是怎么读取的:聚类结果放置在输出目录的CLUSTERED_POINTS_DIR子目录中,通过SequenceFile.Re原创 2013-01-06 15:45:19 · 660 阅读 · 0 评论 -
线性代数公开课学习资源
http://52opencourse.com/98/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%8F%8A%E7%9B%B8%E5%85%B3%E8%B5%84%E6%BA%90里边有书籍下载地址和视频原创 2013-01-07 21:29:55 · 765 阅读 · 0 评论 -
lingo算法学习
层次聚类算法,首先要有好的分类效果,同时提取类别标签更为重要lingo算法利用后缀数组聚类lingo算法分析:1:文本预处理过滤文档中的HTML标签、实体,去除非字母字符,提取词干,去除停止词2:关键词提取利用奇异值分解方法发现抽象概念,奇异值分解概念理解需要有线性代数和统计等知识3:类标签提取4:文档分配5:形成最终聚类原创 2013-01-09 10:35:24 · 4078 阅读 · 0 评论 -
Top down clustering
是一种层次聚类算法,先找到大的聚类,然后在大的聚类里边找小的聚类,所以名字叫top down除了MinHash 聚类算法,其它聚类算法都可以用到top down的算法中,包括top level和bottom leveltop level输出需要后处理,分成多组,这样bottom level聚类可以分别对每个组实施,对应的类是ClusterOutputPostProcessorDrive原创 2013-01-09 13:31:59 · 1306 阅读 · 0 评论 -
minhash在mahout小实验
随便写几个文本文件到examples/minhash-test/执行以下命令:unset HADOOP_HOMEunset HADOOP_CONF_DIRbin/mahout seqdirectory -c UTF-8 -i examples/minhash-test/ -o minhash-test-seqfilesbin/mahout seq2sparse -i minha原创 2013-01-10 11:21:19 · 1912 阅读 · 1 评论 -
mahout in action推荐系统阅读笔记(1)
第二章:推荐系统介绍一些概念介绍寻找你喜欢的item,可以通过和你有相同taste的人来寻找(这就是为啥mahout的前身叫taste的原因吧),也可以通过你已经喜欢的item来寻找相似的。前面的推荐叫user-based,后面的推荐叫item-based,它们都属于collaborative filtering--协同过滤。协同过滤特点:推荐的产生是基于,而且仅仅基于users和原创 2013-03-06 13:44:21 · 1269 阅读 · 0 评论