前言:那些流行的机器学习项目之所以受欢迎,一般是因为其提供了一种多数人需要的服务,或是因为它们是第一个(也许是最好的)针对特定用户提供服务的。那些最流行的项目包括 Scikit-learn、TensorFlow、 Theano、MXNet 、Weka 等。根据个人使用的工作系统、深度学习目标不同,不同的人认为流行的项目可能会有些许差异。然而,这些项目共有的特性是它们都面向大量的用户提供服务。但是仍然存在很多小型的机器学习项目:pipelines、wrappers、high-level APIs、cleaners 等,通常来说这些项目都是针对小规模的用户群提供好用且灵活的服务。
本文将介绍十种不那么有名的机器学习项目,你也可能从这些项目中获得一些不错的启发。不建议你去尝试所有的项目,但是如果里面刚好有你需要的某个功能,请尽管去试一试。
以下即十大你不可忽视的机器学习项目(排名不分先后):
1. Deepy
Deepy 由 Raphael Shu 开发,是一个基于 Theano 扩展深度学习框架,它提供了一个简洁的、高阶的组件(如 LSTMs)、批规范化、自动编码等功能。Deepy 宣称其框架是十分简洁明了的,它的官方文档和示例也同样如此。
Deepy 工作原理:在给定训练数据和参数(随机初始化)下运行模型,将错误(或梯度)反馈并更新参数,这个过程反复进行。
2. MLxtend
MLxtend 由 Sebastian Raschka 开发,是一系列有效工具的集合,也是针对机器学习任务的扩展。Sebastian Raschka 提到 MLxtend 本质上是一些有效的工具集,也是与机器学习和数据科学相关的参考资料。他提到开发 MLxtend 主要是基于以下几个原因:
一些其他地方找不到的特定算法(如序列特征选择算法、多数表决分类器、叠加预估、绘图决策区域等)
用于教学目的(逻辑回归、Softmax 回归、多层感知器、PCA、PCA 内核等)这些实现主要关注于代码的可读性,而不是单纯的效率
打包便利:tensorflow、Softmax 回归和多层感知器
MLxtend 基本上是 Sebastian Raschka 所写的一个机器学习运行常用的库,其中很多功能的实现都与 scikit-learn 的 API 相似,但作者仍在持续更新中,且作者表示所有的新增特性与创新的算法都会一起打包在 MLxtend 中。
3. datacleaner
datacleaner 由 Randal Olson 开发,他认为自己开发的 datacleaner 是一个“能自动清除数据集并且让它们便于分析的 Python 工具。”他认为:datacleaner 所做的将会节约你大量的编码和清理数据的时间。
datacleaner 还处于开发过程中,但目前已经能够处理以下常规(传统方式下耗时量巨大的)数据清洗任务:
在列的基础上,用模式或中位数替换丢失的值
用数值等价物对非数值变量进行编码等
4. auto-sklearn
auto-sklearn 由德国弗莱堡大学机器学习自动算法小组开发,是针对 Scikit-learn 环境的自动机器学习工具。
auto-sklearn 能将机器学习用户从算法选择和高参数调整中解救出来,它利用了近期在贝叶斯优化、元学习和集成构筑上研究的优势。其大致工作原理如下:
5. Deep Mining
Deep Mining 由来自 MIT CSAIL 实验室的 Sebastien Dubois 开发,是一个机器学习深管道自动调谐器。为了尽快实现最好的分类精度,该软件将迭代、智能地测试一些超参数集。
另外值得一提的是文件夹 GCP-HPO 包含所有高斯过程(GCP)的实现代码以及基于其基础上的超参数优化(HPO)。高斯过程(GCP)可以看作是一种改进的版本。这项新技术被证明优于基于 GP 的超参数优化,已经远比随机搜索表现要好。
6. Rusty Machine
Rusty Machine 是基于 Rust 的机器学习方法,Rust 是由 Mozilla 赞助开发的一种与C和 C++ 较为相似的计算机编程语言,其号称“Rust 是一种系统的编程语言,运行速度极快,可以防止错误,并保证线程安全。”
Rusty Machine 的开发者是否活跃,目前支持一系列想学习技术,包括:线性回归、逻辑回归、k-均值聚类、神经网络、支持向量机等等。
Rusty Machine 还支持数据结构,如内置向量和矩阵。作为一种常见的模型接口,Rusty Machine 为每个支持的模型提供了训练和预测的功能。
7. scikit-image
(责任编辑:admin)