下一页 上一页 目录

7. 统计与机器学习

所有关于让机器学会做某事,而不是显式编程来做某事的内容。 倾向于处理大量的模式匹配,并且在很大程度上基于数学和统计学。 从技术上讲,连接主义 属于这一类,但它是一个非常大的子领域,我将其放在一个单独的部分。

7.1

用于编写机器学习系统的库或框架。

CognitiveFoundry

Cognitive Foundry 是一个模块化的 Java 软件库,用于认知系统的研究和开发。 它包含许多用于机器学习、统计和认知建模的可重用组件。 它主要设计为易于插入到应用程序中以提供自适应行为。

CompLearn

CompLearn 是一个软件系统,旨在支持各种应用中基于压缩的学习。 它以 ANSI C 编写的库的形式提供这种支持,该库具有高度的可移植性,可以在大多数现代计算机环境中以最小的混乱运行。 它还提供了一小组简单的、可组合的命令行实用程序,作为使用此库的简单应用程序。 CompLearn 与 LibSVM 和 GraphViz 等其他常用机器学习工具一起,构成了机器学习框架和工具包中一个有吸引力的产品。

Elefant

Elefant (高效学习、大规模推理和优化工具包) 是一个开源机器学习库,根据 Mozilla 公共许可证 (MPL) 获得许可。 我们开发了一个开源机器学习工具包,它提供

Maximum Entropy Toolkit

Maximum Entropy Toolkit 提供了一组工具和库,用于在 Python 或 C++ 中构建最大熵 (maxent) 模型。

Maxent Entropy Model 是一个通用的机器学习框架,已被证明在统计自然语言处理、统计物理、计算机视觉和许多其他领域中具有高度的表达能力和强大功能。

Milk

Milk 是 Python 中的一个机器学习工具包。 它的重点是有监督的分类,提供几种分类器:SVM(基于 libsvm)、k-NN、随机森林、决策树。 它还执行特征选择。 这些分类器可以以多种方式组合以形成不同的分类系统。 对于无监督学习,milk 支持 k 均值聚类和亲和力传播。

NLTK

NLTK,自然语言工具包,是一套用于符号和统计自然语言处理的 Python 库和程序。 NLTK 包括图形演示和示例数据。 它附带了大量的文档,包括解释工具包支持的语言处理任务背后基本概念的教程。

NLTK 非常适合正在学习 NLP(自然语言处理)或在 NLP 或密切相关领域(包括实证语言学、认知科学、人工智能、信息检索和机器学习)进行研究的学生。 NLTK 已成功用作教学工具、个人学习工具以及原型设计和构建研究系统的平台。

peach

Peach 是一个纯 Python 模块,基于 SciPy 和 NumPy 实现计算智能和机器学习的算法。 实现的方法包括但不限于人工神经网络、模糊逻辑、遗传算法、群体智能等等。

该库的主要目的是教育。 然而,也注意使所实现的方法非常高效。

pebl

Pebl 是一个 python 库和命令行应用程序,用于在给定先验知识和观察的情况下学习贝叶斯网络的结构。 Pebl 包括以下功能

PyBrain

PyBrain 是一个用于 Python 的模块化机器学习库。 它的目标是为机器学习任务提供灵活、易于使用但功能仍然强大的算法,以及各种预定义的环境来测试和比较您的算法。

PyBrain 包含用于神经网络、强化学习(以及两者的结合)、无监督学习和进化的算法。 由于当前大多数问题都涉及连续状态和动作空间,因此必须使用函数逼近器(如神经网络)来应对大的维度。 我们的库围绕内核中的神经网络构建,所有训练方法都接受神经网络作为要训练的实例。 这使得 PyBrain 成为处理实际任务的强大工具。

MBT

MBT 是一个基于内存的标签生成器和标签器。 标签生成器部分可以根据标记序列的训练集生成序列标签器; 标签器部分可以标记新序列。 例如,MBT 可用于生成自然语言处理的词性标注器或组块器。 它也已用于命名实体识别、特定领域文本中的信息提取以及转录语音中的口吃组块。

MLAP 书籍示例

不是一个库本身,而是 Stephen Marsland 的书籍“机器学习:算法视角”中的大量示例机器学习算法。 所有代码都用 python 编写。

scikits.learn

scikits-learn 是一个 Python 模块,它将经典的机器学习算法集成到紧密集成的科学 Python 包(numpy、scipy、matplotlib)世界中。 它旨在为每个人都可访问且可在各种环境中重用的学习问题提供简单而有效的解决方案:机器学习作为科学和工程的通用工具。

Shogun

该机器学习工具箱的重点是大型内核方法,尤其是支持向量机 (SVM)。 它提供了一个通用的 SVM 对象,可以与几种不同的 SVM 实现接口,其中包括最先进的 LibSVM 和 SVMLight。 每个 SVM 都可以与各种内核结合使用。 该工具箱不仅提供了最常见内核(如线性内核、多项式内核、高斯内核和 Sigmoid 内核)的高效实现,还附带了许多最新的字符串内核,例如,局部改进内核、Fischer 内核、TOP 内核、频谱内核、加权度内核(带移位)。 对于后者,实现了高效的 LINADD 优化。 SHOGUN 还提供了使用自定义预计算内核的自由。 它的一个关键特性是组合内核,它可以由多个子内核的加权线性组合构成,每个子内核不一定在同一域上工作。 可以使用多内核学习来学习最佳子内核权重。 目前,可以处理 SVM 2 类分类和回归问题。 然而,SHOGUN 还实现了许多线性方法,如线性判别分析 (LDA)、线性规划机 (LPM)、(内核)感知器,并具有训练隐马尔可夫模型的特征算法。 输入特征对象可以是密集型、稀疏型或字符串型,类型可以是 int/short/double/char,并且可以转换为不同的特征类型。 预处理器链(例如,减去平均值)可以附加到每个特征对象,从而允许进行动态预处理。

SHOGUN 在 C++ 中实现,并与 Matlab(tm)、R、Octave 和 Python 接口。

timbl

Tilburg Memory Based Learner, TiMBL,是用于 NLP 研究以及从示例中学习分类任务的许多其他领域的工具。 它是 k 最近邻分类器的高效实现。

TiMBL 的特点是

7.2 应用

实现各种面向通用学习的机器学习或统计系统的完整应用程序(即,没有垃圾邮件过滤器等)。

dbacl

dbacl 项目由一组轻量级的 UNIX/POSIX 实用程序组成,可以直接或在 shell 脚本中使用这些实用程序,根据贝叶斯统计原理自动对文本文档进行分类。

Torch5

Torch5 为最先进的机器学习算法提供了类似 matlab 的环境。 它易于使用,并且由于简单快速的脚本语言 (Lua) 和底层 C++ 实现,提供了非常高效的实现。 它根据 BSD 许可证分发。

这是 Torch3 项目的后继者。

Vowpal Wabbit

Vowpal Wabbit 是一种快速的在线学习算法。 它具有

核心算法是损失函数(有几种可用)上的专业梯度下降 (GD)。 该代码应该易于使用。


下一页 上一页 目录