踏足机器学习 先从这14个库、框架和开源项目开始吧!
用于Java的前5个机器学习库
现在有很多的企业正在争先恐后地找到足够的程序员来编写ML和深度学习。你准备好了吗?这里有五个我们首选的Java机器学习库。
WEKA
Weka是最好的Java机器学习库的选择之一,这并不奇怪。 Weka 3是完全基于Java的工作台,最适用于机器学习算法。 Weka主要用于数据挖掘、数据分析和预测建模。它的图形界面完全免费,便携、易于使用。
Eibe Frank教授新西兰怀卡托大学计算机科学教授表示,“Weka的优势在于分类,所以需要数据自动分类的应用程序可以从中受益,但它也支持聚类、关联规则挖掘、时间序列预测、特征选择和异常检测。”
Weka的机器学习算法集合可以直接应用于数据集,也可以从你自己的Java代码中调用。这支持几个标准的数据挖掘任务,包括数据预处理、分类、聚类、可视化、回归和特征选择。
大规模在线分析(MOA)
MOA是一个开源软件,专门用于实时数据流的机器学习和数据挖掘。在Java中开发,它也可以很容易地与Weka一起使用,同时扩展到更苛刻的问题。 MOA收集的机器学习算法和评估工具对回归、分类、异常值检测、聚类、推荐系统和概念漂移检测都很有用。 MOA可用于大型演进数据集和数据流以及物联网设备(IoT)产生的数据。
MOA是专门为数据流实时机器学习而设计的。它旨在进行时间和内存的高效处理。 MOA为数据挖掘领域的实验提供了一个基准框架,它提供了一些有用的功能,包括一个用于新算法、流和评估方法的易于扩展的框架,用于可重复实验的数据流(真实的和合成的)可存储设置,并从文献中提出一套现有的算法和措施进行了比较。
Deeplearning4
去年,JAXenter社区提名Deeplearning4j作为Java生态系统最具创新贡献者之一。 Deeplearning4j是一个商业级的开源分布式深度学习库,由Scymind的优秀人员(以及半智能机器人)带给我们的Java和Scala。它的使命是将深度神经网络和深度强化学习结合起来,用于商业环境。
Deeplearning4j旨在作为Java、Scala和Clojure程序员的工具,用于处理大量分布式数据存储系统Hadoop的程序员,这个系统具有巨大的处理能力,能够处理几乎无限的并发任务或作业。深度神经网络和深度强化学习能够进行模式识别和面向目标的机器学习。所有这些都意味着Deeplearning4j对语音、声音和文本中的模式和情感的识别非常有用。此外,它还可以用于检测时间序列数据(如金融交易)中的异常情况。
Mallet
主要由Andrew McCallum和来自UMASS和UPenn的学生开发,MALLET是一个开源的Java机器学习工具包,用于从语言到文本。这个基于Java的工具包支持统计自然语言处理、聚类、文档分类、信息提取、主题建模和其他机器学习应用程序到文本。
MALLET的专业包括用于文档分类的复杂工具,例如用于转换文本的高效例程。它支持多种算法(包括朴素贝叶斯,决策树和最大熵)以及用于评估分类性能的代码。另外,MALLET还包含序列标记和主题建模工具。
ELKI
开发索引结构支持的KDD应用环境(简称ELKI)是一个面向Java的开源数据挖掘软件。 ELKI的重点是研究算法,强调聚类分析中的无监督方法、数据库索引和异常检测。 ELKI允许对数据挖掘算法和数据管理任务进行独立评估。这个特性在Weta或Rapidminer等数据挖掘框架中是独一无二的。 ELKI还允许任意数据类型、文件格式或距离或相似性度量。
专为研究人员和学生设计,ELKI提供了大量高度可配置的算法参数。这样就可以对算法进行公平、简单的评估和基准测试。这意味着ELKI对数据科学特别有用。 ELKI已被用来隐藏抹香鲸发声、航天飞行操作和交通预测等。
用于Java和Python的前5个机器学习框架
机器学习的爆炸性增长已经被许多开源工具所推动,使得开发人员更容易学习其技术。让我们一起来看看最受欢迎的Java和Python机器学习框架中的五个。
据相关的技术专家介绍,未来人工智能和机器学习的前景是光明的。所以,如果你想学习技术中最理想的技能之一,那么你就来对地方了。
Apache Singa
Apache Singa由新加坡国立大学的团队开发,是一个灵活的、可扩展的大数据分析深度学习平台。这个深度学习框架为大量数据的可扩展分布式训练提供了灵活的架构。 Singa可扩展以运行各种硬件,主要应用在图像识别和自然语言处理(NLP)上。
Singa,目前是一个Apache孵化器项目,提供了一个简单的编程模型,可以在一个节点集群上工作。分布式深度学习在训练过程中使用模型划分和并行化。一般而言,Singa支持传统的机器学习模型,如逻辑回归。
Singa是用Java、C ++和Python编写的。你可以在AWS上或通过Docker尝试使用Singa。
Apache Mahout
Apache的另一个开源产品Apache Mahout是一个分布式线性代数框架,用于创建可扩展的高性能机器学习应用程序。旨在让数学家、统计学家和数据科学家快速实现他们自己的算法,Mahout主要关注协作过滤、聚类和分类。
Apache Mahout使你能够实际在大数据平台上执行的交互式环境中实现自己的数学运算,然后将完全相同的代码移入你的应用程序并进行部署。 Mahout Samsara提供了一个分布式线性代数和统计引擎,该引擎性能良好,并与交互式shell(现在位于Apache Zeppelin中)一起分发,且在生产环境中链接到你的应用程序的库。Mahout通常搭载Apache Hadoop平台使用map / reduce范例,但这不会限制对其他基于Hadoop的实现的贡献。Apache Mahout是用Java和Scala编写的。
微软认知工具包(CNTK)
微软的认知工具包是一个开源的深度学习工具包,用于训练像人脑一样学习的算法。 CNTK使得用户可以很容易地使用流行的机器学习模型,如前馈DNN,卷积神经网络和递归神经网络。
这个工具毫无疑问的意味着使用神经网络来处理非结构化数据的大数据集。凭借更快的训练时间和易于使用的架构,CNTK具有高度的可定制性,允许你选择自己的参数、算法和网络。由于其支持“多机多GPU”后端,CNTK很容易胜过其竞争对手。Microsoft CNTK是用Python和C ++编写的。
Caffe
由伯克利人工智能研究团队开发的Caffe是一个为表达、速度和模块化而设计的深度学习框架。富有表现力的架构鼓励应用和定制创新。配置选项允许用户通过设置一个标志在CPU和GPU之间切换。 Caffe的可扩展代码已经帮助推动了它的早期发展,成为另一个高度评价的GitHub机器学习项目。
Caffe的速度使其对研究机构和行业部署非常有价值。它是通过利用卷积神经网络(CNN)来开发用于计算机视觉/图像分类的。 Caffe提供模型Zoo,这是一组经过预先训练,不需要任何编码来实现。
Caffe是用Python接口编写的。
TensorFlow
TensorFlow是一个使用数据流图进行数值计算的开源软件库。 TensorFlow是GitHub上分支最多的机器学习项目,也是贡献者的最高参与者。TensorFlow的灵活架构使得用户可以轻松地使用单一API将计算部署到一个或多个CPU或GPU,无论是台式机、服务器还是手机。
TensorFlow主要是用Python编写的,但它也支持Java和Go的一些用法。
结论
到2018年,Python的持续关联性肯定是过去几年机器学习爆炸的一个原因。一些世界上最受欢迎的ML框架和库是由Python编写或主要由Python支持的,包括TensorFlow、Keras、Theano以及sci-kit learn、Chainer、H20、Microsoft Azure Studio、Veles和Neon等小型项目。
GitHub流行的5个开源机器学习项目
这篇是我们之前已经总结过的文章。(https://www.toutiao.com/i6485941230776615437/)
众多的社交、新闻资讯类的软件里充斥了当下最流行的热门话题,毫无疑问,机器学习是目前技术领域最热门的技术之一。今年早些时候,Stack Overflow公布了一项大规模开发者调查的结果,该调查显示,ML专家在薪酬方面仅次于DevOps专家。
机器学习正在经历一段繁荣时期,但对于新手而言,开源的问题通常会让人困惑。因此,今天我们盘点了GitHub上的前五个开源项目,看看这个领域正在发展的前沿项目是什么,对于你的帮助又体现在哪里。毕竟,由于全世界开发人员和程序员之间的通力合作,开源成功了!
(注意:以下列表针对特定的项目,因此会有一些结果被排除在列表之外。)
让我们开始吧!
1. TensorFlow - ★76.2K
把TensorFlow放在这个列表的顶部并不奇怪。这是迄今为止GitHub上最受欢迎的也是最为流行的著名的机器学习项目。
TensorFlow是谷歌机器智能研究机构谷歌大脑团队的一部分,它是一个使用数据流图进行数值计算的开源软件库。它配备了易于使用的Python界面和其他语言的界面以构建和执行计算图。
Jeff Dean在今年早些时候表示:“当我们开源TensorFlow时,我们希望为全世界的每个人建立一个机器学习平台。 TensorFlow 1.0是一个快速、灵活、可用于超出其最初设计的广泛应用的程序。它还包括用于Java和Go的实验性API以及 对象检测和定位和相机图像风格化的新安装系统的演示
2. scikit learn - ★22.7K
列表中的第二个是scikit-learn,一个用于机器学习的Python模块。 scikit拥有许多简单高效的数据挖掘和数据分析工具,它背后的基本动机是For Science。因此,它在各种情况下都是高度可访问和可重用的。另外,它建立了像NumPy、SciPy和matplotlib这样的知名数据科学工具。
今年早些时候, Groupon软件工程总监Adam Geitgey介绍了开发人员进入机器学习领域的办法。
“肯定从学习Python开始。这是迄今为止机器学习最流行的编程语言,如何解决大多数机器学习的问题(不需要深入学习)?答案很简单,你只需要安装几个python库:scikit-learn、NumPy和pandas。这些工具是免费的。“
3. PredictionIO - ★10.6K
PredictionIO是这个名单上的新手,这使得它的高排名更加令人印象深刻。上个月,Apache软件基金会发布的PredictionIO,大受欢迎。 PredictionIO建立在最先进的开源堆栈之上,该机器学习服务器专为开发人员和数据科学家设计,可为任何机器学习任务创建预测引擎。
开发人员可以创建可部署的应用程序,而无需将底层技术拼凑在一起,并提供完整的堆栈和模板。 它直接构建在Spark和Hadoop上,基于可定制模板,开发人员可以快速构建和部署一个引擎作为web服务。
PredictionIO的意思是简化数据基础架构管理。程序员通过实现自己的机器学习模型,可以将它们无缝地整合到引擎中。它还通过系统化的流程和预先构建的评估措施来加速机器学习建模。
4. Swift AI - ★5K
虽然Swift可能正在经历一些逆转,但Swift AI在GitHub上仍然获得赞誉。 Swift AI是一个完全用Swift编写的高性能深度学习库,支持所有的Apple平台,Macbook用户应该十分兴奋。
Swift AI为那些有兴趣在Swift上编写神经网络的人提供了一个有趣的工具。 NeuralNet类包含一个完全连接的前馈人工神经网络。在深度学习的支持下,NeuralNet的设计具有灵活性,可用于性能至关重要的应用
5.GoLearn -★4.7 k
GoLearn 是Go 语言中“功能齐全”的机器学习库,自称Go语言机器学习的“内置电池”学习库,简单性及自定义性是其开发目标。在积极开发的过程中,这个项目正在寻找有兴趣从用户那里得到反馈的开发人员。如果你使用SciPy,WEKA或R,那么对于GoLearn的机器学习问题模型将会很熟悉。
作为一个相对较新的项目,愿望清单比实际的当前工具长。所以,如果你正在寻找一个真正与众不同的项目,GoLearn可能就是你心中的那个“它”。
写在最后
无论你是想加入一个知名的项目,还是作为一个新人,GitHub上有很多开源机器学习项目。任选一种,学到手,这不仅仅会提升你的简历,还有可能会为整个社区做贡献。所以,今天就去GitHub 吧!