5种方式将机器学习带到Java、Python以及Go等编程语言

【编者按】机器学习似乎在一夜之间从默默无闻的小卒变成万众瞩目的焦点,关于机器学习的开源工具也越来越多,但是目前的挑战是,如何让对机器学习感兴趣的开发者和准备使用它的数据科学家们真正使用上它们,本文搜集了几种语言中常见且实用的开源机器学习工具,非常值得关注,本文来自 InfoWorld。

以下为原文:

经过几十年作为一门专业学科的发展后,机器学习似乎一夜之间作为万众瞩目的商业工具出现在我们面前。目前面临的挑战是如何让其具备实效,尤其是对开发者和正准备使用它的数据科学家们。

为此,我们搜集了一些最常见的且实用的开源机器学习工具,通过本文分享给大家。

Python

数据科学家们投身Python怀抱是希望有另一种更开放式的选择方案来替代R语言,如今许多雇主寻求大数据专家,而Python就是必需的技能。因此,大量的机器学习软件库开始出现在不断扩大的Python软件名单中。

首先推荐的是 scikit-learn,它能够加载至算法与模块当中,在GitHub(fork版本数量接近2000)上受到了广泛赞赏,并受到了许多科技巨头的青睐。另一个紧随其后的是 PyBrain,它的设计目的在于降低使用难度并提供与其它强大工具相对接的能力。顾名思义,PyBrain的关注重点在于神经网络与非监督式学习,它同时也提供一套用于培训与重新定义算法的机制。

Go

谷歌的系统语言,由于其并行设计,使其似乎是一个编写机器学习库理想的环境。虽然目前与之相关的库项目规模尚小,但也有一些值得关注, GoLearn,它的开发者将其描述为一个“内置电池”的机器学习库。它提供过滤、分类以及回归分析等多种工具。另一套较小且更为基础的库是mlgo,虽然目前它能提供的算法数量还非常少,但计划在未来推出更多。

Javaon Hadoop

在人们喜爱的大数据框架中,Mahout(在印地语中意思是“大象骑士”)包含几种常见的机器学习方法。这款软件包是围绕算法而非方法,所以你需要有一定的算法基础,换言之,如果你足够认真,就肯定不难看出其各部分功能是如何整合在一起的,例如,你可以通过几行代码构建起基于用户的推荐系统。

另一个基于Hadoop的机器学习项目是Cloudera公司推行的Oryx,其特性在于通过交付实时流结果而非处理批量作业来对Mahout处理结果进行进一步分析。该该项目现在还处于初始阶段,注意,这只是个项目而非实际产品,但它在不断改善,所以很值得关注。

Java

除了上述主要针对Hadoop的Mahout,其他一些面向Java的机器学习库也在广泛使用。 Weka由新西兰怀卡托大学开发的工作台式的应用,它在常见的算法集合中增加了可视化和数据挖掘功能。对于那些想要为他们的工作打造一个前端或者计划将Java作为初始开发的用户来说,Weka可能是最好的选择。 Java-ML也不错,但它更适合那些已经习惯将Java和机器学习配合使用的开发者。

JavaScript

关于JavaScript的笑话(“阿特伍德定律”),原意是这样的,任何能够由JavaScript编写的内容最终都会由JavaScript编写,这对机器学习库同样适用。目前由JavaScript编写的方案在这一领域数量仍然相对较少,大多数选项仅仅是单一算法而非完整的库,但已经有部分有用工具渐渐脱颖而出。 ConvNetJS允许大家直接在浏览器当中进行深度学习神经网络培训,而名为 brain则将神经网络作为可安装的NPM模块提供给大家。此外, Encog库同样值得关注,而且它适用于多种平台:Java、C#、C/C++以及JavaScript。

原文链接:5 ways to add machine learning to Java, JavaScript, and more (编译/魏伟 审校/仲浩)

免费订阅“CSDN云计算(左)和CSDN大数据(右)”微信公众号,实时掌握第一手云中消息,了解最新的大数据进展!

CSDN发布虚拟化、Docker、OpenStack、CloudStack、数据中心等相关云计算资讯,     分享Hadoop、Spark、NoSQL/NewSQL、HBase、Impala、内存计算、流计算、机器学习和智能算法等相关大数据观点,提供云计算和大数据技术、平台、实践和产业信息等服务。

时间: 2024-09-28 00:09:33

5种方式将机器学习带到Java、Python以及Go等编程语言的相关文章

Hadoop文件系统访问的两种方式

在这里记录下学习hadoop 的过程,并对重要内容记录下来,以备以后查漏补缺. 要从Hadoop文件系统中读取文件,一般有两种方式: 1.使用java.net.URL对象 package com.ytu.chapter3; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import org.apache.hado

深入解读Python解析XML的几种方式

在XML解析方面,Python贯彻了自己"开箱即用"(batteries included)的原则.在自带的标准库中,Python提供了大量可以用于处理XML语言的包和工具,数量之多,甚至让Python编程新手无从选择. 本文将介绍深入解读利用Python语言解析XML文件的几种方式,并以笔者推荐使用的ElementTree模块为例,演示具体使用方法和场景.文中所使用的Python版本为2.7. 什么是XML? XML是可扩展标记语言(Extensible Markup Languag

Java项目中连接数据库的几种方式和范例

连接数据库|项目 Java项目中连接数据库的几种方式和范例 1, 最原始的写法(也是一般初学者的写法) 首先import数据库连接基础类,然后其它的然后就简单了.实际操作过程中只需加载驱动程序类,之后调用sql语句就行了.以下是一个简单的程序例子. //Select.java import java.net.URL; import java.sql.*; class Select{ public static void main(String[] args){ try{ //创建连接URL St

实现 Java 平台的三种方式

广泛地说,只要能执行 Java bytecode 者,就可以称为 Java 平台(Java platform).大致上,实现 Java 平台的方式有三种,分别是: Java 虚拟机器(Java Virtual Machine,JVM) Java 操作系统(Java Operating System) Java 芯片(Java Chip) 以下就此三种 Java 平台提出解说,并比较之. Java 虚拟机器 所谓的 Java 虚拟机器,指的是在操作系统上执行的一种程序,此程序可以解读 Java b

Java多线程:“基础篇”02之常用的实现多线程的两种方式

本章,我们学习"常用的实现多线程的2种方式":Thread 和 Runnable. 之所以说是 常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程池的内容, 我们以后会详细介绍:现在,先对的Thread和Runnable进行了解.本章内容包括: Thread和Runnable 的简介 Thread和Runnable的异同点 Thread和Runnable的多线程的示例 转载请注明出处:http://www.cnblogs.com/sk

Java线程安全的四种方式及五个等级

四种方式 sychronized关键字 sychronized method(){} sychronized (objectReference) {/*block*/} static synchronized method(){} sychronized(classname.class) 其中1和2是代表锁当前对象,即一个对象就一个锁,3和4代表锁这个类,即这个类的锁 要注意的是sychronized method()不是锁这个函数,而是锁对象,即:如果这个类中有两个方法都是sychronize

实现Java平台的三种方式详细解析

广泛地说,只要能执行 Java bytecode 者,就可以称为 Java 平台(Java platform).大致上,实现 Java 平台的方式有三种,分别是: Java 虚拟机器(Java Virtual Machine,JVM) Java 操作系统(Java Operating System) Java 芯片(Java Chip) 以下就此三种 Java 平台提出解说,并比较之. Java 虚拟机器 所谓的 Java 虚拟机器,指的是在操作系统上执行的一种程序,此程序可以解读 Java b

Java的线程安全四种方式五个等级

四种方式 sychronized关键字 sychronized method(){} sychronized (objectReference) {/*block*/} static synchronized method(){} sychronized(classname.class) 其中1和2是代表锁当前对象,即一个对象就一个锁,3和4代表锁这个类,即这个类的锁 要注意的是sychronized method()不是锁这个函数,而是锁对象,即:如果这个类中有两个方法都是sychronize

Java产生随机数的两种方式

在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象.下面是两种方法的使用过程: 一.java.lang.Math.random() 在使用这一静态方法的时候,我们不需要import任何包,因为java.lang.*包是默认载入的,下面举例说面使用方法: public class RandomTest{ public stati