开源机器学习工具列表

这里,我们将推荐一些数据挖掘和机器学习的一些开源软件和开源工具包,设计Java,R,Python等各种语言,欢迎注册登录之后与大家一起分享。感谢您的参与!

语言:Python

Scikit-Learn是一个Python机器学习开源工具,它包含分类、回归、聚类、降维、模型选择、数据预处理等功能。根据官网介绍,目前已经有很多公司也在使用,包括Spotify、Inria、Evernote等。该工具主要特点如下:

  • 是数据挖掘和数据分析简单有效的工具
  • 所有人均可使用,多种场景可复用
  • 基于NumPy,Scipy和matplotlib构造
  • 基于BSD许可——开源、商用均可

语言:Java

DeepLearning for Java是一个开源的DeepLearning库,它是用Java和Scala写的。它是第一个商业级别的运行在JVM上的DeepLearning版本。它可以运行在Hadoop和Spark上。主要包括的库有DeepLearning4J、ND4J、DataVec、JavaCPP等。该工具主要特点如下:

  • 支持CPU和GPU上的分布式运行
  • 提供Java/Scala/Python接口
  • 通过循环的reduce并行训练
  • 基于Hadoop的可扩展工具
  • 支持在AWS上的GPU扩展

语言:Java

DatumBox是机器学习开源框架,是使用Java语言编写的工具。它可以运用在社交媒体监测、搜索引擎优化、质量评估和文本分析等领域。包括Webseo,Mozaik等公司都在使用。该工具主要特点如下:

  • 提供强大的开源支持
  • 使用Java编写的机器学习框架
  • 包含大量算法、模型、统计检验等功能

语言:Java/C

这是一个收集了各种主题模型的库,包括各种版本的LDA代码,以及Dirichlet过程(DP)代码、层次Dirichlet过程模型(HDP)代码。还有其他的一些主题模型代码。这个库还收集了一个NIPS0-12的数据集,主要是用来做主题模型的,包括1740个文档,2037个作者等等。

语言:Python

gensim是一个基于Python的话题模型工具,是免费的Python库。它是可扩展的统计语义工具,可以分析文本语义结构并抽取相似语义的文本。很多公司如IBCN、DTU、issuu等都在使用。该工具主要特点如下:

  • 良好的扩展性、鲁棒性
  • 独立于平台
  • 开源

语言:Java

MALLET(MAchine Learning for LanguagE Toolkit)是一个机器学习的工具,主要用来做自然语言处理的,也可以用来做文档的分类、聚类、话题模型、信息抽取以及其它的文本相关的机器学习。这个工具包含很多精细的算法,比如层次话题模型(hLDA)等。主要功能如下:

  • 文档分类
  • 序列标注
  • 话题模型

语言:Java

Lenskit是美国的明尼苏达大学的GroupLens团队开发的开源推荐工具,基于Java编写,是基于GNU许可的开源软件。它实现了推荐领域的多种算法,包括基于用户、项目的协同过滤算法,矩阵分解方法等。它还提供了多种推荐效果评价工具。

语言:Python

MyMediaLite_Python是合肥工业大学王锦坤博士开发的开源推荐工具,基于Python编写,是MyMediaLite框架的Python版本。目前已经引入了WRMF模型。

语言:Java/Scala

Apache Mahout是一个优秀的分布式机器学习框架,早先随着Apache Hadoop 1.X推出,它包含了一些很优秀的向量运算工具。0.98版本以前是基于Hadoop 1.X的工具,使用Java编写。随着Hadoop 2.X的推出,其开始使用Spark作为基础平台,提供Scala接口。如果希望使用Java可以下载0.98版本之前的软件。其主要特点如下:

  • 提供了简单的可扩展编程环境,很容易构造具有扩展性的算法
  • 内置大量经典算法,这些算法基于Scala+Apache Spark、H2O、Apache Flink平台
  • 提供Samsara,一个向量实验环境,语法与R类似

语言:Java/Scala/Python

Apache Spark MLlib是Spark平台上的一个可扩展的机器学习包。底层算法是Scala编写,可以Java调用,主要是分布式计算框架,运行在Spark平台之上。其主要特点如下:

  • 简单易用,可以被Java,Scala,Python和SparkR调用
  • 性能强悍,拥有高质量算法,比MapReduce快100X倍
  • 容易部署,可以运行在Hadoop集群和数据之上