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

    文章

    8516

    浏览量

    135130
  • python
    +关注

    关注

    56

    文章

    4832

    浏览量

    87835

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于米尔瑞芯微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

    使用Python实现xgboost教程

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

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

    和 MariaDB 数据服务器以及托管数据服务,以对存储的数据执行创建、读取、更新和删除操作。该解决方案完全实现了 Python DB API 2.0 规范,并作为 Windows、macOS
    的头像 发表于 01-17 12:18 ?575次阅读
    适用于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 ?538次阅读

    Arm成功将Arm KleidiAI软件集成到腾讯自研的Angel 机器学习框架

    Arm 与腾讯携手合作,成功将 Arm KleidiAI 软件集成到腾讯自研的 Angel 机器学习框架。 ? 借助 KleidiAI 解锁卓越性能、能效和可移植性,腾讯混元大模型能够实现更快
    的头像 发表于 11-24 15:33 ?1410次阅读

    使用Python进行串口通信的案例

    当然!以下是一个使用Python进行串口通信的简单示例。这个示例展示了如何配置串口、发送数据以及接收数据。我们将使用 pyserial ,这是一个非常流行的用于串口通信的Python
    的头像 发表于 11-22 09:11 ?1649次阅读

    什么是机器学习?通过机器学习方法能解决哪些问题?

    计算机系统自身的性能”。事实上,由于“经验”在计算机系统中主要以数据的形式存在,因此机器学习需要设法对数据进行分析学习,这就使得它逐渐成为智能数据分析技术的创新源之一,
    的头像 发表于 11-16 01:07 ?1116次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?通过<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法能解决哪些问题?

    如何使用Python构建LSTM神经网络模型

    : NumPy:用于数学运算。 TensorFlow:一个开源机器学习,Keras是其高级API。 Keras:用于构建和训练深度学习模型。 你可以使用pip来安装这些
    的头像 发表于 11-13 10:10 ?1787次阅读

    Python编程:处理网络请求的代理技术

    在网络编程中,代理技术扮演着至关重要的角色,尤其在处理网络请求时。通过代理服务器,我们可以实现请求的转发、缓存、负载均衡以及安全控制等功能。Python作为一种功能强大的编程语言,为提供了丰富的工具和,以便敏捷地实现和处理网络
    的头像 发表于 11-12 07:23 ?646次阅读

    Python解析:通过实现代理请求与数据抓取

    Python中,有多个可以帮助你实现代理请求和数据抓取。这些提供了丰富的功能和灵活的API,使得你可以轻松地发送HTTP请求、处理响应、解析HTML/XML/JSON数据,以及进行复杂的网络操作。
    的头像 发表于 10-24 07:54 ?541次阅读

    RISC-V如何支持不同的AI和机器学习框架和

    RISC-V如何支持不同的AI和机器学习框架和?还请坛友们多多指教一下。
    发表于 10-10 22:24

    如何帮助孩子高效学习Python:开源硬件实践是最优选择

    家长们常常担心孩子在学习Python时所面临的挑战,如复杂性、兴趣保持、学习进度和可用资源。对于希望有效教授孩子Python的家长而言,了解硬件的作用至关重要,因为结合硬件项目的
    的头像 发表于 09-06 09:49 ?752次阅读