Mahout与Weka的对比

随着机器学习热度的不断提高,与其相关的软件和工具也慢慢进入大家的视野,而Weka和Mahout无疑是这些工具中较为流行的两个。作为一款知名的老牌机器学习软件,Weka支持经典的数据挖掘任务,同时还有大量的扩展包,可以支持文本挖掘、可视化和网格计算等功能。Mahout则是 Apache软件基金会旗下的一个开源项目,它提供了一些机器学习领域中的经典算法实现,支持Apache Hadoop,能够高效地运行在云计算环境中。

那么它们之间的最大不同在哪,我们该如何选择呢?最近algorithmia的团队发表了一篇《机器学习对决:Apache Mahout vs Weka》的文章,对这两者做了比较。

功能层面,Weka包含大量经过良好优化的机器学习和数据分析算法,可以处理与格式化、数据转换相关的各种任务,唯一的不足就是它对内存敏感的大数据处理的不好。而Mahout则为大数据而生,作为一个新生的数据挖掘工具,它所支持的算法与Weka相比依然很少,相关文档的质量也良莠不齐,但是它的优势在于不仅支持单机环境,还支持MapReduce分布式计算,能够应对Weka无法处理的大数据。

性能方面,algorithmia通过使用两个工具都支持的算法(随机森林)对同一个数据集进行分类做了对比。结果显示,Weka的最优准确率为99.39%(250棵树),而Mahout为95.89%(100棵树),同时该实验也显示树的数量对Mahout的分类准确率影响很小。

algorithmia上的这篇文章在Hacker News上引发了广泛的讨论,jackhammer说:

“现在,大部分数据科学家都在使用scikit-learn或者R。Weka真的已经过时了。Mahout和MLlib使用起来比较难。通常,我们最好只是采样,或者租用一个内存充足的EC2实例。”

discardorama则认为:

“Mahout的力量在于它对大数据的并行处理能力,Weka则是为了处理较小的问题或者是在实验中使用,但是无论如何现在已经很少用了。Mahout和Weka都不是主流,对于大规模的分类,人们现在使用VW,对于小规模的实验,使用Scikit或者R。”

akbar501回复说:

“对于机器学习而言,Spark MLlib是一个必然的选择。对于大规模、分布式的数据,我会使用SparkR。”


感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

来源URL:http://www.infoq.com/cn/news/2014/11/mahout-weka-comparison/