独家 | 6个Python数据科学库正在狂飙,你一定要学来提升文化素养

news/2024/4/26 17:08:04/文章来源:https://blog.csdn.net/tMb8Z9Vdm66wH68VX1/article/details/129210604

7ee466e5f51c0abb6c685aa85677328c.png

作者:Bex T翻译:wwl
校对:张睿毅本文约3200字,建议阅读8分钟
计算类数据科学库,已经不再局限在Pandas、NumPy、Scikit-learn之内了!

动机

2023年的开始,自然需要探索数据科学和机器学习的新趋势。经典的数据科学库Pandas、NumPy、Matplotlib、Scikit-learn虽然很重要,但是已经不够用了。

这个系列的上一篇文章(https://towardsdatascience.com/8-booming-data-science-libraries-you-must-watch-out-in-2022-cec2dbb42437)是围绕经典机器学习库,包括CatBoost、LightGBM、Optuna、UMAP库。

相较于2021年,在2022年我观察到更多这样的评论,“我高兴地宣布成为一名机器学习运维工程师”。关于机器学习运维的内容和对机器学习运维工具的需求越来越多。

因此,今年的文章围绕机器学习运维领域中6个”狂飙“的Python库,它们的目的只有一个:用最有效的方式,生成性能最佳的模型,径直对接生产环境。

1、 BentoML

也许你之前听腻了这句话“机器学习模型不应该呆在Jupyter Notebooks里生锈”。避免你还没听腻,我再重复一遍:机器学习模型不应该呆在Jupyter Notebooks里生锈。

机器学习模型应该的是直接在生产环境中发挥它们应有的作用——新数据预测。

去年我就发现了,模型部署中,最好的Python库是BentoML。BentoML可以一键安装,你可以用它维护、打包任何框架的模型,在任何一家云服务商部署,并将模型封装作为API提供服务。

328c4219d0a1d137eaedcf5ea1de556a.png 

291edb70236ea087941b0a317f5eaff0.png

保存/加载模型支持统一格式(建立版本和专属标记),使您能够构建一套结构化模型注册版本管理。构建模型的docker映像,在本地运行,各自用一行代码就可以。

$ bentoml containerize my_classifier:latest
$ docker run -it --rm -p 3000:3000 my_classifier:6otbsmxzq6lwbgxi serve –production

或者,使用一些命令直接将模型部署到任意云提供商,无需离开命令行界面。以下示例使用AWS Sagemaker:

$ pip install bentoctl terraform
$ bentoctl operator install aws-sagemaker
$ export AWS_ACCESS_KEY_ID=REPLACE_WITH_YOUR_ACCESS_KEY
$ export AWS_SECRET_ACCESS_KEY=REPLACE_WITH_YOUR_SECRET_KEY
$ bentoctl init
$ bentoctl build -b model_name:latest -f deployment_config.yaml
$ terraform init
$ terraform apply -var-file=bentoctl.tfvars -auto-approve

这里提供一个我如何部署XGBoost模型到AWS Lambda云服务的分步教程(https://towardsdatascience.com/comprehensive-guide-to-deploying-any-ml-model-as-apis-with-python-and-aws-lambda-b441d257f1ec)。

数据和链接:

Github链接(4.4k star):

https://github.com/bentoml/BentoML

文档:

https://docs.bentoml.org/en/latest/#

2、 MLFlow

在将最优模型部署到生产环境之前肯定是要实验的。通常,可能需要数十次甚至数百次实验的迭代。随着迭代次数的增加,就越来越难跟踪过去的配置以及哪次过去实验效果好,和好在哪的记录。

为了帮助您完成实验迭代的追踪过程,您需要一个可靠的框架,同时跟踪1、代码,2、数据,3、模型,4、超参数和5、评估指标。

因为有太多的优秀python库已经可以实现这件事,所以,如果你想从零一点点手动搭建框架,或者像原始人一样,用excel的话,你这个想法是最糟糕的。

在优秀的Python库中之一的MLFlow库是我最喜欢的。比如,把下边这行代码加到训练scikit-learn模型的脚本里,MLFlow就可以记录任何事情,包括模型本身、模型的超参数、以及用sklearn.metrics函数计算的各种评估指标:

mlflow.sklearn.autolog()

并且,在完成实验后,终端上运行:mlflow UI,它会弹出一个实验记录的仪表板,其中包含用于对实验结果进行筛选和可视化的控件:

59c21fe36f21621564d76befa0a42bac.png 

3621c7bd3252817d95b96578efc7cc94.png

MLFlow 有一个 mlflow.framework.autolog() 功能,适用的框架绝对超过你知道的。它特别简单且有效,你一定要用它。

这里是我分享的这个框架的教程(https://towardsdatascience.com/complete-guide-to-experiment-tracking-with-mlflow-and-dagshub-a0439479e0b9),包括它的特点,和数据生态其他工具的集成。

数据和链接:

Github链接(13.3k star):

https://github.com/mlflow/mlflow

文档:

https://mlflow.org/docs/latest/index.html

3、 DVC

简而言之,DVC 是数据业内的 Git。

8f8aa63b843f24e49896056bb0a3a7c6.png

c5d93ca3f71ad615404a0e1cf7e1e9c0.png 

DVC(Data Version Control)将成为数据和模型版本控制的首选工具。它可以:

(1) 跟踪千兆字节大小的数据集或模型,就像 Git 跟踪轻量级脚本。

(2) 创建主代码库的分支以进行安全试验,而无需复制大文件。

当你用命令 dvc add directory 来跟踪大文件和目录的时候,会创建轻量的directory.dvc 元数据文件。

然后,DVC将这些轻量级的文件作为原始重文件的占位符进行管理。DVC处理大型数据集和模型组件,git处理directory.dvc中的元数据。他们形成了完美的组合。

DVC的另一个优势是它智能管线式工作流。一个典型的机器学习工作流包括诸如数据采集、数据清洗、特征工程、模型训练等步骤。

DVC 可以从所有这些步骤上创建出一个智能的工作流管线,输入这两个关键词:dvc repo就可以执行所有步骤。

那么这条管线有什么智能的地方呢?——DVC 只需执行流水线上变的步骤就足够了,这样流程的优化能够为您节省数小时计的时间和计算资源。

训练脚本添加MLFlow,用DVC跟踪模型版本,那么你将获得完美组合(Git, DVC, MLFlow)。

相关链接:

https://towardsdatascience.com/how-to-version-gigabyte-sized-datasets-just-like-code-with-dvc-in-python-5197662e85bd

数据和链接:

Github链接(10.8k star):

https://github.com/iterative/dvc

文档:

https://dvc.org/


4、Weights & Biases

另一个实验记录的开源框架是 Weights & Biases库。跟之前库地不同点是,它是一个有超过2亿美金投资的公司开发的,客户有OpenAI, NVIDIA, Lyft, BMW, Samsung等。

它的主要卖点有:

(1)与 ML 生态系统的其他组件完美集成,就像 MLFlow 一样

(2)实验中提供跟踪和比较功能的 UI是最漂亮的(个人观点)

2b9c6b3721e38c0b4ae7db67bd4cc087.png 

c1b7f079b32767bb78613971f222d0c6.png

(3) 协作报告和仪表板

(4) 超参数优化(在 MLFlow 中不可行)

最好的部分是,上述所有功能都可以通过Jupyter直接使用。这意味着在Jupyter中即可跟踪实验,而不必放弃自己喜欢的IDE去进入脚本界面。

这样看来,完美的组合可能是Git, DVC和 Weights & Biases。

数据和链接:

Github链接(5.2k star):

https://github.com/wandb/wandb

文档:

https://docs.wandb.ai/

5、 NannyML

部署模型只是故事的一部分。要维护成功搭建的机器学习驱动产品,您必须持续监控模型的效果。

监控的问题在于,当模型失败时,您最开始会收到提示的、醒目的、红色的错误提示。但随着时间的推移,这些错误提示的判断可能会变得越来越糟糕,这种现象称为无声的模型失败(silent model failure)。

比如说,你部署的模型是在图片中识别Nike服装。由于时尚观念地演化,Nike会持续的改变它的设计。由于你的模型训练并不包含这些新的设计,它再图像识别中会越来越多地错过耐克服装。您不会收到错误提示,但您的模型很快就会变无用。

NannyML帮助解决了这个问题。使用他们开发的新颖的基于置信度的效果估计算法(Confidence-Based Performance Estimation,)和其他一些鲁棒的统计实验,他们可以检测生产环境中的效果下降或无声的模型失效。

NannyML 还提供智能警报功能,因此您可以始终了解生产环境中发生的情况。

以下是帮助您入门的实践教程:

https://towardsdatascience.com/data-drift-explainability-interpretable-shift-detection-with-nannyml-83421319d05f

数据和链接:

Github链接(1.3k star):

https://github.com/NannyML/nannyml

文档:

https://nannyml.readthedocs.io/en/stable/index.html

6、 Poetry

你可能已经听过很多Python程序员抱怨pip及其依赖的问题了,在我看到Poetry之前,我就是其中之一。

Poetry 是一个改变游戏规则的开源 Python 打包和依赖管理框架。在最简单的用例中,Poetry 可以在安装库之前检测依赖冲突,以便您可以完全避免依赖冲突。

a63518bb7b2882de5032c0b43c842d97.png 

09424d6ac11301031f3c36dd2a3e0841.png

您还可以用pyproject.toml配置文件配置你的python项目,Poetry将负责虚拟环境,使用简单的命令构建存储库并将其发布到PyPI。

866b557fe398d49abc4069c6a0fcffb9.png 

cb038ed9c18cffbb3be4eafbe3bfc999.png

这里有一个Poetry库的全面的 Python教程:

https://realpython.com/dependency-management-python-poetry/

数据和链接:

Github链接(23.1k star):

https://github.com/python-poetry/poetry

文档:

https://python-poetry.org/

总结

数据科学领域在不断扩展,新的工具和工具库正在以惊人的速度进步。跟上最新进度的压力比以往任何时候都更难。在这篇文章中,我尽力聚焦到机器学习的一个领域,因为这个领域有望在 2023 年继续狂飙。感谢您的阅读!

原文标题:

6 New Booming Data Science Libraries You Must Learn To Boost Your Skill Set in 2023

原文链接:

https://medium.com/m/global-identity-2?redirectUrl=https%3A%2F%2Ftowardsdatascience.com%2F6-new-booming-data-science-libraries-you-must-learn-to-boost-your-skill-set-in-2023-106b318d9fa

编辑:于腾凯

校对:林亦霖

译者简介

wwl

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~


转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

42ca75206f0b5c31a4cf39c0c0a31bda.png

点击“阅读原文”拥抱组织

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_73942.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【华为OD机试模拟题】用 C++ 实现 - 分积木(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

Web Spider Ast-Hook 浏览器内存漫游-数据检索

文章目录一、资源下载二、通过npm安装anyproxy模块三、anyproxy的介绍以及基本使用1. anyproxy的功能介绍2. anyproxy的基本使用四、给浏览器挂代理五、实操极验demo案例总结提示:以下是本篇文章正文内容,下面案例可供参考 一、资源下载 Github&#x…

【华为OD机试模拟题】用 C++ 实现 - 符合条件的子串长度(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

【华为OD机试模拟题】用 C++ 实现 - 矩阵最值(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

【华为OD机试模拟题】用 C++ 实现 - 找数字(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

MIND——Modality independent neighbourhood descriptor 模态无关邻域描述符

参考:https://blog.mbedded.ninja/programming/signal-processing/image-processing/image-registration/modality-independent-neighbourhood-descriptor-mind/《MIND: Modality independent neighbourhood descriptor for multi-modal deformable registration》论…

Elasticsearch7.8.0版本进阶——文档分析 分析器

目录一、文档分析过程二、分析器三、内置分析器3.1、标准分析器3.2、简单分析器3.3、空格分析器3.4、语言分析器四、分析器使用场景五、分析器的测试示例一、文档分析过程 将一块文本分成适合于倒排索引的独立的词条。将这些词条统一化为标准格式以提高它们的“可搜索性”&…

JDBC-

文章目录JDBC1,JDBC概述1.1 JDBC概念1.2 JDBC本质1.3 JDBC好处2,JDBC快速入门2.1 编写代码步骤2.2 具体操作3,JDBC API详解3.1 DriverManager3.2 Connection (事务归我管)3.2.1 获取执行对象3.2.2 事务管理3.3 Stateme…

12.STM32系统定时器-SysTick

目录 1.系统定时器-SysTick 2.SysTick定时时间的计算 3.SysTick结构体 4.SysTick固件库函数 5.SysTick中断优先级 1.系统定时器-SysTick SysTick:24位系统定时器,只能递减,存在于内核嵌套在NVIC中。所有的Cortex-M中都有这个系统定时器。 重装载值…

interrupt多线程设计模式

1. 两阶段终止-interrupt Two Phase Termination 在一个线程T1中如何“优雅”终止线程T2?这里的【优雅】指的是给T2一个料理后事的机会。 错误思路 ● 使用线程对象的stop()方法停止线程(强制杀死) —— stop()方法…

会声会影2023电脑版下载及系统配置要求

平时大家可能会经常听到有人说会声会影,但是很多人都不知道这是什么软件。其实听它的名字就知道这是一款和声音、影像有关系的软件。下面,小编就来给大家具体介绍一下这款软件吧。 会声会影是一套操作简单的DV、HDV影片剪辑软件。会声会影不仅完全符合家…

农业科技发展所带来的好处:提高农作物产量,提高农民收入

农业科技发展所带来的好处::(1)育种技术:通过育种技术,科学家可以在农作物基因中挑选和改变一些特定的性状,例如增加产量、改善耐旱性和抗病性等等,从而提高农作物产量。&#xff08…

el-cascader 级联选择器懒加载的使用及回显 + 点击任意一级都能返回

需要实现的需求 数据渲染使用懒加载点击任意一级都可返回&#xff0c;不需要一直点到最后一级编辑或者查看功能&#xff0c;回显之前选择的数据 实例解析 dom 元素 <el-cascaderv-model"value":options"options":props"props":key"n…

Linux内核段页式内存管理技术

一、概述 1.虚拟地址空间 内存是通过指针寻址的&#xff0c;因而CPU的字长决定了CPU所能管理的地址空间的大小&#xff0c;该地址空间就被称为虚拟地址空间&#xff0c;因此32位CPU的虚拟地址空间大小为4G&#xff0c;这和实际的物理内存数量无关。 Linux内核将虚拟地址空间分…

五种IO模型以及select多路转接IO模型

目录 一、典型IO模型 1.1 阻塞IO 1.2 非阻塞IO 1.3 信号驱动I0 1.4 IO多路转接 1.5 异步IO 多路转接的作用和意义 二、多路转接IO模型&#xff08;select&#xff09; 2.1 接口 2.2 接口当中的事件集合&#xff1a; fd_set 2.2 select使用事件集合&#xff08;位图&am…

174万亿采购,奔向数字化

采购不单纯发生在外部&#xff0c;更发生在内部&#xff0c;只有两者同时进行&#xff0c;才能完成采购中心从成本到利润中心角色的转变。 作者|斗斗 编辑|皮爷 出品|产业家 数字化&#xff0c;让很多企业业务流程发生了质变。 《2022数字化采购发展报告》显示&#x…

破解票房之谜:为何高票房电影绕不过“猫眼们”?

如此火爆的春节档很多&#xff0c;如此毁誉参半的春节档鲜有。2023开年&#xff0c;集齐张艺谋、沈腾的《满江红》&#xff0c;以及有票房前作打底的《流浪地球2》接连两部春节档电影票房进入前十&#xff0c;为有些颓靡的中国电影市场注入了一针“强心剂”。与票房同样热闹起来…

无重叠区间-力扣435-java贪心策略

一、题目描述给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。示例 1:输入: intervals [[1,2],[2,3],[3,4],[1,3]]输出: 1解释: 移除 [1,3] 后&#xff0c;剩下的区间没有重叠。…

【爬虫】2.2 BeautifulSoup 装载HTML文档

HTML文档结点的查找工具很多&#xff0c;其中 BeautifulSoup 是功能强大且十分流行的查找工具之一。1. BeautifulSoup 的安装安装&#xff1a;pip install bs4导包&#xff1a;from bs4 import BeautifulSoup2. BeautifulSoup 装载HTML文档如果 doc 是一个 HTML 文档&#xff0…

深度学习训练营之yolov5 官方代码调用以及-requirements.txt下载当中遇到的问题

深度学习训练营之yolov5 官方代码调用原文链接内容总结环境介绍前置工作简单介绍yolov5下载源码yolov5的下载遇到问题问题解析问题处理创建虚拟环境下载当中遇到的问题代码运行视频检测参考内容原文链接 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客…