KDnuggets 本月最受欢迎:5 个不容错过的机器学习项目

【新智元导读】受欢迎的机器学习项目很多,它们受欢迎的程度体现在在 GitHub 上获得的星数(Star)。新智元不久前介绍了 GitHub 上星数最多的16个深度学习应用项目,本文作者发掘了几个数据科学和机器学习被人错过的好项目。即使你不需要使用这些特定的工具,但检查它们的实现细节或项目的代码,可能带给你一些新的启发。

Hyperopt-sklearn

Star:219

GitHub地址:https://github.com/hyperopt/hyperopt-sklearn

Hyperopt-sklearn 是基于 Hyperopt 的模型,用于 scikit-learn 项目中的机器学习算法。项目文档里的介绍如下:

找到适用你的数据的正确分类器可能很难。选好分类器后,为了获得最佳结果而对所有参数进行微调也非常乏味而且耗时。而且有可能在你做完所有这些艰苦的工作后,才发现从一开始就选择了错误的分类器。Hyperopt-sklearn 为这些问题提供了解决方案。

Hyperopt-sklearn 使用多种搜索算法,可以搜索所有(支持的)分类器,或仅在给定分类器的参数空间内进行搜索,并且支持多种预处理步骤,如 PCA,TfidfVectorizer,Normalzier 和 OneHotEncoder。

那么它的效果如何?

下表是使用 scikit-learn 的默认参数运行分类器得到的F1分数,以及在20个新闻组数据集上的 hyperopt-sklearn 优化参数。hyperopt-sklearn 的结果来自25次评估的单次运行。

Hyperopt-sklearn 只需非常少的额外代码,并有一些方便的快速启动代码。

Dlib

Star:1281

GitHub地址:https://github.com/davisking/dlib

Dlib 是一个通用的工具包,用于使用C++进行机器学习和数据分析应用。它是用C++编写的,也有一个 Python API。

官网的介绍如下:

Dlib 是一个现代C++工具包,包含机器学习算法和工具,用于使用C++创建复杂的软件来解决现实问题。它在工业界和学术界的各领域都有广泛应用,包括机器人、嵌入式设备、移动电话和大型高性能计算环境。

文档达到标准,API也得到很好的解释,并且该项目带有简明的介绍。博客社区也很活跃,介绍了一些有趣的项目。Dlib 不是新的项目,它自2002年以来一直在发展。

NN++

Star:184

GitHub地址:https://github.com/stagadish/NNplusplus

NN++ 是一个 C++ 实现的轻量级、非常容易使用的神经网络,它无需安装,直接 #include 即可。

项目repo的介绍如下:

NN++是一个简短,自包含,易于使用的C++神经网络实现。它包括神经网络实现和一个用于基本线性代数运算的 Matrix class。这个项目主要是为学习目的而建,但在 MNIST 数据集的初步测试结果显示了不错的性能。

它的文档是稀疏的,但需要额外解释伴随的 Matrix class 的使用。GitHub库中的一些代码片段解释了如何设置和查询神经网络。这里的代码是最小限度的,所以想要了解简单的神经网络或从其他语言直接跳到用C++实现网络,这个项目是值得一看的。

LightGBM

Star:2362

GitHub地址:https://github.com/Microsoft/LightGBM

LightGBM 是微软的一个实现GBDT算法的框架,支持高效率的并行训练。官方repo的介绍如下:

一个基于决策树算法的快速、分布式、高性能的梯度提升(GBDT,GBRT,GBM 或 MART)框架,通常用于排序、分类等机器学习任务。它是微软的 DMTK(分布式机器学习工具包)下的一个项目。

LightGBM 用 C++ 和 Python 编写,提供了快速入门指南,并行学习指南以及功能的概述。

它的表现如何呢?

使用公共数据集的实验表明,LightGBM 在效率和准确度方面均优于其他现有的 boosting 框架,并且内存消耗也显著低于其他框架。此外,实验表明,LightGBM 能够通过在特定设置中使用多台机器进行训练来实现线性加速。

LightGBM 有许多功能,值得一试。

Sklearn-pandas

Star:763

GitHub地址:https://github.com/paulgb/sklearn-pandas

前面介绍的项目都是通用的机器学习工具包,或是特定算法的实现。这个项目有点不同,它在机器学习任务中发挥着支持性的作用。

Sklearn-pandas 是一个正在开发的模块,它的 GitHub 库介绍中写道,它“在 Scikit-Learn 的机器学习方法和 pandas 风格的数据框架之间架起了桥梁”。

具体来说,它规定了以下两点:

  • 将 DataFrame 的列映射到变换的方法,这些变换以后会重新组合到特征中。
  • 旧的 scikit-learn 版本的交叉验证 pineline 的兼容性垫片(compatibility shim),需要一个pandas DataFrame 作为输入。 这只需要 scikit-learn <0.16.0。这已被弃用,可能会在 skearn-pandas == 2.0 中被删除。

这里的真正用处是将列(columns)映射到变换(transformations)。下面是 GitHub 仓库的一个代码片段:

需要注意的是,前三列是 LabelBinarizer 的输出(分别对应_cat_,_dog_和_fish_),第四列是children 数量的标准值。通常情况下,columns 根据构建 DataFrameMapper 时给定的顺序进行排序。

原文地址:http://www.kdnuggets.com/2017/01/five-machine-learning-projects-cant-overlook-january.html

本文分享自微信公众号 - 新智元(AI_era)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-01-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

教你用300万共享单车出行数据,预测骑行目的地 !(附源码)

标注数据中包含300万条出行记录数据,覆盖超过30万用户和40万摩拜单车。数据包括骑行起始时间和地点、车辆ID、车辆类型和用户ID等信息。参赛选手需要预测骑行目...

18020
来自专栏机器之心

TensorFlow发布重要更新AutoGraph,自动将Python转化为TF计算图

作者:Alex Wiltschko、Dan Moldovan、Wolff Dobson

19940
来自专栏算法+

简洁明了的插值音频重采样算法例子 (附完整C代码)

近一段时间在图像算法以及音频算法之间来回游走。 经常有一些需求,需要将音频进行采样转码处理。 现有的知名开源库,诸如: webrtc , sox等, 代码阅读起...

1.7K80
来自专栏ATYUN订阅号

NVIDIA发布了TensorRT 4,极大加速神经机器翻译

NVIDIA发布了TensorRT 4,其新功能可加速GPU上神经机器翻译(NMT)应用的推断。

17740
来自专栏AI科技大本营的专栏

干货 | 谷歌BERT模型fine-tune终极实践教程

从11月初开始,Google Research就陆续开源了BERT的各个版本。Google此次开源的BERT是通过TensorFlow高级API—— tf.es...

61310
来自专栏量子位

看文本知语义:谷歌推一步到位自然语言理解框架SLING | 论文+代码

夏乙 编译自 Google Research Blog 量子位 出品 | 公众号 QbitAI 大多数自然语言理解(NLU)系统分析语言的过程是一条由分析步骤组...

48090
来自专栏机器之心

业界 | 苹果博客:高效可扩展的规模化、多样化隐私学习

37160
来自专栏机器之心

从Caffe2到TensorFlow,十种框架构建相同神经网络效率对比

35440
来自专栏大数据文摘

R的基本绘图功能

19150
来自专栏技术专栏

《数据仓库工具箱》- 第三章零售业务中的知识点汇总

维度定义的是谁,什么时候,在哪的问题,作为聚合查询中的查询条件,分组条件,排序条件

21920

扫码关注云+社区

领取腾讯云代金券