超全!基于Java的机器学习项目、环境、库...

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 你是一名希望开始或者正在学习机器学习的Java程序员吗? 利用机器学习编写程序是最佳的学习方式。你可以从头开始编写算法,但是利用现有的开源库,你可以取得更大的进步。 本文介绍了主要的平台和开放源码的机器学习库。

你是一名希望开始或者正在学习机器学习的Java程序员吗?

利用机器学习编写程序是最佳的学习方式。你可以从头开始编写算法,但是利用现有的开源库,你可以取得更大的进步。

本文介绍了主要的平台和开放源码的机器学习库。你可以使用这些机器学习库。

环境

本节描述了用于机器学习的Java环境或工作域。它们提供了用于执行机器学习任务的图形用户界面,还提供了用于开发自己应用程序的Java API。

WEKA

怀卡托环境知识分析(Weka)( https:// www.cs.waikato.ac.nz/ml/weka/)是一个由新西兰怀卡托大学开发的机器学习平台。提供Java的图形用户接口,命令行接口和Java API接口。它可能是最流行的Java机器学习库,也是开始或练习机器学习的好地方。

06f3696f15a420ffef634af8e6aaa61aa4538b97

KNIME

康斯坦茨信息挖掘(KNIME)(https://www.knime. com/)是德国康斯坦茨大学开发的一个分析和报告平台。它的研发重点是药物研究,但已扩展到一般商业智能。它提供一个图形用户接口(基于Eclipse)和Java API。

ee9700626dc448d0697f8003396f4790a0462dae
快速挖掘

快速挖掘(https://rapidminer.com/)由德国多特蒙德应用技术大学研发。它提供了一个GUI和一个Java API来开发自己的应用程序。还提供了数据处理、可视化和建模的机器学习算法。

4397581256981fe8045d23f64e069b82e4710a68


  • ELKI

ELKI是一个用于开发由索引结构支持的KDD-应用程序的环境(https://elki-project.github.io/),它是由德国慕尼黑的路德维希马克西米利安大学用Java语言开发的一款数据挖掘工作平台。它的重点是在关系型数据库中处理数据,例如异常值检测和分类(基于距离函数方法)。它提供了一个迷你GUI、命令行接口和Java API。

5c44a5d33ae5e4543f6da1cfdf8ac0113cfd3e6d

其实本文列出的每个项目都带有Java API库。不过在这一节中列出的这些项目仅提供了一个Java API。从狭义上来说,它们是机器学习库。

Java-ML

Java机器学习库(Java-ML)(http://java-ml.sourceforge.net/)提供了在Java中实现的机器学习算法的集合。它为每一种算法提供了标准接口,没有UI(用户界面),也没有引用相关的科学文献来进一步阅读。它包括数据操作、群集、特性选择和分类的方法。值得注意的是,截止本文成稿为止,它的最新一个版本是在2012年。

JSAT

Java统计分析工具(JSAT)(https://github.com /EdwardRaff/JSAT/tree/master)提供了一个纯Java语言实现的标准机器学习算法,用于解决中等规模的问题。JSAT的作者称他开发的这个库部分是为了进行自我学习,部分是为了完成工作。尽管如此,算法的列表还是令人印象深刻的。它包括分类、回归、合集、聚类和特征选择方法。

Java大数据项目

本节列出了适合大数据的Java项目,例如机器集群。

Mahout (Hadoop)

Apache Mahout(https://mahout.apache.org/)提供了用于实现Apache Hadoop平台(分布式映射化简)的机器学习算法。该项目主要关注集群和分类算法,一个流行的应用程序驱动实现是它在推荐系统的协作筛选中使用。还包括在单个节点上运行算法的引用实现。

MLlib (Spark)

Apache机器学习库(MLlib)(http://spark. apache.org/mllib/)提供了用于Apache Spark平台(HDFS,而不是映射化简)机器学习算法的实现。尽管Java库和平台支持Java、Scala和Python绑定。这个库是新的,算法的列表很短,但是增长很快。

MOA

大规模在线分析(MOA)(https://moa.cms. waikato.ac.nz/)是一个开源平台,由新西兰怀卡托大学的数据流挖掘设计。和Weka相同(开发在相同的地方),提供一个GUI,命令行接口和Java API。它提供了一长串的算法,重点是分类和支持离群检测,解决概念漂移。MOA使用先进的数据挖掘和机器学习系统(ADAMS)(https://adams.cms.waikato.ac.nz/)管理工作流,开发也在相同的地方。

SAMOA

可扩展的高级在线分析(SAMOA)(http://samoa-project.net/)是一个由雅虎开发的分布式流媒体机器学习框架。它的设计运行在Apache Storm 和 Apache S4上。系统可以利用MOA项目提供的算法来完成分类等任务。

自然语言处理

本节将致力于Java库和项目,用于解决来自机器学习的子领域的问题,称之为自然语言处理(NLP)。

自然语言处理不是我的领域,所以我仅仅指出关键的库。

  • OpenNLP: Apache OpenNLP(http://opennlp. apache.org/)是处理自然语言文本的工具包,它为诸如标记化、分割和实体提取等自然语言处理任务提供了方法。
  • LingPipe:LingPipe(http://alias-i.com/lingpipe/)是计算语言学的一个工具包,包括了主题分类、实体提取、聚类和情绪分析的方法。
  • GATE: 文本工程一般结构(GATE)(http://gate.ac.uk/)是一个开源的用于文本处理的库。它提供了针对不同用例子项目的数组。
  • MALLET:机器学习语言工具包(MALLET)( http://mallet.cs.umass.edu/)是一种Java工具包,用于统计自然语言处理、文档分类、集群、主题建模和信息提取。

计算机视觉

本节列出了机器学习子领域库,称之为计算机视觉(VC)。

计算机视觉不是我熟悉的领域,所以我仅仅指出关键的库。

  • BoofCV:BoofCV(http://boofcv.org/index.php?title=Main_Page)是一个用于计算机视觉和机器人应用的开放源码库。它支持图像处理、特征、几何视觉、校准、识别和图像数据输入等功能。

深度学习

随着深度学习方法和硬件的快速发展,神经网络又重新流行起来。本节列出了用于处理神经网络和深度学习的关键Java库。

  • EncogEncog(http://www.heatonresearch.com/encog)是一个机器学习库,提供了诸如SVM、经典神经网络、遗传编程、贝叶斯网络、HMM和遗传算法的算法。
  • Deeplearning4jDeeplearning4j(http://deeplearning4j.org/)被认为是一个用Java编写的商业级的深度学习库。它被描述为与Hadoop兼容并提供了一些算法,包括受限的Boltzmann机,深层的信念网络和堆叠的降噪自动编码器。

总结

在这篇文章中,当我们在Java中选择一个用于机器学习的库或平台时,我们已经接触到了大项目名称选项。这些是倍受学习者欢迎的项目,但绝不只这些列出来的。比如:看一下MLOSS.org (http://mloss.org/software/language/java/)上的这个页面,(截止本文时)它列出了71个基于java的开源机器学习项目。这是一件很重要的工作,我相信GitHub和SourceForge还有更多的工作要做。

学习者的关键是要认真考虑自己的项目和需求。从一个库或者一个平台中找出你需要的东西,然后选择和学习一个最适合自己的项目。


原文发布时间为:2017-12-5

本文作者:Jason Brownlee

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”微信公众号

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
1月前
|
机器学习/深度学习 人工智能 前端开发
机器学习PAI常见问题之web ui 项目启动后页面打不开如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
3天前
|
Java
Java配置环境
Java配置环境
10 0
Java配置环境
|
1月前
|
人工智能 监控 算法
java智慧城管源码 AI视频智能分析 可直接上项目
Java智慧城管源码实现AI视频智能分析,适用于直接部署项目。系统运用互联网、大数据、云计算和AI提升城市管理水平,采用“一级监督、二级指挥、四级联动”模式。功能涵盖AI智能检测(如占道广告、垃圾处理等)、执法办案、视频分析、统计分析及队伍管理等多个模块,利用深度学习优化城市管理自动化和智能化,提供决策支持。
223 4
java智慧城管源码 AI视频智能分析 可直接上项目
|
1天前
|
搜索推荐 前端开发 Java
java医院绩效考核管理系统项目源码
系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
3 0
|
2天前
|
前端开发 Java 测试技术
Java从入门到精通:4.1.1参与实际项目,锻炼编程与问题解决能力
Java从入门到精通:4.1.1参与实际项目,锻炼编程与问题解决能力
|
14天前
|
Java 应用服务中间件 Maven
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
12 1
|
16天前
|
监控 数据可视化 安全
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
环境实时数据、动态监测报警,实时监控施工环境状态,有针对性地预防施工过程中的环境污染问题,打造文明生态施工,创造绿色的生态环境。
14 0
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
|
18天前
|
SQL Java Go
java项目超市购物管理系统
java项目超市购物管理系统
|
18天前
|
Java
java项目日历表
java项目日历表
|
30天前
|
Java Maven
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
14 0

热门文章

最新文章