机器学习算法那些事 | 数据算法工程师必须掌握的5个Python库

news2024/11/14 6:37:32

本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。

原文链接:数据算法工程师必须掌握的5个Python库

如果你是一名初学者中级机器学习工程师数据科学家,这篇文章非常适合你。你已经选择了自己喜欢的机器学习库,比如PyTorch或TensorFlow,并且掌握了选择模型正确架构的技巧。你还能够训练模型并解决现实世界的问题。但接下来呢?

在本文中,我将介绍五个我认为每个机器学习工程师和数据科学家都应该熟悉的库。这些将成为你技能集中宝贵的补充,让你成为一个更具竞争力的候选人,并简化机器学习开发过程。

在这篇文章中,我将介绍五个我认为每位机器学习工程师和数据科学家都应该熟悉的库。这些库将成为你技能集的宝贵补充,使你成为一个更具竞争力的候选人,并简化机器学习开发过程。

1.MLFlow---模型实验和跟踪

想象你是一个机器学习开发者,正在从事一个预测客户流失的模型项目。你开始使用Jupyter笔记本探索你的数据,尝试不同的算法和超参数。随着你的进步,你的笔记本变得越来越杂乱,充满了代码、结果和可视化内容。跟踪你的进展、识别哪些方法有效、哪些无效,以及复制你的最佳成果变得困难。

这就是MLflow发挥作用的地方。MLflow是一个平台,帮助你从头到尾管理你的机器学习实验,确保可追溯性和可重复性。它提供了一个集中的存储库,用于存储你的代码、数据和模型工件,以及一个跟踪系统,记录你所有的实验,包括超参数、指标和输出。

以下是MLflow如何帮助你避免单独使用Jupyter笔记本的陷阱:

  1. 集中存储库:MLflow保持你的代码、数据和模型工件组织有序且易于获取。你可以快速找到你需要的资源,而不会迷失在笔记本的迷宫中。

  2. 实验跟踪:MLflow记录每一次实验,包括使用的确切代码、数据和超参数。这使你能够轻松比较不同的实验,并识别导致最佳结果的原因。

  3. 可重复性:MLflow使你能以完全相同的代码、数据和环境重现你的最佳模型。这对于确保结果的一致性和可靠性至关重要。

    因此,如果你认真对待构建有效的机器学习模型,就抛弃Jupyter笔记本的混乱,拥抱MLflow的力量吧。

    链接:https://mlflow.org/

2. Streamlit---快速且漂亮的网页应用程序

Streamlit是数据科学领域最受欢迎的前端框架。它是一个开源的Python框架,允许用户快速轻松地创建交互式数据应用程序,这对于可能没有广泛网页开发知识的数据科学家和机器学习工程师特别有益。

通过使用Streamlit,开发人员可以构建和分享吸引人的用户界面,并在不需要深入的前端经验或知识的情况下部署模型。该框架是免费的、全Python的、开源的,能够在短时间内创建可分享的网页应用程序。

如果你有一些涉及机器学习的个人项目,那么使用Streamlit为其添加一个界面是一个不错的主意。开始使用它几乎不需要时间,有许多现成的模板可供选择,你可以在短时间内完成前端部分的开发。分享它也极为简单,这意味着在你的简历中,它肯定会显得非常出色。

链接:https://streamlit.io

3. FastAPI---轻便和快速部署你的模型、

一旦你训练并验证了你的模型,你需要部署它,以便其他应用程序可以使用。这就是FastAPI发挥作用的地方。

FastAPI是一个高性能的web框架,用于构建RESTful API。它以其简单性、易用性和速度而闻名。这使它成为将机器学习模型部署到生产环境的理想选择。

以下是为什么机器学习工程师和数据科学家应该学习FastAPI的一些原因:

速度:FastAPI非常快。它使用现代异步编程模型,使其能够高效地同时处理多个请求。这对于需要处理大量数据的机器学习模型部署至关重要。

简单性:FastAPI易于学习和使用。它具有清晰简洁的语法,使得编写干净且可维护的代码变得容易。对于不一定是经验丰富的web开发人员的机器学习工程师和数据科学家来说,这一点很重要。

易用性:FastAPI提供了许多功能,使构建和部署API变得容易。例如,它内置了自动文档、数据验证和错误处理的支持。这节省了时间和精力,允许机器学习工程师专注于他们的核心工作——构建和部署模型。

生产就绪:FastAPI是为生产环境设计的。它具有像支持多后端、安全性和部署工具等特性。这使得它成为部署关键机器学习模型的可靠选择。

总之,FastAPI是一个强大且多功能的工具,可用于将机器学习模型部署到生产环境。其易用性、速度和生产就绪性使其成为希望使他人能够访问其模型的机器学习工程师和数据科学家的理想选择。

链接:https://fastapi.tiangolo.com

4.XGBoost---更快更好地预测表格数据

XGBoost是一种强大的机器学习算法,以其准确性、速度和可扩展性而闻名。它基于梯度提升框架,将多个弱学习器组合成一个强学习器。简单来说,你使用多个小模型(如随机森林),将它们组合成一个大模型,最终你会得到一个更快的模型(与例如神经网络相比),同时它是可扩展的,且不太容易过拟合。

以下是为什么机器学习工程师和数据科学家应该学习XGBoost的一些原因:

准确性:XGBoost是现有最准确的机器学习算法之一。它已经被用于赢得许多机器学习竞赛,并且在不同的任务中一直名列前茅。

速度:XGBoost也非常快。它能够快速高效地在大型数据集上进行训练和预测。这使它成为速度重要应用的好选择,如实时欺诈检测或金融建模。

可扩展性:XGBoost具有很高的可扩展性。它可以处理大型数据集和复杂模型,而不会牺牲准确性。这使它成为数据量或模型复杂度是一个关注点的应用的好选择。

如果你有一个表格数据的任务(如基于房间数量预测房价,或根据最后购买/账户数据计算客户购买产品的可能性),在转向使用Keras或PyTorch的神经网络之前,你应该始终首先尝试XGBoost。

5. ELI5---模型更具有解释性和透明性

在你训练了你的模型之后,你可以部署它并使用它。但此时,模型更像是一个“黑盒子”——你输入数据,你得到输出结果。它是如何工作的?没人知道。数字从这里进去,从那里出来,最后你得到了一个答案。

那么,如果你的客户/老板问你的模型是如何得出某个特定答案的呢?同样,你不知道。或者你可能想知道在训练过程中哪些参数最重要,以及哪些只是增加了噪声?

所有这些问题都可以通过ELI5来回答。这个库将帮助你使你的模型变得透明、可解释且更易于理解。但你可能会获得更多关于模型的信息,还有数据、训练过程、权重分布和输入参数。除此之外,你可以“调试”你的模型,获得更多关于哪种架构可能更有效,以及当前模型存在什么问题的见解。

ELI5已经支持了像Scikit-Learn、Keras、XGBoost等许多其他库。你可以针对图像、文本和表格数据的分类调试你的模型。

开源库:https://github.com/TeamHG-Memex/eli5

结论

我们已经探讨了五个领先的数据科学框架。如果你至少对每个库都有所了解,你将获得多重优势:

与其他数据科学家相比,你将有更多机会找到工作,因为你在机器学习的不同方面获得了多种技能。你将能够从事全栈项目,因为你不仅可以开发模型,还可以使用FastAPI后端部署它,并让用户在Streamlit前端与之交互。你不会迷失在“Jupyter Notebook地狱”中,因为你的所有机器学习实验都将是可追踪和可复现的,用MLFlow进行管理,所有模型都会被正确版本化。表格数据对你来说不是问题,因为你知道如何使用XGBoost快速训练一个可扩展、快速且准确的模型。而且,大多数模型对你来说不再是“黑盒子”,因为你可以更深入地理解它们,使用ELI5调试它们的思考过程并解释它们的预测。所有这些库都会让生活变得更轻松,为你增添许多有用且重要的技能。编码快乐!!!

参考链接

  1. https://mlflow.org

  2. https://streamlit.io

  3. https://blog.streamlit.io/building-a-streamlit-and-scikit-learn-app-with-chatgpt/

  4. https://fastapi.tiangolo.com

  5. https://www.geeksforgeeks.org/xgboost/

  6. https://xgboost.readthedocs.io/en/stable/

  7. https://github.com/TeamHG-Memex/eli5

  8. https://eli5.readthedocs.io/en/latest/overview.html#basic-usage

  9. https://www.analyticsvidhya.com/blog/2020/11/demystifying-model-interpretation-using-eli5/

THE END!

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】动态内存分配

1、为什么要有动态内存分配 不管是C还是C中都会大量的使用,使用C/C实现数据结构的时候,也会使用动态内存管理。 我们已经掌握的内存开辟方式有: int val 20; //在栈空间上开辟四个字节 char arr[10] { 0 }; //在栈空间…

[SAP ABAP] SE11查询数据库表中的数据

我们可以通过事务码SE11查询对应数据库表中的详细数据 本次查询使用的数据库表名为MARA,具体操作如下所示: ① 输入事务码SE11进入ABAP字典操作界面,在数据库表搜索框中输入目标表名MARA,并点击【显示】按钮 ② 进入到显示表界面&#xff0…

阿里云服务器租用一年多少钱?2024年最新阿里云租用价格

2024年阿里云服务器租用费用,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元,ECS u1服务器2核4G5M固定带宽199元一年,2核4G4M带宽轻量服务器一年165元12个月,2核4G服务…

HarmonyOS NEXT应用开发—使用绘制组件实现自定义进度动画

介绍 本示例介绍使用绘制组件中的Circle组件以及Path组件实现实时进度效果。该场景多用于手机电池电量、汽车油量、水位变化等动态变化中。 效果预览图 使用说明 加载完成后初始显示进度为0%,颜色为红色,且有充电、放电两个按钮。点击充电按钮&#x…

C++中的std::for_each并行执行探索

在C标准库中,std::for_each是一个用于遍历容器或可迭代序列并对每个元素执行特定操作的强大工具。传统的std::for_each是顺序执行的,即它会按照元素在序列中的顺序,逐个应用函数对象或lambda表达式。然而,随着多线程编程的普及和硬…

升级 HarmonyOS 4 版本,腕上智慧更进一步

HUAWEI WATCH GT 3 系列升级 HarmonyOS 4 新版本后,手表体验更进一步,快来看看有哪些变化吧~

Vue2(八):TodoList案例

一、整体思路 1.分析结构 我们对大盒子拆分,分成header、list、footer,但是list最好也进行拆分,因为它里面的每个小盒子结构一样就是字不一样,可以用一个组件多次调用完成,所以分成app>header、list、footer>i…

Stability AI发布Stable Video 3D模型:可从单张图像创建多视图3D视频,视频扩散模型史诗级提升!

Stability AI发布了Stable Video 3D (SV3D),这是一种基于稳定视频扩散的生成模型,推动了3D技术领域的发展,并大大提高了质量和视图一致性。 该版本有两个版本: SV3D_u:该变体基于单图像输入生成轨道视频,无需相机调节。 SV3D_p:扩…

yolov6实现遥感影像目标识别|以DIOR数据集为例

1 目标检测是计算机视觉领域中的一项重要任务,它的目标是在图像或视频中检测出物体的位置和类别。YOLO(You Only Look Once)是一系列经典的目标检测算法,最初由Joseph Redmon等人于2016年提出。YOLO算法具有快速、简单、端到端的特…

QT学习第一天,创建工程文件,创建按钮,对象树的概念

创建qt 方式一:欢迎》project》new project 方式二:菜单栏》文件》新建文件或项目 打开项目 方式1: 欢迎》project》open project 方式2:打开目录(页面上不存在的项目) 创建工程时需要注意&#xff1…

YOLOv5全网首发改进: 注意力机制改进 | 上下文锚点注意力(CAA) | CVPR2024 PKINet 遥感图像目标检测

💡💡💡本文独家改进:引入了CAA模块来捕捉长距离的上下文信息,利用全局平均池化和1D条形卷积来增强中心区域的特征,从而提升检测精度,CAA和C3进行结合实现二次创新,改进思路来自CVPR2024 PKINet,2024年前沿最新改进,抢先使用 💡💡💡小目标数据集,涨点近两个…

opencv图片处理基础

文章目录 计算机中图片构成红绿蓝边界填充色彩图片转二值图腐蚀操作sobel算子滤波图像阈值函数 边缘检测轮廓检测轮廓特征与轮廓近似轮廓特征轮廓近似 计算机中图片构成红绿蓝 图片由像素点构成,每个像素点有三个通道,分别是RGB,对应红绿蓝颜…

DFS深度优先搜索刷题(一)

一.P2089 烤鸡 算法思想: 指数型枚举,可以通过dfs深度优先搜索暴力枚举出所有可能的情况,在通过剪枝去除错误的方案来减少时间开销。主要用一个循环枚举每个调料放几克(每个位置的分支情况都相同),注意回溯…

分类预测 | Matlab实现PSO-KELM粒子群优化算法优化核极限学习机分类预测

分类预测 | Matlab实现PSO-KELM粒子群优化算法优化核极限学习机分类预测 目录 分类预测 | Matlab实现PSO-KELM粒子群优化算法优化核极限学习机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现PSO-KELM粒子群优化算法优化核极限学习机分类预测(完整源…

【c++初阶】C++入门(下)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

lvgl 窗口 windows lv_port_win_visual_studio 版本 已解决

不知道的东西,不知道lvgl窗口。一切从未知开始 lv_port_win_visual_studio 主分支 对应的分支 v7版本更新git submodule update --init --recursive同步 lvgl代码随后打开 visualSudio 打开.sln 文件 编译 release模式 允许 一切正常代码部分

iOS应用审核问题解决方案及优化方法 ✨

摘要 本文将针对iOS应用提交审核时可能遇到的问题,如“你必须在Xcode中添加com.apple.developer.game-center密钥”,以及突然间提交送审报错情况进行探讨。通过大量查询资料和尝试,结合案例分析,提供了解决方案和优化方法&#x…

Linux进程地址空间详解

文章目录 前言一、程序地址空间二、感受虚拟地址的存在三、进程地址空间四、程序从磁盘加载到内存的过程4.1 物理地址和虚拟地址的区别 五、写时拷贝5.1 解释fork()函数有两个返回值 前言 我们在学习C/C的时候用到的地址是什么地址呢?虚拟地址?物理地址&…

抗疫医疗用品销售平台|基于JSP技术+ Mysql+Java+ Tomcat的抗疫医疗用品销售平台设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

mysql 如何设计分库分表

在MySQL中设计分库分表的方法通常涉及到水平拆分与垂直拆分两种主要方式。 水平拆分: 按照某一列进行水平拆分: 可以根据某一列(如用户ID、时间等)的取值范围将数据拆分到不同的数据库或表中。基于哈希值的水平拆分:…