0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python机器学习库谈Scikit-learn技术

深度学习自然语言处理 来源:NewBeeNLP公众号 作者:Rebecca Vickery 2020-08-27 17:34 次阅读

Scikit-learn是使用最广泛的Python机器学习库之一。它有标准化和简单的接口,用于数据预处理和模型训练、优化以及评估。

这个项目最初是由David Cournapeau 开发的Google Summer of Code 项目,并于2010年首次公开发布。自创建以来,该库已经发展成为一个丰富的生态系统,用于开发机器学习模型。随着时间的推移,该项目开发了许多方便的功能,以增强其易用性。在本文中,我将介绍你可能不知道的10个关于Scikit-learn最有用的特性。

1. 内置数据集

Scikit-learn API内置了各种toy和real-world数据集[1]。这些可以便捷地通过一行代码访问,如果你正在学习或只是想快速尝试新功能,这会非常有用。

你还可以使用make_regression()、make_blobs()和make_classification()生成合成数据集。所有加载实用程序都提供了返回已拆分为X(特征)和y(目标)的数据选项,以便它们可以直接用于训练模型。

2. 获取公开数据集

如果你想直接通过Scikit-learn访问更多的公共可用数据集,请了解,有一个方便的函数datasets.fetch_openml,可以让您直接从openml.org网站[2]获取数据。这个网站包含超过21000个不同的数据集,可以用于机器学习项目。

3. 内置分类器来训练baseline

在为项目开发机器学习模型时,首先创建一个baseline模型是非常有必要的。这个模型在本质上应该是一个“dummy”模型,比如一个总是预测最频繁出现的类的模型。这就提供了一个基准,用来对你的“智能”模型进行基准测试,这样你就可以确保它的性能比随机结果更好。

Scikit learn包括用于分类任务的DummyClassifier() 和用于基于回归问题的 DummyRegressor()。

4. 内置绘图api

Scikit learn有一个内置的绘图API,允许你在不导入任何其他库的情况下可视化模型性能。包括以下绘图:部分相关图、混淆矩阵、精确召回曲线和ROC曲线。

5. 内置特征选择方法

提高模型性能的一种技术是只使用最好的特征集或通过删除冗余特征来训练模型。这个过程称为特征选择。

Scikit learn有许多函数来执行特征选择。一个示例为 SelectPercentile(),该方法根据所选的统计方法选择性能最好的X百分位特征进行评分。

6. 机器学习pipeline

除了为机器学习提供广泛的算法外,Scikit learn还具有一系列用于「预处理」「转换数据」的功能。为了促进机器学习工作流程的再现性和简单性,Scikit learn创建了管道(pipeline),允许将大量预处理步骤与模型训练阶段链接在一起。

管道将工作流中的所有步骤存储为单个实体,可以通过「fit」「predict」方法调用该实体。在管道对象上调用fit方法时,预处理步骤和模型训练将自动执行。

7. ColumnTransformer

在许多数据集中,你将拥有不同类型的特征,需要应用不同的预处理步骤。例如,可能有分类数据和连续数据的混合,你可能希望通过one-hot编码将分类数据转换为数字,并缩放数字变量。

Scikit-learn管道有一个名为ColumnTransformer的函数,它允许你通过索引或指定列名来轻松指定要对哪些列应用最适当的预处理。

8. 管道的HTML形式

管道通常会变得非常复杂,尤其是在处理真实世界的数据时。因此,scikit-learn提供了一种方法来输出管道中步骤的HTML图表[3],非常方便。

9. 可视化 树模型

plot_tree() 函数允许你创建决策树模型中的步骤图。

10. 丰富的第三方扩展

许多第三方库可以更好地扩展scikit-learn的特性。举个栗子,category-encoders库,它为分类特性提供了更大范围的预处理方法,以及ELI5包以实现更大的模型可解释性。这两个包也可以直接在Scikit-learn管道中使用。

本文参考资料

[1]toy和real-world数据集: https://scikit-learn.org/stable/datasets/index.html

[2]openml.org网站: https://www.openml.org/home

[3]HTML图表: https://scikit-learn.org/stable/modules/compose.html#visualizing-composite-estimators

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8132

    浏览量

    130574
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83476

原文标题:关于Scikit-Learn你(也许)不知道的10件事

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    线性回归模型的基础知识

    我准备使用scikit-learn给大家介绍一些模型的基础知识,今天就来讲讲 线性回归模型 。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问
    的头像 发表于 10-31 10:54 234次阅读
    线性回归模型的基础知识

    NNI:自动帮你做机器学习调参的神器

    Keras TensorFlow MXNet Caffe2 Scikit-learn XGBoost LightGBM 基本上市
    的头像 发表于 10-30 10:28 1798次阅读
    NNI:自动帮你做<b class='flag-5'>机器</b><b class='flag-5'>学习</b>调参的神器

    学习Python的双重选择: 树莓派和行空板

    Python是一种流行并简单和易用的编程语言, 吸引了众多初学者和专业开发人员。许多人选择使用树莓派(Raspberry Pi)作为学习Python的工具,因为它体积小、价格实惠,并且提供了将编程
    的头像 发表于 09-08 13:53 340次阅读

    机器学习技术是什么?机器学习技术在新型电力系统安全稳定中的应用

    机器学习技术是什么?机器学习技术在新型电力系统安全稳定中的应用
    的头像 发表于 08-17 16:30 795次阅读

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?
    的头像 发表于 08-17 16:30 1406次阅读

    python数据挖掘与机器学习

    python数据挖掘与机器学习 Python是一个非常流行的编程语言,被广泛用于数据挖掘和机器学习
    的头像 发表于 08-17 16:29 889次阅读

    python机器学习概述

    Python机器学习概述 机器学习是人工智能领域的一个重要分支,是一种可以自动改进和学习的算法。
    的头像 发表于 08-17 16:11 768次阅读

    python编程能干什么 用python做一个简单的游戏

    Python在人工智能和机器学习领域具有广泛的应用。有诸多流行的库和框架,如TensorFlow、PyTorch和Scikit-learn,可用于构建和训练
    的头像 发表于 08-15 14:40 750次阅读
    <b class='flag-5'>python</b>编程能干什么 用<b class='flag-5'>python</b>做一个简单的游戏

    人工智能为什么用python

    强大的库和框架支持:Python拥有丰富的开源类库和框架来支持人工智能开发,如: TensorFlow、Scikit-learn、PyTorch、Keras等,这些库和框架的使用可以让人工智能开发变得更加高效和容易。
    的头像 发表于 08-13 14:07 1548次阅读

    python和人工智能有什么关系

    机器学习是人工智能中的一个重要领域,其目标是从数据中自动捕捉模式和规律。Python提供了几个流行的机器学习框架,包括
    的头像 发表于 08-13 10:38 1194次阅读

    如何使用Arm CMSIS-DSP实现经典机器学习

    。 CMSIS-DSP中提供的经典ML函数仅适用于float32。 要完成本指南,您应该知道如何构建CMSIS-DSP。 您还需要安装以下资源: •CMSIS-DSP的副本。 •带有scikit-learn包的Python 3。
    发表于 08-02 07:12

    21句话入门机器学习

    【编者按】这是一篇关于机器学习工具包Scikit-learn的入门级读物。对于程序员来说,机器学习的重要性毋庸赘言。也许你还没有开始,也许曾
    的头像 发表于 07-31 23:44 419次阅读
    21句话入门<b class='flag-5'>机器</b><b class='flag-5'>学习</b>

    21 句话入门机器学习

    【编者按】这是一篇关于机器学习工具包Scikit-learn的入门级读物。对于程序员来说,机器学习的重要性毋庸赘言。也许你还没有开始,也许曾
    的头像 发表于 07-25 11:30 261次阅读
    21 句话入门<b class='flag-5'>机器</b><b class='flag-5'>学习</b>

    iMX8M Plus将机器学习添加到Yocto精简固件映像?

    我想知道conf/local.conf有什么必要的修改,以便添加机器学习和其他东西,以便在板上部署 AI 功能而不需要 bitbaking imx-image-full,请问?换句话说,我希望固件
    发表于 06-07 06:16

    Python机器人上位机

    Python写GUI的插件比较多,常用的有Tkinter、pyqt5,本将使用pyqt5写机器人的上位机。Tkinter 是 Python的标准 GUI 库,是Python推荐使用的界
    发表于 05-09 11:10 0次下载
    <b class='flag-5'>Python</b>写<b class='flag-5'>机器</b>人上位机