来自:开源中国 编辑部
链接:https://my.oschina.net/editorial-story/blog/1068830(点击尾部阅读原文前往)
Python 由于本身的易用优势和强大的工具库储备,成为了在人工智能及其它相关科学领域中最常用的语言之一。尤其是在机器学习,已然是各大项目最偏爱的语言。
其实除了 Python ,也不乏有开发者用其他语言写出优秀的机器学习项目。在上期的文章中(除了 Python ,这些语言写的机器学习项目也很牛(一)),我们已经列了一些其他语言(C、C++、Go、Java、Javascript)值得关注的开源机器学习项目,本期将针对 PHP、Ruby、Objective C、Swift、Scala 进行补全,同时应上期留言要求,在文末列了一些 .NET 平台上的机器学习项目。
1、PHP
PHP-ML —— 机器学习库
PHP-ML 是 PHP 的机器学习库,同时包含算法、交叉验证、神经网络、预处理、特征提取等多种特性。要求 PHP 版本 > = 7.0 。
PHP-ML 提供的机器学习算法包括:关联规则学习(Apriori 算法)、分类器(SVC、KNN、贝叶斯)、回归(最小二乘线性回归、支持向量回归)、聚类(KMeans、基于密度的聚类算法)、矩阵运算相关(准确率、混肴矩阵、与分类相关的结论如精确度、召回率、F1 值、支持率)、模型运算管道(Pipeline)、神经网络(多层感知机)等。
2、Ruby
Treat ——自然语言处理框架
Treat 是一个自然语言处理和计算语言学的工具包。Treat 项目旨在为 Ruby 构建一个语言和算法均不可知的 NLP 框架,支持文档检索、文本分块、分段和标记化等任务,自然语言解析,词性标注,关键字提取和命名实体识别。
Classifier —— 通用分类器模块
Classifier 是可用贝叶斯算法及其他分类法的通用分类器模块。贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类,具有准确、快速、内存要求适当等特点。
3、Objective C
MLPNeuralNet —— 多层感知器
MLPNeuralNet 是适用于 iOS 和 Mac OS X 的快速多层感知器神经网络库。它使用矢量操作和硬件加速(如果可用)构建在苹果加速框架之上,通过训练有素的神经网络预测新的示例。
4、Swift
Bender —— 机器学习框架
Bender 是 MetalPerformanceShaders 之上的一个抽象层(abstraction layer),可用于操作神经网络,旨在更轻松地在 iOS 上运行预训练的网络。它可以让你轻松使用卷积、池化、全连接和一些规范化等最常见的层,从而轻松地定义和运行神经网络。
目前 Bender 有一个用于 TensorFlow 的适配器(adapter),其可以加载带有变量的图(graph),并将其「翻译」成 Bender 的层(layer)。
Swift AI —— 深度学习库
Swift AI 是一个完全由 Swift 编写的高性能 AI 和机器学习库,包含用于人工智能和科学应用的常用工具集,支持卷积神经网络、循环神经网络、遗传算法库、快速线性代数库、信号处理库等。这些工具采用先进的并行处理技术,专门针对 iOS 和 OS X 硬件进行了优化,目前支持所有的 Apple 平台,并计划推出 Linux 版本支持。
5、Scala
Breeze —— 数值处理库
Breeze 是一个数值处理库,是 ScalaNLP 的核心库,包括线性代数、数值计算和优化,目标是实现通用、干净、强大,且不牺牲性能(高效)的机器学习方法。
ScalaNLP 包含 Breeze 和 Epic(一个高性能的统计解析器和结构化预测库)。
BIDMach —— 机器学习库
BIDMach 是一个速度非常快的机器学习库,支持逻辑回归、K-means、矩阵分解、随机森林、LDA 等。它是BIDMat 的一个姊妹项目,BIDMat 是一个矩阵库。
BIDMach 在一些评测中甚至跑出了比 Spark 还好的结果。
6、.NET
numl —— 机器学习框架
numl 是一个小巧的,包含比较多的机器学习算法类库,支持监督式和非监督式学习。支持很多常见的机器学习算法,包括 Cluster、KMeans、PCA、DecisionTree、KNN、NaiveBayes、NeuralNetwork 等学习算法,功能强大,同时也包括一些数值计算的实现。
Accord.NET —— 机器学习框架
Accord.NET 为 .NET 提供机器学习、统计、人工智能、计算机视觉和图像处理方法。它可以在 Microsoft Windows、Xamarin、Unity3D、Windows Store 应用,Linux 和移动设备上使用。
在与 AForge.NET 项目合并之后,该框架现在提供了一个用于学习/训练机器学习模型的统一 API ,其易于使用和可扩展。
附:《除了 Python ,这些语言写的机器学习项目也很牛(一)》
1、C
Darknet —— 神经网络框架
Darknet 是一个用 C 和 CUDA 编写的开源神经网络框架。它快速,易于安装,并支持 CPU 和 GPU 计算。
CCV —— 计算机视觉库
CCV 是 C-based/Cached/Core Computer Vision Library 的简称, 它是一个现代的计算机视觉库。
CCV 是一种以应用驱动的算法库,比如对静态物体(如人脸)的快速检测算法、对某些不容易定位物体(如猫)的准确检测算法、艺术文本的检测算法、长期目标的跟踪算法和特征点检测算法。
2、C++
CNTK —— 深度学习工具包
微软出品的开源深度学习工具包,它把神经网络描述成一个有向图的结构,叶子节点代表输入或者网络参数,其他节点计算步骤。
CNTK 不仅使深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)和长短时记忆单元(LSTM)的实现变得非常容易,还支持多个 GPU 组合、服务器自动分化和并行的随机梯度下降(SGD)学习。
Caffe —— 深度学习框架
Caffe 是一个清晰而又高效的深度学习框架,模型与相应优化都是以文本形式而非代码形式给出,并给出了模型的定义、最优化设置以及预训练的权重,方便立即上手。同时,它能够运行最棒的模型与海量的数据,也能很方便扩展到新的任务和设置上。
Kaldi —— 语音识别工具包
Kaldi 是用 C ++ 编写的语言识别工具包,旨在供语音识别研究人员使用,且易于修改和扩展。它在设计之初就尽可能地以最通用的形式提供的算法,以保证其可扩展性。
3、Go
CloudForest —— 决策树组合算法
纯 Go 编写的快速、灵活、多线程的决策树,允许一些相关的算法用于具有缺失值的异构数据的分类、回归、特征选择和结构分析。它可以实现更快的训练时间,非常适合现代处理器来学习二进制。
4、Java
CoreNLP —— 自然语言处理工具
coreNLP 是斯坦福大学开发的一套关于自然语言处理的工具,使用简单功能强大。它可以通过输入原始文本,给出单词的基本形式,它们的词性、公司、人员的名称、解释日期、时间和数量等等。它最初针对英语开发,但现在也已支持中文。
H2O —— 机器学习和预测分析框架
H2O 是一个分布式的、基于内存的、可扩展的机器学习和预测分析框架,适合在企业环境中构建大规模机器学习模型。它使用开发者熟悉的界面,可与 Hadoop 和 Spark 等大型数据技术无缝工作。它也提供许多流行算法的实现,例如 GBM、Random Forest、Deep Neural Networks、Word2Vec 等。
Deeplearning4J —— 分布式神经网络库
Deeplearning4J 是一个使用 Java 和 Scala 编写的分布式神经网络库,集成了 Hadoop 和 Spark ,设计用于运行在分布式 GPU 和 CPU 上的商业环境。它即插即用,方便开发者在 APP 中快速集成深度学习功能
Deeplearning4j 包括了分布式、多线程的深度学习框架,以及普通的单线程深度学习框架。
5、Javascript
Natural —— 自然语言处理工具
node.js 下用的自然语言处理工具,支持词法分析、词干分析、分类、语音、反比文档频数权重评价、WordNet、字符串相似度等处理。
ConvNetJS —— 深度学习库
ConvNetJS 是一个基于 JavaScript 的深度学习库,可以让你在浏览器中训练深度网络。它可以帮助深度学习初学者更快、更直观的理解算法通,过一些简单的 Demo 给用户最直观的解释。
●本文编号353,以后想阅读这篇文章直接输入353即可。
●输入m获取文章目录
算法与数据结构
更多推荐:《18个技术类微信公众号》
涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。