机器学习 - 概念/建议

Posted

技术标签:

【中文标题】机器学习 - 概念/建议【英文标题】:Machine-Learning - Concept / Recommendations 【发布时间】:2014-09-13 19:41:32 【问题描述】:

您好,我是机器学习的新手,因此正在寻找文本分类解决方案。有人可以向我推荐一个用 java 编写的不错的框架吗?我考虑过使用 WEKA,但也听说过 MALLET。哪个更好,主要区别在哪里?

我的目标是对未标记的文本进行分类。因此,我准备了大约 18 个主题和每个主题 100 篇文字供学习。

你会建议做什么?也希望有一个很好的小例子或提示如何继续。

【问题讨论】:

要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。 【参考方案1】:

你有一个非常小的文本数据集,你可以使用任何库——这并不重要。更高级的选项将需要比您有意义的更多数据,因此这不是一个值得考虑的问题。处理文本分类问题的简单方法是使用Bag of Words 模型和线性分类器。 Weka 和 MALLET 都支持这一点。

就我个人而言,我发现 Weka 很痛苦,而 MALLET 记录不充分/已经过时,所以我使用 JSAT。有一个做垃圾邮件分类的例子here。

(偏见警告,我是 JSAT 的作者)。

【讨论】:

非常感谢您的回复。我将看看JSAT。你会说什么,分钟是多少。文本数据集充分学习? 它总是取决于问题。【参考方案2】:

由于您的任务相当简单,而且您提到您是 ML 的新手,因此我建议您使用 weka,因为它易于使用并且拥有庞大的用户社区。​​p>

否则,您可以查看一些 Java 中的通用机器学习框架:

Datumbox - 用于快速开发机器学习和统计应用程序的机器学习框架 ELKI - 用于数据挖掘的 Java 工具包。 (无监督:聚类、异常值检测等) H2O - 支持对存储在 HDFS 中的数据进行分布式学习的 ML 引擎。 htm.java - 使用 Numenta 的皮层学习算法的通用机器学习库 java-deeplearning - 适用于 Java、Clojure、Scala 的分布式深度学习平台 JAVA-ML - 通用 ML 库,具有适用于 Java 中所有算法的通用接口 JSAT - 用于分类、回归和聚类的大量机器学习算法。 Mahout - 分布式机器学习 Meka - 多标签分类和评估方法的开源实现(Weka 的扩展)。 Apache Spark 中的 MLlib - Spark 中的分布式机器学习库 Neuroph - Neuroph 是轻量级 Java 神经网络框架 ORYX - 简单的实时大规模机器学习基础架构。 RankLib - RankLib 是一个学习排名算法的库 RapidMiner - RapidMiner 集成到 Java 代码中 Stanford 分类器 - 分类器是一种机器学习工具,它将获取数据项并将其放入 k 个类别中的一个。 WalnutiQ - 人脑的面向对象模型 Wek​​a - Weka 是用于数据挖掘任务的机器学习算法集合

来源:Awesome Machine Learning

【讨论】:

以上是关于机器学习 - 概念/建议的主要内容,如果未能解决你的问题,请参考以下文章

机器学习Logistic回归---学习笔记

机器学习之深度学习入门

吴恩达机器学习-6-机器学习的建议

机器学习的建议

Andrew Ng机器学习课程笔记之应用机器学习的建议

机器学习 | 机器学习概念理解与基本知识