标签: mahout

Apache Mahout和Apache Spark的MLlib有什么区别?

考虑一个products拥有1000万个产品的MySQL 数据库,用于电子商务网站.

我正在尝试设置分类模块来对产品进行分类.我正在使用Apache Sqoop将数据从MySQL导入Hadoop.

我想使用Mahout作为机器学习框架来使用其中一种分类算法,然后我遇到了随MLlib提供的Spark

  • 那么两个框架之间的区别是什么?
  • 主要是,每个的优点,缺点和局限是什么?

mahout apache-spark apache-spark-mllib

53
推荐指数
2
解决办法
3万
查看次数

实体提取/识别使用免费工具同时喂养Lucene指数

我目前正在调查从文本中提取人名,位置,技术词和类别的选项(来自网络的大量文章),然后这些文章将被用于Lucene/ElasticSearch索引.然后将附加信息添加为元数据,并且应该提高搜索的精度.

例如,当有人查询"检票口"时,他应该能够决定他是指板球运动还是阿帕奇项目.到目前为止,我试图自己实现这一点并取得了一些成功.现在我找到了很多工具,但我不确定它们是否适合这项任务,哪些与Lucene集成良好,或者实体提取的精度是否足够高.

我的问题:

  • 有没有人对上面列出的一些工具及其精确/召回有经验?或者,如果需要培训数据+可用.
  • 是否有文章或教程可以为每个工具开始实体提取(NER)?
  • 他们如何与Lucene整合?

以下是与该主题相关的一些问题:

lucene nlp semantic-web mahout opennlp

44
推荐指数
1
解决办法
2万
查看次数

大规模机器学习 - Python还是Java?

我目前正在开展一个涉及爬行和处理大量数据(数百场演出)的项目,并挖掘它们以提取结构化数据,命名实体识别,重复数据删除,分类等.

我熟悉Java和Python世界的ML工具:Lingpipe,Mahout,NLTK等.但是,当涉及到选择这样一个大规模问题的平台时 - 我缺乏足够的经验来决定Java或Python .

我知道这听起来像一个模糊的问题,但我正在寻找关于选择Java或Python的一般建议.JVM提供了比Python更好的性能(?),但像Lingpipe等库是否与Python生态系统相匹配?如果我使用这个Python,那么扩展它并在多台机器上管理它会有多容易.

我应该选择哪一个?为什么?

python java machine-learning nltk mahout

33
推荐指数
3
解决办法
1万
查看次数

使用Clojure与Mahout进行聚类(fkmeans)

我正在尝试编写一个简短的脚本来通过clojure聚集我的数据(尽管调用Mahout类).我有这种格式的输入数据(这是PHP脚本的输出)

format: (tag) (image) (frequency)
tag_sit image_a 0
tag_sit image_b 1
tag_lorem image_a 1
tag_lorem image_b 0
tag_dolor image_a 0
tag_dolor image_b 1
tag_ipsum image_a 1
tag_ipsum image_b 1
tag_amit image_a 1
tag_amit image_b 0
... (more)
Run Code Online (Sandbox Code Playgroud)

然后我使用这个脚本(clojure)将它们写入SequenceFile

#!./bin/clj
(ns sensei.sequence.core)

(require 'clojure.string)
(require 'clojure.java.io)

(import org.apache.hadoop.conf.Configuration)
(import org.apache.hadoop.fs.FileSystem)
(import org.apache.hadoop.fs.Path)
(import org.apache.hadoop.io.SequenceFile)
(import org.apache.hadoop.io.Text)

(import org.apache.mahout.math.VectorWritable)
(import org.apache.mahout.math.SequentialAccessSparseVector)

(with-open [reader (clojure.java.io/reader *in*)]
  (let [hadoop_configuration ((fn []
                                (let [conf (new Configuration)]
                                  (. conf set "fs.default.name" "hdfs://localhost:9000/")
                                  conf)))
        hadoop_fs …
Run Code Online (Sandbox Code Playgroud)

cluster-analysis clojure mahout

27
推荐指数
1
解决办法
2278
查看次数

Java的Mahout等效于Python

基于Java的Mahout的目标是构建可扩展的机器学习库.Python中是否有任何等效的库?

python java scalability machine-learning mahout

24
推荐指数
1
解决办法
9618
查看次数

使用机器学习来重复数据

我有以下问题,并认为我可以使用机器学习但我不完全确定它将适用于我的用例.

我有一个大约一亿条记录的数据集,其中包含客户数据,包括姓名,地址,电子邮件,电话等,并希望找到一种方法来清理这些客户数据并识别数据集中可能存在的重复数据.

大多数数据都是使用没有验证的外部系统手动输入的,因此我们的许多客户在我们的数据库中最终得到了多个配置文件,有时每个记录中都有不同的数据.

对于实例我们可能为客户John Doe提供5个不同的条目,每个条目都有不同的联系方式.

我们还有这样的情况:代表不同客户的多个记录在电子邮件等关键字段上匹配.例如,当客户没有电子邮件地址但数据输入系统需要时,我们的顾问将使用随机电子邮件地址,导致许多不同的客户档案使用相同的电子邮件地址,同样适用于电话,地址等.

我们的所有数据都在Elasticsearch中编制索引并存储在SQL Server数据库中.我的第一个想法是使用Mahout作为机器学习平台(因为这是一个Java商店)并且可能使用H-base来存储我们的数据(仅仅因为它适合Hadoop生态系统,不确定它是否具有任何实际价值),但是我读到的越多,我对它的工作方式就越困惑,对于初学者我不知道我能使用哪种算法,因为我不确定这个问题在哪里,我可以使用聚类算法或分类算法吗?当然,必须使用某些规则来确定配置文件的唯一性,即哪些字段.

我们的想法是最初将其部署为客户资料重复数据删除服务,我们的数据输入系统可以使用这些服务在输入新的客户资料时验证和检测可能的重复项,并且将来可能将其发展为分析平台以进行收集洞察我们的客户.

任何反馈将不胜感激:)

谢谢.

recommendation-engine machine-learning duplicates mahout record-linkage

24
推荐指数
2
解决办法
1万
查看次数

基于项目和基于内容的协作过滤有什么区别?

我很困惑基于项目的推荐是什么,正如" Mahout in Action " 一书中所描述的那样.书中有算法:

for every item i that u has no preference for yet
  for every item j that u has a preference for
    compute a similarity s between i and j
    add u's preference for j, weighted by s, to a running average
return the top items, ranked by weighted average
Run Code Online (Sandbox Code Playgroud)

如何计算项目之间的相似度?如果使用内容,是不是基于内容的推荐?

recommendation-engine mahout mahout-recommender

22
推荐指数
2
解决办法
2万
查看次数

支持Java的矢量机?

我想在Java中编写一个"智能监视器",它会在检测到即将发生的性能问题时发出警报.我的Java应用程序正在以结构化格式将数据写入日志文件:

<datetime> | <java-method> | <seconds-to-execute>
Run Code Online (Sandbox Code Playgroud)

因此,例如,如果我有一个Widget#doSomething(String)执行812ms 的方法,它将被记录为:

2013-03-24 11:39:21 | Widget#doSomething(String) | 812
Run Code Online (Sandbox Code Playgroud)

随着性能开始下降(例如在主要收集期间,在峰值负载期间,或者如果系统正在慢慢爬行),方法执行时间开始减慢; 所以最右边的列开始看到大量的数字(有时候执行单个方法需要20到40秒).

在大学 - 进行机器学习练习 - 我写了我的教授所谓的线性二分法,它采用简单的测试数据(一个人的身高,体重和性别),并"学会"如何根据他们的人将男性或女性分类身高体重.然后,一旦它掌握了所有的训练数据,我们就会向它提供新的数据,以确定它可以准确地确定性别.

认为线性二分法的多变量版本称为支持向量机(SVM).如果我错了,那么请澄清,我会将问题的标题更改为更合适的名称.无论如何,我需要这个应用程序来做以下事情:

  • 以"测试模式"运行,我从我的主Java应用程序(我希望监视的那个)提供结构化日志文件,并获取每个日志条目(如上所示)并将其用于测试数据
    • 只有java-methodseconds-to-execute列作为输入/测试数据很重要; 我不关心日期时间
  • 在"监控模式"下运行,它正在从日志文件中主动读取新的日志数据,并使用类似的"机器学习"技术来确定性能下降是否迫在眉睫

重要的是要注意这一seconds-to-execute列并不是唯一重要的因素,因为我看到某些方法在令人敬畏的性能期间出现了可怕的时序,并且在服务器似乎即将死亡的时候,其他方法确实很好的时机并推动雏菊.因此,显然某些方法比其他方法"加权"/更重要.

我的问题

  • 谷歌搜索"线性二分法"或"支持向量机"出现了一些非常可怕,高学术,超脑白皮书,我只是没有精神能量(也没有时间)消费 - 除非他们真的是我唯一的选择; 所以我问是否有一个外行人对这些东西的介绍,或者是用Java构建这样一个系统的优秀网站/文章/教程
  • 是否有任何可靠/稳定的开源Java库?我只能找到jlibsvm,svmlearn但前者看起来处于纯beta状态,而后者似乎只支持二元决策(就像我的旧线性二分法).我知道有Mahout,但它位于Hadoop之上,我认为我没有足够的数据来保证建立我自己的Hadoop集群所需的时间和精力.

提前致谢!

java artificial-intelligence machine-learning svm mahout

20
推荐指数
2
解决办法
2万
查看次数

Hadoop,Mahout实时处理替代方案

我打算在我的项目中使用hadoop作为"计算集群".然而,我读到Hadoop并不打算用于实时系统,因为开销与工作相关.我正在寻找可以这种方式使用的解决方案 - 可以轻松扩展到多台机器但不需要太多输入数据的作业.更重要的是,我想使用机器学习工作,例如在神经网络之前实时创建.

我可以为此目的使用哪些库/技术?

java hadoop scalability real-time mahout

18
推荐指数
1
解决办法
5520
查看次数

如何开始mahout的开发

从(http://girlincomputerscience.blogspot.com/2010/11/apache-mahout.html)安装mahout之后.如何运行mahout算法,从那里我可以获得最受欢迎的mahout新手的简单教程....

提前致谢.

cygwin hadoop mahout

16
推荐指数
3
解决办法
2万
查看次数