如何开始Java机器学习

什么是开始使用Java机器学习的最佳工具?

他们已经存在了一段时间,但如今看来,每个人都在谈论人工智能和机器学习。 对于科学家和研究人员而言,它已不再是秘密,几乎可以在任何新兴技术中实现。

在下面的文章中,我们将快速概述主要的Java机器学习框架,并显示入门起来很容易-无需重新设计轮子并从头开始创建自己的算法。

人工智能为人民

人工智能是一个广阔而凉爽的领域,已经存在了一段时间,但始终感到有些遥不可及,特别是为科学家而设。 如果要创建AI系统,则必须自己实现核心算法并对其进行训练以识别模式,理解图像并处理自然语言。

最近在这一领域的嗡嗡声和发展使非研究者更容易使用它。 现在,您可以轻松访问相关的算法和工具。 您确实必须知道自己在做什么,但是使用机器学习功能来增强应用程序要容易得多。

使机器运转

为了简化操作,我们决定重点介绍3个项目,以帮助您入门:

  1. Deeplearning4J(DL4J) – JVM的开源,分布式和商业级深度学习库
  2. BID数据项目 –一系列模式可实现快速,大规模的机器学习和数据挖掘
  3. Neuroph –面向对象的神经网络

顺便说一下,我们最近发布了另一个有趣的开源GitHub库列表,引起了我们的注意。 检查一下 。

1. DL4J –深度学习

DL4J是一种工具,可以帮助您配置由多层构成的深度神经网络。 它不仅为JVM带来了深度学习,而且还具有大规模的快速原型制作和自定义功能,同时侧重于配置之外的约定。

对于那些已经具备创建和使用深度神经网络所需理论但又不想自己实现算法的人来说,这是一个工具。 您可以使用它来解决涉及大量数据的特定问题并自定义神经网络属性。

DL4J用Java编写,使其与任何JVM语言(例如Clojure,Scala或Kotlin)兼容,并且与Hadoop和Spark集成。

可能的用例包括评级或推荐系统(CRM,adtech,防止流失),预测分析甚至欺诈检测。 如果您正在寻找真实的示例,可以查看Rapidminer 。 这是一个开放源数据平台,使用DL4J为其用户简化了预测分析过程。

设置新的神经网络就像创建新对象一样容易:

ultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().iterations(1).weightInit(WeightInit.XAVIER).activation("relu").optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).learningRate(0.05)// ... other hyperparameters.backprop(true).build();

2. BID数据项目

BID数据项目专为那些处理大量数据并且对性能敏感的人而设计。 加州大学伯克利分校的这个项目是硬件,软件和设计模式的集合,可实现快速大规模的数据挖掘。

第一个库是BIDMach ,它在单个节点或群集上保存许多常见机器学习问题的记录。 您可以使用它来管理数据源,通过CPU或GPU优化和分发数据。

它包含许多流行的机器学习算法,并且该团队正在开发分布式深度学习网络,图形算法和其他模型。

另外两个库是BIDMat ,这是一个快速矩阵代数库,专注于数据挖掘和BIDParse (GPU加速的自然语言解析器)。 该项目中的其他库包括可视化工具,以及使您可以在Spark甚至Android上运行的库。

BIDMach基准测试反复显示出比其他解决方案更好的结果,即使与在大型集群上运行的替代产品相比,即使使用一台计算机也是如此。 完整的基准测试列表可在此处找到。

3. Neuroph

Neuroph是用于开发通用神经网络体系结构的轻量级Java框架。 该框架提供了一个Java库以及一个GUI工具(称为easyNeurons),您可以使用它来在Java程序中创建和训练自己的神经网络。

它包含一个开放源代码Java库,其中包含少量与基本神经网络概念相对应的基本类。 如果您刚刚开始使用神经网络,或者想知道它们的工作原理,那么这是一个很好的垫脚石。

您可以尝试Neuroph在线演示,并查看其实际工作原理。 剧透警报:界面看起来过时且过时,但是您可以用它来创造美好的事物。 此外,它还获得了2013年 “ 杜克选择奖” 。

网络-768x522

网络图视图

别人呢?

如果这3个项目不是您的最佳选择,而您正在寻找与项目有些不同的东西,请不要担心。 如果您在GitHub上搜索“ Machine learning ”,则会找到1,506个Java存储库,这些存储库可能为您提供了正确的工具。

例如,Airbnb的一个有趣的项目是aerosolve ; 旨在人性化的机器学习库。

开始使用新技术始终是麻烦的源头。 如果您需要有关异常的帮助,请务必查看Takipi的错误分析工具 。

最后的想法

每隔几年,就会有关于AI的新话题。 这次,它以机器学习,数据挖掘,神经网络等形式进行了增强,我们全力以赴。 这些库是开放源代码的事实意味着信息和功能都可以抢到,而您所要做的就是考虑使用此功能可以做什么。

如果您知道其他有趣的项目,或者认为我们错过了任何事情,欢迎在下面的评论中听到。

翻译自: https://www.javacodegeeks.com/2016/07/get-started-java-machine-learning.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

keil中关于使用_at_绝对地址定位问题

keil中关于使用_at_绝对地址定位问题 2008-01-07 13:46:26| 分类: MCU51 | 标签: |字号大中小 订阅 在网上看到有人提到在keil中使用_at_进行绝对地址定位问题,我简单介绍一下它的用法。 使用_at_关键字对存储器进行绝对地址定位程序…

ztree树

常规的ztree树 后台数据封装成list对象 public PageModel getTreeBuildingRegData(Map<String, String> params) {PageModel pageModelnew PageModel();String statusparams.get("status");String orgIdparams.get("org_id");List<OmsBuildingReg…

如何提高效率

如何提高效率 时间管理 April 28th, 2011 本文来自读者 桃雨 翻译投稿。 Aaron Swartz写过一篇很有名的文章&#xff0c;叫做《HOWTO: Be more productive》&#xff08;如何提高效率&#xff09;。这篇文章写的实在是太好了&#xff0c;我看了好多遍&#xff0c;很赞同作者的…

Andrew Ng - 深度学习工程师 - Part 2. 改善深层神经网络:超参数调试、正则化以及优化(Week 1. 机器学习的实用层面)...

第1周 机器学习的实用层面 1.1 训练/开发/测试 早期机器学习时代&#xff08;数据规模较小&#xff09;&#xff0c;如果不需要dev set&#xff0c;常见的划分有 70%/30% 的训练/测试 划分&#xff0c;如果需要验证集&#xff0c;常见的是 60%/20%/20%划分 在big data era&…

jms 如何测试_使用JMSTester对JMS层进行基准测试

jms 如何测试对于我去过的大多数客户端&#xff0c;使用ActiveMQ扩展JMS消息传递层是一个优先事项。 有多种方法可以实现这一目标&#xff0c;但毫无疑问&#xff0c;创建基准并分析实际硬件上的体系结构&#xff08;或者正如我的同事Gary Tully所说的“询问机器”&#xff09;…

为什么待办事项清单不管用

为什么待办事项清单不管用 时间管理 November 22nd, 2012 本文原文来自 Harvard Business Review&#xff0c;由 换装迷宫tayy 翻译。 停止制作你的待办事项清单吧。它们只会让你感觉失败和受挫。想想你正在管理的那些待办清单&#xff1a;有多少事项从年初起就已经在那儿了&…

charts 画饼图

统计某一天某类物体的百分比 新知识点&#xff1a;aggregate https://blog.csdn.net/congcong68/article/details/51619882 主要的 $group $match $sort $limit pipeline [{$group:{_id:$area,count:{$sum:1}}}, # count 是聚合之后新增的一个字段。{$sort:{count:1}}, # …

Apache Camel 2.18 –即将推出的功能的亮点

骆驼骑士正在忙于即将发布的Apache Camel 2.18版本。 当我们动态更新发行说明时 &#xff0c;这是一种快速查看即将发生的情况的方法。 我只是想在夏天在这里进行快速更新&#xff0c;到目前为止&#xff0c;我们已经完成了简短的重点介绍。 随着发行版的临近和文档的完善&…

实时多线程系统的日志实现

实时多线程系统的日志实现 2008-03-21 09:19 黄明/戴颖  软件世界 我要评论(0) 字号&#xff1a;T | T为了分析软件系统在测试和运行期产生的故障&#xff0c;目前大多数软件系统所广泛使用的一种方法就是日志记录。本文给出了利用循环缓冲区和单独的日志读写线程实现实时系统…

51NOD 1424 零树

Discription 有一棵以1为根的树&#xff0c;他有n个结点&#xff0c;用1到n编号。第i号点有一个值vi。 现在可以对树进行如下操作&#xff1a; 步骤1&#xff1a;在树中选一个连通块&#xff0c;这个连通块必须包含1这个结点。 步骤2&#xff1a;然后对这个连通块中所有结点的值…

nosql的数据服务_使用NoSQL实现实体服务–第1部分:概述

nosql的数据服务在过去的几周中&#xff0c;我一直在进行一些研发工作&#xff0c;以了解使用NoSQL数据库实现实体服务 &#xff08;也称为数据服务&#xff09;的优势。 实体服务是Thomas Erl的《服务技术》丛书中提出的服务分类。 它用于描述高度不可知和可重复使用的服务&am…

Java中获取当前函数名

Java中获取当前函数名 博客分类&#xff1a; Java JavathreadJDKIDEA 有时候我们需要在程序中获取当前运行的函数名&#xff0c;如何简单的做到这点呢&#xff1f;我们可以用getStackTrace轻松搞定。 一提到getStatckTrace多数人会联想到Thowable中的getStackTrace方法。的确&…

day19 复习,组合和继承

组合&#xff1a;当一个类的对象作为另一个类对象的属性就叫组合 表示的一种什么有什么的关系 面向对象的思想 不关心程序的执行过程 关心的事一个程序中的角色以及角色与角色的关系 python中一切皆对象 实例化的过程 创建一个对象 __init__给对象添加属性&#xff0c;对…

Spring Boot和数据库初始化

Spring Boot是一个很好的框架&#xff0c;可在开发Spring应用程序时为开发人员节省大量时间和精力。 它的主要功能之一是数据库初始化。 您可以使用spring boot来初始化您的sql数据库。 我们将从gradle文件开始 group com.gkatzioura version 1.0-SNAPSHOTapply plugin: java…

学习Java: Queue

15 08, 2007 学习Java: Queue Java — 作者 zybing 15:17Java提供了Quere&#xff0c;相当好用&#xff0c;在1.5版本中又有增强。Queue&#xff1a; 基本上&#xff0c;一个队列就是一个先入先出&#xff08;FIFO&#xff09;的数据结构 offer&#xff0c;add区别&#xff1…

建站手册-网站主机:电子商务主机

ylbtech-建站手册-网站主机&#xff1a;电子商务主机1.返回顶部 1、http://www.w3school.com.cn/hosting/host_ecommerce.asp2、2.返回顶部1、如果您的公司正在销售某种产品或服务&#xff0c;那么电子商务也许是做生意的一种好办法。 Internet 商业 电子商务就是在 Internet 上…

ConcurrentLinkedQueue

ConcurrentLinkedQueue 因为ConcurrentLinkedQueue是线程序安全的并且是针对并发的 主类 Java代码 public class conn{ public static void main(String[] args) throws Exception{ Queue<String> queuenew ConcurrentLinkedQueue<String>(); …

【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器

每天学习一点点 编程PDF电子书、视频教程免费下载&#xff1a;http://www.shitanlife.com/code一、反向代理&#xff1a;Web服务器的“经纪人” 1.1 反向代理初印象 反向代理&#xff08;Reverse Proxy&#xff09;方式是指以代理服务器来接受internet上的连接请求&#xff0c;…

剖析java中的String之__拼接

剖析java中的String之__拼接 分类&#xff1a; java 2011-08-24 17:46 31人阅读 评论(0) 收藏 举报 出处, http://blog.csdn.net/izard999/article/details/6708433 网上剖析String的不少&#xff0c;关于其他的String的知识我就不累赘去说了&#xff01; 本文只解释下我在面…

mfc 弹簧_整合弹簧,速度和瓷砖

mfc 弹簧我喜欢 Tiles&#xff0c; 并且听到了很多有关 Velocity的信息 。 它们似乎有不同的用途&#xff0c;并且据说很容易结合在一起&#xff0c;所以我决定试一试&#xff0c;并在Spring Web应用程序中同时使用它们。 集成实际上花费了许多小时&#xff0c;并且是一次真正的…