机器学习Tips:关于Scikit-Learn的 10 个小秘密

sklearn 中的 Pipeline 机制 from sklearn.pipeline import Pipeline管道机制在机器学习算法中得以应用的根源在于,参数集在新数据集(比如测试集)上的重复使用。管道机制实现了对每一个步骤的流式化封装和管理(streaming workflows with pipelines)。注意:管道机制更像是编程思想的创新,而非算法的创新。 接下来我们以一个具体的例子来演示sklearn库中强大的Pipelin 阅读详情

作者 | Rebecca Vickery

编译 | NewBeeNLP

写在前面

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

- END -

openml-r, R 软件包与OpenML接口.zip openml-r, R 软件包与OpenML接口 R 接口到 OpenML 美国的在线机器学习平台,研究人员可以访问开放数据,下载和上传数据集,共享他们的机器学习任务和实验,共享他们的机器学习任务,并与其他研究。 web R 接口允许查询具有特定属性的数据集 立即下载

相关推荐

静态随机存储器(SRAM)

静态随机存储器(SRAM)是一种广泛用于计算机系统和嵌入式设备中的高速随机访问存储器。与动态随机存储器(DRAM)不同,SRAM 不需要定期刷新,因此可以实现更快的访问时间和更低的功耗。SRAM通常用于缓存、高速缓冲器和存储器应用程序中,其中性能和可靠性至关重要。

JAZJD的博客 8151

机器学习笔记:scikit-learn pipeline使用示例

在机器学习中,管道机制是指将一系列处理步骤串连起来自动地一个接一个地运行的机制。Scikit-Learn提供了pipeline类用于实现机器学习管道,使用起来十分方便。既然要将不同处理步骤串联起来,首先必须确保每个步骤的输出与下一个步骤的输入的数据是匹配的。所以,管道中的每个步骤都包含两个方法,fit()用于拟合(或者说训练),transform()用于数据转换(将数据转换为下一个步骤所需要的输入数据格式)。管道的最后一个步骤应该是一个估计器,估计器不再需要数据转换,因此估计器只需要实现fit()方法。

chenxy_bwave的专栏 2544

STRING数据库的蛋白质相互作用(PPI)网络分析

在转录调控相关的文献中,我们经常能够看到这样的蛋白质相互作用网络(protein protein interaction network,PPI network)。具体而言,这些相关的文献中首先通过RNA-seq、表达谱芯片或者蛋白质组分析等,找到了在不同分组样本间一系列的差异表达基因或蛋白。

weixin_43029125的博客 9458

深入Scikit-learn:掌握Python最强大的机器学习库

Scikit-learn是一个开源的Python机器学习库,它建立在NumPy、SciPy和Matplotlib之上,提供了大量的机器学习算法和工具,适用于各种机器学习任务,如分类、回归、聚类、降维等。Scikit-learn的设计遵循简洁、一致的API接口,使得用户可以轻松地从数据预处理到模型评估的整个机器学习流程中进行操作。它还提供了丰富的文档和示例,帮助用户快速上手和解决问题。Scikit-learn允许用户自定义扩展,以满足特定需求。可以通过继承和(或)来创建自定义模型。# 使用自定义分类器。

实践是检验真理的唯一标准 1万+

UE4 - 河流流体插件Fluid Flux

Fluid Flux可以模拟一定区域内的流体效果,由于使用顶视图所Capture的Heightfield信息,所以只支持室外开阔场景,不支持洞穴等室内场景;

GT的虚幻引擎文档 6674

C#上位机开发:西门子/三菱PLC通信,新手直接上手

对着西门子S7协议文档看半天,连“DB块地址怎么写”都搞不懂;写三菱PLC代码时,分不清MC协议和Modbus的区别,代码改来改去连不上;好不容易跑通代码,换个PLC型号又报错,不知道哪里出问题;后来发现,新手学PLC通信根本不用先啃协议文档——先跑通“能通信”的代码,再慢慢理解底层逻辑,效率至少提升3倍。西门子PLC:用S7NetPlus库(新手最友好),实现以太网通信,支持S7-200 SMART/1200/1500;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 885

Python语音识别系统(自己的语音)

参考一篇博客:https://blog.youkuaiyun.com/dQCFKyQDXYm3F8rB0/article/details/106846014 自己的想法: 先配置好环境,采用conda安装 conda create -n yuyin python=3.6.5 conda install numpy pandas matplotlib scikit-learn scipy tensorflow-gpu==2.0.0 pip install -i https://pypi.tuna.tsinghua.ed

爱听许嵩歌的博客 2225

C#实现网络寻路(附完整源码)

C#实现网络寻路(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 426

【机器学习】使用scikitLearn进行SVM支持向量机线性分类

铰链损失函数比0,1损失函数更细节化,决策函数大于0,在0至1之间时,虽然预测正确,也有损失,越接近1,损失越小,超过1时,损失为0;当C值很大时,间隔比较窄,C值很小时,间隔比较宽,泛化能力更好,相当于进行了正则化处理,体现了方差与偏差的权衡。当任何实例,都不出现在上图两虚线之中,这种分类,成为硬间隔分类,硬间隔分类对个别的异常支持向量值敏感。总体而言,C值越小,允许的错分数越多,泛化能力越强。图中黑色线为0,1损失,预测错时,损失为1,正确时没有损失。,与虚线外的其它值无关。,数据集的分类结果,

种一棵树最好的时间是十年前,其次是现在 1377

【工业相机】【深度4】线扫描相机 - 选型实践

前言: 在工业相机的深度应用的前三节里面,针对工业相机的选型、参数、应用计算等做了一些说明。期中,在深度3里面,在说明工业相机在速度场景下的应用的时候,专门开了一节介绍线扫描相机行频速度的计算公式和镜头的选型的大致说明,感觉说的还是不够透彻,切应用举例也不充分,这里特别开一个章节,基于线扫描相机的特点对比面阵相机的特点进行比较详细的说明,尤其对线扫描相机的选型实践,尤其是线扫描相机的分辨率选择计算、行频选择计算进行了充分的说明和计算说明,希望能够给用到线扫描工业相机的同学给予一定的参考: 阐述: 在编

山云的专栏 2万+

运维系列【仅供参考】: Windos10和Windos11 配置intel网卡vlan的方法

Windos10和Windos11 配置intel网卡vlan的方法

weixin_54626591的博客 477

Python机器学习库scikit-learn实践

Python机器学习库scikit-learn实践zouxy09@qq.comhttp://blog.youkuaiyun.com/zouxy09 一、概述       机器学习算法在近几年大数据点燃的热火熏陶下已经变得被人所“熟知”,就算不懂得其中各算法理论,叫你喊上一两个著名算法的名字,你也能昂首挺胸脱口而出。当然了,算法之林虽大,但能者还是有限,能适应某些环境并取得较好效果的算法会脱颖而出,而表现平平者

zouxy09的专栏 10万+

把 SAP Workflow 的 Task 搞懂:从 TS 到 WS 的建模、触发与排错全景

摘要:SAP Business Workflow中的Task是工作流设计的核心单元,分为single-step(独立执行)和multistep(流程编排)两种类型。Task设计直接影响流程的可复用性、扩展性和可排错性。系统将Task分为5类(TS/T/WS/WF/TG),运行时通过事件触发、Linkage匹配、Work Item执行的链路完成流程驱动。关键事务码包括PFTC_INS(创建Task)、SWE2(事件配置)等。正确设计Task边界并遵循"先业务提交后事件触发"原则,是构建稳定

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 275

Scikit-learn 秘籍 第四章 使用 scikit-learn 对数据分类

第四章 使用 scikit-learn 对数据分类 作者:Trent Hauck 译者:飞龙 协议:CC BY-NC-SA 4.0 分类在大量语境下都非常重要。例如,如果我们打算自动化一些决策过程,我们可以利用分类。在我们需要研究诈骗的情况下,有大量的事务,人去检查它们是不实际的。所以,我们可以使用分类都自动化这种决策。4.1 使用决策树实现基本的分类这个秘籍中,我们使用决策

龙哥盟 4万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【机器学习小白必备】Scikit-learn(Sklearn)最常用的函数这里都帮您总结好了~速速来取!持续更新!

Scikit-learn(Sklearn)常用函数详解大全 在这篇文章中,总结了sklearn模块常用的函数,建议收藏! 因为会持续更新! 文章目录Scikit-learn(Sklearn)常用函数详解大全自带的数据集经典的数据集分割测试集数据和训练集数据方法选择生成ROC曲线预测函数交叉验证最优参数(神好用!)模型准确率和评估报告模块使用模型的一般步骤及注意事项总结 自带的数据集 from sklearn.datasets import load_boston 清空sklearn环境下所有数据 data

铃灵狗的水墨书乡 4794

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

scikit-learn:加载自己的原始数据

这里不讨论加载常用的公用数据集,而是讨论加载自己的原始数据(即,实际中遇到的数据) http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_files.html#sklearn.datasets.load_files sklearn.datasets.load_files(

mmc2015的专栏 1万+

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

Python粉都应该知道的开源机器学习框架:Scikit-learn入门指南

对Python语言有所了解的科研人员可能都知道SciPy——一个开源的基于Python的科学计算工具包。基于SciPy,目前开发者们针对不同的应用领域已经发展出了为数众多的分支版本,它们被统一称为Scikits,即SciPy工具包的意思。而在这些分支版本中,最有名,也是专门面向机器学习的一个就是Scikit-learn。 Scikit-learn项目最...

weixin_34029949的博客 477

scikit-learn机器学习四(多元线性回归)

从简单线性回归到多元线性回归 多元线性回归 多项式回归 梯度下降法

Enternalwiser的博客 780

【机器学习】scikitLearn分类:鉴别二分类、多分类、多标签及多输出的分类任务

传统的多标签分类任务,将标签分开,有几个标签,就建立几个分类器,再将预测结果拼合,深度学习时,需在输出端设置标签个数的输出节点,再给每个结点接sigmoid函数,设置阈值进行判断。预测10个类,同时训练10个分类器,预测每个实例是否为某个类别,取10个分类器中得分最高的类别,作为最终类别,进行输出。在多标签的基础上,每个标签,也可以看成是输出,有多个可能出现的值,如一共有3个标签需要输出,每个标签值的取值范围是0至255.将对象群中的每个实例分到多个类别,超过2个,叫做多元分类。

种一棵树最好的时间是十年前,其次是现在 2095

Scikit-learn:数据预处理Preprocessing data

http://blog.youkuaiyun.com/pipisorry/article/details/52247679 本blog内容有特征预处理(标准化、归一化、正则化、特征二值化、缺失值处理)和标签label预处理(label二值化、multi-label多值化)。 特征的预处理 基础知识参考 [数据标准化/归一化normalization ] [均值、方差与协方差矩阵 ] ...

皮皮blog 3万+

Python scikit-learn HMM 存在问题的解决方法

背景: HMM隐式马尔可夫,在语音识别里面有着很重新的应用,在视频识别里,也有人效仿使用之。Python版本的HMM实现库很少。 在python里面,scikit-learn是一个很好用的机器学习的第三方库。 (python 2.7 对应的scikit learn) 但是里面的HMM模块是存在问题的,而且也被遗弃很久,有网上别处的原文如下: So far, there are a f

李梦龙的成长笔记 1万+

[scikit-learn 机器学习] 2. 简单线性回归

文章目录1. 简单线性回归2. 评价模型 1. 简单线性回归 import numpy as np import matplotlib.pyplot as plt X = np.array([[6],[8],[10],[14],[18]]) y = np.array([7,9,13,17.5,18]) plt.title("pizza diameter vs price") plt.xlabel('diameter') plt.ylabel('price') plt.plot(X,y,'r.') # r表

Michael是个半路程序员 1194

机器学习实战(基于scikit-learn和TensorFlow)-第十一章训练深度神经网络笔记(一)

关注微信公共号:小程在线 关注优快云博客:程志伟的博客 Python 3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] Type "copyright", "credits" or "license" for more information. IPython 7.12.0 -- An enhanced Interactive Python. from __future__ import divis.

程志伟的博客 1096

Python中使用sklearn 的 Pipeline 管道机制

pipeline管道机制使用方法:流水线的输入为一连串的数据挖掘步骤,其中最后一步必须是估计器(Estimator),可理解成分类器前几步是转换器(Transformer)。输入的数据集经过转换器的处理后,输出的结果作为下一步的输入。最后,用位于流水线最后一步的估计器对数据进行分类。每一步都用元组( ‘名称’,步骤)来表示。现在来创建流水线。pipe = Pipeline([('sc',Stand...

mike_jun的博客 2万+

scikit-learn中的pipeline使用和解释

scikit-learn中的pipeline使用和解释(详细且易于理解,附使用代码)为何引入用法1.构造一个pipeline2.访问每步操作3.每步操作(estimator)的参数4.注意5.避免重复计算的缓存机制 为何引入 英文意思为管道,它的功能也正如它的英文意思。 它是将许多操作(为了准确下文中把操作用estimator替代,通俗你可以将其理解为是一种操作)封装融合在一起,然后按顺序执行,比...

weixin_40240831的博客 1053
上一篇: 北大读博手记:怎样完成自己的博士生涯?非常具有指导性!
下一篇: Python加速运行技巧
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值