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

    文章

    8541

    浏览量

    136224
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89561

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CIE全国RISC-V创新应用大赛 人脸识别系统介绍与移植

    scikit-learn 等依赖的编译需求,执行以下命令(需管理员权限): 打开命令行,不要进入venv环境,直接输入: sudo apt update && sudo apt
    发表于 11-08 11:19

    一文了解Mojo编程语言

    Mojo 语言的具体介绍: 核心特点 Python 兼容性 Mojo 支持大部分 Python 语法和标准,可直接调用 Python 生态系统中的
    发表于 11-07 05:59

    Python调用API教程

    两个不同系统之间的信息交互。在这篇文章中,我们将详细介绍Python调用API的方法和技巧。 一、用Requests发送HTTP请求 使用Python调用API的第一步是发送HTTP请求,通常
    的头像 发表于 11-03 09:15 320次阅读

    FPGA在机器学习中的具体应用

    随着机器学习和人工智能技术的迅猛发展,传统的中央处理单元(CPU)和图形处理单元(GPU)已经无法满足高效处理大规模数据和复杂模型的需求。FPGA(现场可编程门阵列)作为一种灵活且高效的硬件加速平台
    的头像 发表于 07-16 15:34 2630次阅读

    基于米尔瑞芯微RK3576开发板的创建机器学习环境方案

    】 【米尔-瑞芯微RK3576核心板及开发板】具有6TpsNPU以及GPU,因此是学习机器学习的好环境,为此结合《深度学习的数学——使用Python语言》 1、使用vscode 连接远
    发表于 06-27 11:33

    **【技术干货】Nordic nRF54系列芯片:传感器数据采集与AI机器学习的完美结合**

    技术干货】nRF54系列芯片:传感器数据采集与AI机器学习的完美结合 近期收到不少伙伴咨询nRF54系列芯片的应用与技术细节,今天我们整理几个核心问题与解答,带你快速掌握如何在nRF
    发表于 04-01 00:00

    是否可以使用OpenVINO™部署管理器在部署机器上运行Python应用程序?

    使用 OpenVINO™部署管理器创建运行时软件包。 将运行时包转移到部署机器中。 无法确定是否可以在部署机器上运行 Python 应用程序,而无需安装OpenVINO™ Toolkit 和
    发表于 03-05 08:16

    基于瑞芯微米尔RK3576开发板创建机器学习环境

    及开发板】具有6TpsNPU以及GPU,因此是学习机器学习的好环境,为此结合《深度学习的数学——使用Python语言》 1、使用vscode 连接远程开发板 2、使用conda新建虚
    发表于 02-08 14:44

    嵌入式机器学习的应用特性与软件开发环境

    作者:DigiKey Editor 在许多嵌入式系统中,必须采用嵌入式机器学习(Embedded Machine Learning)技术,这是指将机器
    的头像 发表于 01-25 17:05 1209次阅读
    嵌入式<b class='flag-5'>机器</b><b class='flag-5'>学习</b>的应用特性与软件开发环境

    使用Python实现xgboost教程

    装: bash复制代码conda install -c conda-forge xgboost 2. 导入必要的 在你的Python脚本或Jupyter Notebook中,导入必要的
    的头像 发表于 01-19 11:21 2207次阅读

    适用于MySQL和MariaDB的Python连接器:可靠的MySQL数据连接器和数据

    和 MariaDB 数据服务器以及托管数据服务,以对存储的数据执行创建、读取、更新和删除操作。该解决方案完全实现了 Python DB API 2.0 规范,并作为 Windows、macOS
    的头像 发表于 01-17 12:18 843次阅读
    适用于MySQL和MariaDB的<b class='flag-5'>Python</b>连接器:可靠的MySQL数据连接器和数据<b class='flag-5'>库</b>

    适用于Oracle的Python连接器:可访问托管以及非托管的数据

    适用于 Oracle 的 Python 连接器 适用于 Oracle 的 Python 连接器是一种可靠的连接解决方案,用于从 Python 应用程序访问 Oracle 数据服务器和
    的头像 发表于 01-14 10:30 737次阅读

    传统机器学习方法和应用指导

    在上一篇文章中,我们介绍了机器学习的关键概念术语。在本文中,我们会介绍传统机器学习的基础知识和多种算法特征,供各位老师选择。 01 传统机器
    的头像 发表于 12-30 09:16 1968次阅读
    传统<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法和应用指导

    如何选择云原生机器学习平台

    当今,云原生机器学习平台因其弹性扩展、高效部署、低成本运营等优势,逐渐成为企业构建和部署机器学习应用的首选。然而,市场上的云原生机器
    的头像 发表于 12-25 11:54 696次阅读

    zeta在机器学习中的应用 zeta的优缺点分析

    的应用(基于低功耗广域物联网技术ZETA) ZETA作为一种低功耗广域物联网(LPWAN)技术,虽然其直接应用于机器学习的场景可能并不常见,但它可以通过提供高效、稳定的物联网通信支持,
    的头像 发表于 12-20 09:11 1624次阅读