前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KDnuggets 本月最受欢迎:5 个不容错过的机器学习项目

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

作者头像
新智元
发布2018-03-27 10:40:52
6700
发布2018-03-27 10:40:52
举报
文章被收录于专栏:新智元新智元新智元

【新智元导读】受欢迎的机器学习项目很多,它们受欢迎的程度体现在在 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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
TI-ONE 训练平台
TI-ONE 训练平台(以下简称TI-ONE)是为 AI 工程师打造的一站式机器学习平台,为用户提供从数据接入、模型训练、模型管理到模型服务的全流程开发支持。TI-ONE 支持多种训练方式和算法框架,满足不同 AI 应用场景的需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档