Java机器学习软件介绍
编写程序是最好的学习机器学习的方法。你可以从头开始编写算法,但是如果你要取得更多的进展,建议你采用现有的开源库。在这篇文章中你会发现有关Java中机器学习的主要平台和开放源码库包。
环境
本节描述可用于机器学习的java环境或工作台。他们被称为环境,因为他们为执行机器学习任务提供了图形用户界面,但也提供了Java api供使用者开发自己的应用程序。
Weka
Waikato Environment for Knowledge Analysis (Weka) 是一个机器学习的平台开发,由新西兰的怀卡托大学用Java编写的。提供一个图形用户界面,命令行界面和Java API。这可能是最流行的Java机器学习库和最好的开始机器学习或实践的起点。
KNIME
Konstanz Information Miner (KIME) 是一个德国康斯坦茨大学开发的分析和报告平台。它是关注医药研究开发的,但可扩展到一般商业智能。它提供了一个图形用户界面(基于Eclipse)和Java API。
RapidMiner
RapidMiner 在过去被称为另一个学习环境(YALE),是由德国多特蒙德大学开发的技术。它提供了一个GUI和Java API来开发自己的应用程序。它提供了数据处理、可视化建模和机器学习算法。
ELKI
Environment for DeveLoping KDD-Applications Supported by Index-Structures (ELKI) 是一个Java开发的数据挖掘工作台,由德国慕尼黑大学开发。它有一个专注于处理关系数据库的数据,用于异常值检测和分类(基于距离函数的方法)。它提供了一个迷你GUI,命令行接口和Java API。
库包
下面是机器学习的库包,它们都有Java API,提供器学习在某个方面成就。
Java-ML
Java Machine Learning Library (Java-ML) 提供了一个用Java实现机器学习算法的集合。每个算法它都提供了一个标准接口,但是没有ui,没有相关引用以便进一步阅读相关的科学文献。它包括数据操作方法、聚类、特征选择和分类。
JSTAT
Java Statistical Analysis Tool (JSTAT) 提供了标准的纯Java实现机器学习算法,包括small-ish问题。作者承认开发这个库包是为了自己修炼学习。然而算法列表令人印象深刻。它包括分类、回归、合奏、集群和特征选择方法。
大数据
Mahout (Hadoop)
Apache Mahout提供了在Apache Hadoop平台上(分布式使用map-reduce模式)使用机器学习算法的实现。这个项目提供了一个专注于聚类和分类算法和一个受欢迎的应用程序驱动实现,其针对推荐系统使用协同过滤。
MLlib (Spark)
Apache Mchine Learning Library提供了用于Apache Spark的平台(HDFS,但不是使用Map-reuce模式)实现的机器学习算法。支持Java平台,Scala和Python绑定。库包是很新,算法的列表也很短,但发展迅速。
MOA
Massive Online Analysis (MOA) 是一个新西兰怀卡托大学为数据流挖掘开发的开源的平台设计。某些地方像Weka,它提供了一个GUI,命令行接口和Java API。它提供了一长串的算法着重分类和支持异常值检测和解决概念漂移。MOA使用Advanced Data mining And Machine learning System (ADAMS) 作为管理工作流。
SAMOA
Scalable Advanced Massive Online Analysis (SAMOA) 是一个由雅虎开发的分布式流媒体机器学习框架。它被设计为运行在Apache Storm 风暴和Apache S4上。系统可以利用MOA 所提供的算法如分类等任务。
自然语言处理
本节是关于从机器学习的分支称为自然语言处理(NLP)的Java库和项目。
- OpenNLP: Apache OpenNLP 是一个处理自然语言文本的工具包。它提供了NLP等任务的方法,如标记 分割和实体提取。
- LingPipe: LingPipe是计算语言学的工具包,包括主题分类方法、实体提取、聚类和情感分析。.
- GATE: The General Architecture for Text Engineering (GATE) 是一个用于文本处理开源库。它针对不同的用例提供了一系列子项目。
- MALLET: Machine Learning for Language Toolkit (MALLET) 是一个Java工具包统计自然语言处理,文档分类、聚类、主题建模和信息提取。
Computer Vision(CV)
- BoofCV: BoofCV是一个开源库用于计算机视觉和机器人应用程序。它支持功能,如图像处理,特征,几何愿景、校准、识别和图像数据
Deep Learning深度学习
本节列出使用神经网络和深入学习的关键Java库.
- Encog: Encog 是一个机器学习库提供算法支持向量机等古典神经网络,遗传编程,贝叶斯网络,嗯,遗传算法
- Deeplearning4j: Deeplearning4j 声称是用Java编写的商用深度学习图书馆。它被描述为兼容Hadoop并提供算法包括限制玻耳兹曼机,deep-belief网络和Stacked Denoising Autoencoders(SdA)。