互联网科技公司正在争先恐后地寻找能够编写ML和深度学习代码的足够程序员。 你准备好了吗? 以下是我们针对Java的机器学习库的五个首选。
机器学习是目前最热门的技术技能之一。 公司正在争先恐后地寻找能够编写ML和深度学习代码的足够程序员。 虽然没有一种编程语言赢得了主导地位,但这里有五个我们的Java库ML库的首选。
Weka
毫无疑问,Weka是我们最好的Java机器学习库的首选。 Weka 3是一个完全基于Java的工作台,最适合用于机器学习算法。 Weka主要用于数据挖掘,数据分析和预测建模。 它完全免费,便携,易于使用,具有图形界面。
Weka的优势在于分类,因此需要自动分类数据的应用程序可以从中受益,但它也支持聚类,关联规则挖掘,时间序列预测,特征选择和异常检测,”副教授Eibe Frank教授说。 新西兰怀卡托大学计算机科学教授。
Weka的机器学习算法集合可以直接应用于数据集或从您自己的Java代码调用。 这支持多种标准数据挖掘任务,包括数据预处理,分类,聚类,可视化,回归和特征选择。
Massive Online Analysis (MOA)
MOA是一种开源软件,专门用于实时数据流的机器学习和数据挖掘。它采用Java开发,可以轻松地与Weka一起使用,同时扩展到更苛刻的问题。 MOA的机器学习算法和评估工具集合可用于回归,分类,异常值检测,聚类,推荐系统和概念漂移检测。 MOA可用于大型演进数据集和数据流以及物联网(IoT)设备生成的数据。
MOA专门用于实时数据流的机器学习。它旨在实现时间和内存效率的处理。 MOA通过提供若干有用的功能(包括用于新算法,流和评估方法的易于扩展的框架),为在数据挖掘领域中运行实验提供了基准框架。可重复实验的数据流(真实和合成)的可存储设置;以及来自文献的一组现有算法和措施用于比较。
Deeplearning4j
去年,JAXenter社区提名Deeplearning4j作为Java生态系统最具创新性的贡献者之一。 Deeplearning4j是一个商业级的开源分布式深度学习库,用Java和Scala由Skymind的好人(和半有感知的机器人!)带给我们。它的使命是将深度神经网络和深度强化学习结合在一起,用于商业环境。
Deeplearning4j旨在作为Java,Scala和Clojure程序员的DIY工具,Hadoop是一个庞大的分布式数据存储系统,具有巨大的处理能力,能够处理几乎无限的并发任务或作业。深度神经网络和深度强化学习能够进行模式识别和面向目标的机器学习。所有这一切都意味着Deeplearning4j对于识别语音,声音和文本中的模式和情感非常有用。此外,它还可用于检测金融交易等时间序列数据中的异常。
MALLET
MALLET主要由Andrew McCallum和来自UMASS和UPenn的学生开发,是一个用于语言到文本的开源Java机器学习工具包。 这个基于Java的包支持统计自然语言处理,聚类,文档分类,信息提取,主题建模和其他机器学习应用程序到文本。
MALLET的专长包括用于文档分类的复杂工具,例如用于转换文本的高效例程。 它支持各种算法(包括Na?veBayes,Decision Trees和Maximum Entropy)和用于评估classfier性能的代码。 此外,MALLET还包括用于序列标记和主题建模的工具。
ELKI
开发KDD的环境 - 索引结构支持的应用程序(简称ELKI)是一个用于Java的开源数据挖掘软件。 ELKI的重点是算法研究,强调聚类分析,数据库索引和异常值检测中的无监督方法。 ELKI允许通过分离两者来独立评估数据挖掘算法和数据管理任务。此功能在Weta或Rapidminer等其他数据挖掘框架中是独一无二的。 ELKI还允许任意数据类型,文件格式或距离或相似性度量。
ELKI专为研究人员和学生设计,提供大量高度可配置的算法参数。这样可以对算法进行公平,简便的评估和基准测试。这意味着ELKI对数据科学特别有用; ELKI已经习惯了抹香鲸的发声,太空飞行,自行车鲨鱼再分配和交通预测。
鉴于机器学习目前这么流行,想要学习和实践的程序员们也可以了解下谷歌最近的AI开源项目——AIY Projects。AIY 全称是 Artificial Intelligence Yourself,顾名思义就是利用 AI 来进行的 DIY 功能套件。借助 AIY 项目,创客可以利用人工智能来实现更像人与人交流的人机交互。谷歌目前为 AIY Projects 推出了两款硬件产品--AIY Voice Kit 和 AIY Vision Kit。
而且谷歌为此还发布了一个TensorFlow.js的工具,有了这项工具,即使不是机器视觉领域的专家,大家也可以实现很多应用场景,比如在浏览器中训练自己的宠物脸辨识系统,在自家的监视系统中使用等等。