机器/深度学习ganitha、MLPACK、Mallet、Shark C++介绍

以下为你介绍的机器学习/深度学习软件都可用在Linux系统上:ganitha(机器学习库)、MLPACK(C++ 的机器学习库)、Mallet(机器学习软件包)、Shark C++(C++机器学习库)。

1、ganitha(机器学习库)

Tresata自豪地发布了我们的第一个开源库Ganitha,Ganitha源自梵语中的数学或计算科学。

ganitha 包含一组算法用来实现在 Hadoop 平台是的各种规模的机器学习和统计分析。

当前要开源的部分是我们将Mahout向量集成到Scalding中,我们的聚类(K-Means)实现和Naive-Bayes分类器。

下载地址:https://github.com/tresata/ganitha

2、MLPACK(C++ 的机器学习库)

机器/深度学习ganitha、MLPACK、Mallet、Shark C++介绍

mlpack是一个C++的机器学习库,它重点在于其扩展性、高速性和易用性。它的目的是让新用户通过简单、一致的API使用机器学习,同时为专业用户提供C++的高性能和最大灵活性。他的性能超出大量类似的机器学习库,如WEKA、Shogun、MATLAB、mlpy及sklearn,这一对比工作可以参考文献[1]。

mlpack含有丰富的文档和教程,可以参考项目主页。教程中包含的算法有:近邻搜索(NeighborSearch)、范围搜索(RangeSearch)、线性回归(LinearRegression)、欧几里德最小生成树(The Euclidean Minimum Spanning Tree)、K-均值(K-Means)、FastMKS(Fast max-kernel search)等。

mlpack提供了大量的类或API供程序调用,同时还提供了很多可执行程序供不懂C++的用户使用。这些可执行文件包括:allkfn, allknn, emst, gmm, hmm_train, hmm_loglik, hmm_viterbi, hmm_generate, kernel_pca, kmeans, lars, linear_regression, local_coordinate_coding, mvu, nbc, nca, pca, radical, sparse_coding。

示例代码:

#include<mlpack/methods/range_search/range_search.hpp>using namespace mlpack::range;

// Our dataset matrix, which is column-major.

extern arma::mat dataset;

// The 'true' option indicates that we will use naive calculation.

RangeSearch<> a(dataset, true);

// The vector-of-vector objects we will store output in.

std::vector> resultingNeighbors;

std::vector> resultingDistances;

// The range we will use.  The upper bound is DBL_MAX.

math::Range r(5.0, DBL_MAX); // [5.0, inf).

a.Search(r, resultingNeighbors, resultingDistances);

下载地址:http://mlpack.org/

3、Mallet(机器学习软件包)

Mallet是专门用于机器学习方面的软件包,此软件包基于java。通过mallet工具,可以进行自然语言处理、文本分类、主题建模、文本聚类、信息抽取等。

MALLET包括用于文档分类的复杂工具:用于将文本转换为“features”的有效例程,多种算法(包括朴素贝叶斯,最大熵和决策树),以及用于使用几种常用指标评估分类器性能的代码。

除分类外,MALLET还包括用于为诸如从文本中提取命名实体之类的应用程序进行序列标记的工具,算法包括隐马尔可夫模型,最大熵马尔可夫模型和条件随机场,这些方法在用于有限状态传感器的可扩展系统中实现。

MALLET主题建模工具包包含潜在Dirichlet分配,Pachinko分配和分层LDA的高效,基于采样的实现。

MALLET中的许多算法都依赖于数值优化,MALLET包括有限内存BFGS的有效实现以及许多其他优化方法。

除了复杂的机器学习应用程序之外,MALLET还包括用于将文本文档转换为数字表示形式的例程,然后可以对其进行有效处理,该过程是通过管道的灵活系统实现的,该系统处理不同的任务,例如标记字符串,删除停用词以及将序列转换为计数向量。

MALLET的附加程序包称为GRMM,它包含对一般图形模型中推理的支持以及对具有任意图形结构的CRF的训练。

最后,该工具包是开源软件,并根据通用公共许可证发行,欢迎您根据许可条款将代码用于研究或商业目的。

下载地址:http://mallet.cs.umass.edu/

4、Shark C++(C++机器学习库)

Shark是一个快速、模块化、功能丰富的开源C++机器学习库,提供了各种机器学习相关技术,比如线性/非线性优化、基于内核学习算法、神经网络等。Shark已经应用于多个现实项目中。

机器学习(Machine Learning)是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身 的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。

Shark目前提供的机器学习功能如下:

1]、监督式学习

线性判别分析(LDA),Fisher–LDA、朴素贝叶斯分类器、线性回归、针对单类分类,二进制和真实多类分类的支持向量机(SVM)、多层前馈和周期性的人工神经网络、径向基核函数(Radial basis function)网络、正则化网络,高斯过程回归、最近邻迭代,回归迭代、决策树和随机森林。

2]、无监督学习

主成分分析、有限玻尔兹曼机(包括许多最先进的学习算法)、分层聚类、高效的基于距离聚类的数据结构。

3]、演化算法

单目标优化(例如CMA-ES)、多目标优化。

4]、模糊系统

5]、基本线性代数和优化算法

注明

以上就是机器/深度学习ganitha、MLPACK、Mallet、Shark C++的介绍内容,这些机器学习/深度学习软件都能使用在Linux操作系统中。

栏目相关文章