原文:KDNuggets
协议:CC BY-NC-SA 4.0
原文:
作者图片
当你对进入数据领域感兴趣时,可能很难知道你需要学习哪个编程语言来满足你的特定兴趣或技能。许多人因为听说某种编程语言非常流行或缺乏足够的知识而浪费了大量时间来熟练掌握一种特定的编程语言。
1. 谷歌网络安全证书 - 快速进入网络安全职业。
2. 谷歌数据分析专业证书 - 提升你的数据分析能力
3. 谷歌 IT 支持专业证书 - 支持你的组织 IT 工作
很多数据科学角色被交替使用,有时也被互换宣传。你可能会看到有人把数据分析师和数据科学家视为相同的角色,或者把数据科学家和机器学习工程师视为相同角色。
这可能是因为招聘人员或员工对不同角色之间的区别了解不够,以吸引兴趣或能够雇用一个能一举两得的人。
本博客旨在让你对哪些编程语言是特定数据角色所需或必不可少的有一个快速而简单的了解。
让我们从定义流行的数据角色开始。
数据分析师 - 查阅数据并提供解释数据的报告和可视化。
数据科学家 - 收集、清理、分析数据,提供报告、可视化,并操作数据以进行高级数据分析。
数据工程师 - 负责建立和维护组织的数据基础设施,同时确保数据能够接受关键分析并生成和制作报告。
机器学习工程师 - 负责构建能够处理大量数据的人工智能系统,并能够生成和开发能够学习和进行未来预测的算法。
研究科学家 - 在数据方面,负责研究、设计和分析来自调查、实验和试验的信息。
如果你去谷歌搜索“顶级编程语言”,你会看到这些语言的混合,可能还有其他几种:
- Javascript
- Python
- Go
- Java
- Kotlin
- PHP
- C#
- Swift
- R
- Ruby
- C 和 C++
- Matlab
- SQL
所以在网上看到这些之后,你可能会想 - 接下来我该怎么做?我真正需要什么来满足我感兴趣的角色?
作为数据分析师,你将负责扫描数据,找出有价值的信息,并提供报告或可视化。因此,数据分析师最好的编程语言是 Python 和/或 SQL。
- Python - 将允许你分析、操作、清理和可视化数据。
- SQL - 将使你能够轻松地与数据库进行沟通。
作为数据科学家,你可以选择多种编程语言。数据科学家使用的最流行语言是 Python 和 SQL,其次是 R、C++ 和 Java。
R、C++ 和 Java 仍然流行,然而,Python 和 SQL 因其更简单的编码能力而广受欢迎,同时能产生相同的结果。
- Python 拥有更大的开发者社区,丰富的库,简洁的语法和可移植性。这就是数据科学家所想要和需要的一切。
- SQL 具有存储、检索、管理和操作数据的能力,还能提取性能指标来指导数据科学家的工作。
作为数据工程师,最受欢迎的编程语言是:
- Java - 它是数据工程师使用最久且最合适的语言。数据工程师花费大量时间使用基于 Java 的开源框架 Hadoop。
- Python - 帮助数据工程师构建高效的数据管道,编写 ETL 脚本,设置统计模型并进行分析。
- SQL - 使他们能够建模数据,提取性能指标,并开发可重用的数据结构。
作为机器学习工程师,最受欢迎的编程语言是:
- Python - 良好的库生态系统,更好的可读性,灵活性,创建良好的可视化,社区支持等。简单的语法和结构在机器学习工程师的工作中非常有利。
- C++ - 这也是机器学习工程师非常宝贵的编程语言,因为它快速且可靠,这对于机器学习是必要的,同时还拥有良好的库资源。
- Java - 如果你想从事网页开发、大数据、云开发和应用开发,Java 对你的技能组合至关重要。它的性能也优于 Python。
作为研究科学家,你不会处理后端问题,而是更多地了解数据和团队发现可以告诉你的信息。与数据分析师类似,能够使你受益的编程语言有:
- Python 是一种通用编程语言,允许你写更少的代码行但执行相同的操作。
- R 是一种统计编程语言,允许你建立统计模型并创建数据可视化。
为了简化,我制作了上述图像,以便你可以直观地了解根据你的兴趣领域应该关注什么。
根据上述图像,它显示了你在特定数据角色中需要什么类型的编程语言以及其重要性。圆圈越大,对特定数据角色越重要。
根据 Stack Overflow 2022 年开发者调查,JavaScript 是使用最广泛的编程语言,而且已经使用了十年。然而,如果谈到用于学习编程的语言,HTML/CSS、JavaScript 和 Python 排在前列,并且相互接近。
随着数据角色的不断发展,跟上所有变化可能会令人不堪重负。在你转向下一个或学习新技能之前,先掌握一门编程语言的熟练程度更为明智。一步一步来,总比同时试图学习 10 项技能要好。
一旦你根据兴趣领域决定了编程语言,下一步就是使自己在该语言上达到熟练程度。
有许多现成的资源可以帮助你的学习,你只需要知道正确的资源。下面是一些你可以受益的链接
- 2022 年顶级数据分析师认证课程
- 完整的数据科学学习路线图
- 完整的机器学习学习路线图
- 完整的数据工程学习路线图
尼莎·阿利亚 是一位数据科学家、自由技术写作者和 KDnuggets 的社区经理。她特别关注于提供数据科学职业建议或教程,以及数据科学的理论知识。她还希望探索人工智能如何/能够提升人类生命的持久性。她是一个热衷学习者,寻求拓宽她的技术知识和写作技能,同时帮助指导他人。
更多相关主题
- KDnuggets™ 新闻 22:n06, 2 月 9: 数据科学编程…
- 数据科学编程语言及其使用时机
- 2023 年数据科学的 8 种编程语言)
- KDnuggets™ 新闻 22:n04, 1 月 26: 高薪副业…
- 顶级编程语言及其用途
- 创建领域特定 AI 模型的最佳实践
原文:
Gif 作者
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你所在组织的 IT
在阿拉伯语中,tqdm(taqadum)意味着进展,它用于为循环创建智能进度条。你只需要将 tqdm 包裹在任何可迭代对象上 - tqdm(iterable)。
tqdm 可以帮助你为数据处理、训练机器学习模型、多循环 Python 函数以及从互联网下载数据创建进度条。
使用 pip 安装该软件包:
复制粘贴下面的代码,并在我们的机器上运行,以亲身体验 tqdm 的魔力。
tqdm 显示了进度条、迭代次数、运行循环所用的时间以及每秒的迭代频率。
在本教程中,我们将学习如何自定义进度条,并将其与 pandas 数据框集成。我们还将学习额外的功能,如并发。
在下面的示例中,我们创建了一个 fun 函数,它接受整数 x 并在 x 秒延迟后运行。
然后,我们将 tqdm 包裹在 range 函数周围,这样它将运行一个循环,进行 0-9 的 10 次迭代。
第一次迭代将花费 零 秒。第二次迭代将花费 1 秒,以此类推。循环完成花费了 45 秒,我们体验到了动画进度条。
太棒了!
在这一部分,我们将使用 tqdm.notebook 模块在 Jupyter Notebook 中使用 Ipython 小部件显示进度条。
首先,创建一个简单的不同颜色的列表。然后,使用循环逐一打印名称,每次打印之间延迟一秒钟。
我们在列表周围添加了包装器,它显示了一个多色进度条。
太棒了!
让我们创建多循环进度条以模拟机器学习模型训练。
- trange 是 tqdm 在 range 函数周围的一个包装。
- 外层循环将运行 10 次,延迟 0.01 秒。
- desc 用于标记进度条。我会在进度条之前显示它。
- 内部循环将运行 10,000 次,延迟为 0.001。
正如我们所观察到的,多重进度条的动画效果非常惊艳。为了更好地理解,我希望你复制代码、修改它,并在你的机器上运行,亲身体验这份魔法。
在这一部分,我们将把 tqdm 集成到 pandas dataframe 中,并使用 progress_apply 将函数应用于 dataframe,同时显示进度条。
首先,我们将从 Kaggle 加载 酒店预订 数据集。然后,我们将显示 dataframe 的前五行。
数据集包含 2015 年 7 月 1 日至 2017 年 8 月 31 日之间的城市酒店和度假酒店预订的 条观察数据,包括实际到达的预订和被取消的预订。
你可以向右滚动以查看值和列名。
在这一部分,我们将使用客户的姓名创建一个新的列“user_name”。
- tqdm.pandas 用于为 pandas dataframe 启动进度条。我们还将添加进度条标签“Processing the name column”。
- user_name 函数将字符串转换为小写,并用“–”替换空格。
- 使用 .progress_apply() 函数对 dataframe 应用函数。这类似于 apply() 函数。对于 map() 函数,你可以使用 .progress_map()。
- 显示前三行
如果你向右滚动,你会看到一个新的列 user_name,其中包含值。
tqdm 不仅仅是循环的进度条。它还提供了如 tqdm.contrib.concurrent 的并行处理实用工具。
在这一部分,我们将从电子邮件列中提取 email provider。
- 从 tqdm.contrib.concurrent 导入 process_map。
- provider_extraction 函数将根据“@”和“.”拆分文本。
- 使用 process_map 将函数映射到 df[“email”] 上。我们将基于 CPU 数量选择 8 个 max_worker,并将 chunksize 设置为 64。
- 添加进度条标签并自定义它,以显示绿色进度条而不是黑色。
- 查看“email_provider”列的前 5 个值。
成功了!我们用绿色进度条提取了电子邮件提供者。这不是很棒吗?
玩弄 tqdm 并与大家分享我的经验是一次有趣的经历。除了乐趣,它还为软件开发提供了必要的功能。
我使用了 GitHub gist、Deepnote 嵌入和 Kaggle 来添加代码块和 Gif。你可以查看这些工具,并使用 tqdm 创造你的魔法。
在这篇博客中,我们学习了 tqdm 在 Python 循环、列表、多级进度条、pandas 集成以及使用并发模块进行并行处理中的应用。
阅读 文档 以了解更多功能:
- 异步
- 回调函数(Dask,Keras)
- 迭代器的装饰器(Tkinter,Matplotlib)
- CLI(终端,控制台)
- 精简包装器(并发,itertools)
- 日志记录
- 发送更新(slack,discord,telegram)
Abid Ali Awan (@1abidaliawan) 是一位认证的数据科学专业人士,热爱构建机器学习模型。目前,他专注于内容创作和撰写关于机器学习和数据科学技术的技术博客。Abid 拥有技术管理硕士学位和电信工程学士学位。他的愿景是使用图神经网络为那些在心理健康上挣扎的学生构建 AI 产品。
更多关于这个主题
- 开源工具在加速数据科学进展中的角色
- 适合初学者的有趣 Python 项目!
- 简短有趣的课程,让你迅速了解生成 AI
- 理解 Python 的迭代和成员资格:contains 和 iter 魔法方法指南
- 优化 Python 代码性能:深入探讨 Python 解析器
- Python 枚举:如何在 Python 中构建枚举
原文:
图片由作者提供
1. Google 网络安全证书 - 快速进入网络安全职业的轨道
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. Google IT 支持专业证书 - 支持你的组织的 IT 工作
对于任何数据领域的初学者来说,真正理解某一特定数据领域往往是困难的。你可以阅读理论解释和职位描述,观看解释它们的 YouTube 视频,但你的理解总停留在“明白了,但不完全”这一层次。
数据工程也是如此。当然,你需要了解什么是数据工程,以及 数据工程师做什么。我们将从这里开始。但你应该用实践来补充这些理论知识;在它们的交汇处存在真正的知识。
实际从事数据工程工作时,掌握数据工程是相当困难的。这主要是因为数据工程不仅仅涉及数据处理,还涉及数据架构和构建数据基础设施。
然而,有一种方法可以做到,那就是进行数据工程项目。了解数据工程师的工作将帮助我们选择适合的项目来掌握数据工程。
数据工程确保数据从多个不同的数据源流向数据存储,这些数据可以是批量的,也可以是实时的,供数据用户使用。在此过程中,数据还会被处理、分析,并转化为适合使用的格式。
这被称为数据管道,而数据工程师的工作是构建和维护它。
从这些描述中,我们可以提炼出数据工程的关键方面:
- 数据转化与处理
- 数据可视化
- 数据管道
- 数据存储
要掌握数据工程,你的项目应该专注于或包括以下一些主题。
由于数据工程的性质,想出一个只涉及其一个方面的项目几乎是不可能的;这就是数据工程师工作的全面性。真的不可能做一个仅处理数据的项目——好吧,这些数据来自哪里,又到哪里去呢?
所以,我选择的大多数项目都是端到端的数据工程项目,这些项目将教你如何构建数据管道——数据工程的核心。然而,这些项目采用了不同的方法和技术,因此你可以从一个项目中学到的方面,可能在另一个项目中学不到。
作者提供的图像
通过做项目,你能了解数据工程在实践中的实际情况。完成一个项目,你必须展示各种技术技能,对常见数据工程工具的熟悉程度,以及对整个过程的理解。
这使得这些项目非常适合学习。
没有比构建数据管道更能体现数据工程了。确保数据从源头流向数据用户,并通过扩展来支持数据驱动的决策,这正是数据工程的核心。
通过进行数据管道开发项目,你将学习到如何整合来自各种来源的数据以及整个 ETL 过程。
项目建议
链接: CodeWith You (Yusuf Ganiyu) 的 AWS 端到端数据工程
描述:这是一个优秀的项目,目标是构建一个数据管道,该管道将从 Reddit 中提取数据,进行转换,然后将其加载到 Redshift 数据仓库中。
视频引导你完成每一步,并且项目的 源代码也可以在 GitHub 上获取。
使用的技术:
- Reddit API
- Apache Airflow & Celery
- PostgreSQL
- Amazon S3
- AWS Glue
- Amazon Athena
- Amazon Redshift
数据转换意味着数据被改变为与分析工具兼容的标准化格式,适合于分析。
除了使数据分析和决策成为可能之外,数据转换还在提高数据质量方面发挥着重要作用,因为它涉及数据的清理和验证。
项目建议
链接: StrataScratch 的 Chama 数据转换
描述:这里的任务是使用你选择的任何编程语言来转换位于三个 .csv 文件中的 Chama 数据,但需遵循特定的转换规则。
使用的技术:
- Python(在官方解决方案中使用)
- Pandas
数据湖是存储大量原始格式数据的中央存储库。它们在处理和分析大数据时至关重要。随着大数据在商业中的日益普及,数据工程师必须了解如何实施数据湖。
项目建议
链接: Kaviprakash Selvaraj 的端到端 Azure 数据工程项目
描述:这个 Azure 数据端到端的数据工程项目使用销售数据。它涵盖了数据摄取、处理和存储等主题。它的有趣之处在于,它概述了设置和管理数据湖的步骤,即 Azure 数据湖。
使用的技术:
- Azure 数据工厂
- Azure Databricks
- Apache Spark
- Azure Databricks SQL 分析
- Azure 数据湖存储
- Delta Lake
数据从数据湖中提取,经过结构化处理后存储在数据仓库中。这些数据仓库作为商业智能的中央数据存储库。
实施数据仓库使得数据检索更高效,简化了数据管理,同时确保数据质量并提供数据洞察。
在数据仓库项目中,你将学习数据建模和数据库管理。
项目建议
链接: Ahmed Ali 的 AWS 数据工程项目
描述:这个端到端的项目使用 NYC 出租车数据,目标是在 AWS 中构建一个 ELT 管道。它适合学习数据仓库,因为数据被加载到数据仓库中,即 Amazon Redshift。
使用的技术:
- Amazon Redshift
- AWS Step Functions
- AWS Glue
- AWS Secrets Manager
- Amazon QuickSight
实时处理数据变得越来越重要,以便企业能够做出及时和主动的决策。因此,数据工程师必须了解如何建立一个能够有效且高效地实时处理数据的系统。
项目建议
链接: CodeWithYu (Yusuf Ganiyu) 的实时数据流
描述:这个 CodeWithYu 视频为你提供了关于构建数据流管道的详细指导。你将学习如何设置数据管道、实时流数据、分布式同步、数据处理、数据存储和容器化。
你将使用的数据是由随机用户.me API 生成的。正如我之前链接的其中一个视频,这个视频也有一个在 GitHub 上的源码。
使用的技术:
- Apache Airflow
- Python
- Apache Kafka
- Apache Zookeeper
- Apache Spark
- Apache Cassandra
- PostgreSQL
- Docker
虽然数据可视化可能不是你在考虑数据工程时首先想到的事情,但它是数据工程师的一项重要技能。
在数据工程的背景下,可视化数据通常意味着创建操作仪表板,展示数据管道的当前状态,例如处理速度或摄取的数据量。
数据工程师还可能会为存储在数据仓库中的数据创建仪表板,以帮助业务用户更轻松地获取所需信息。
项目建议
链接:从原始数据到数据可视化 - Naufaldy Erianda 的数据工程项目
描述:这个项目的目标是从各种资源中提取数据,对其进行转换,并使其可用于数据可视化。最后,你将创建一个在 Looker Studio 中的仪表板。
使用的技术:
- MySQL
- Airflow
- Google Cloud BigQuery
- dbt
- Looker Studio
数据工程是一个复杂的领域,可能对初学者来说有些令人望而生畏。真正开始理解数据工程的最简单方法是通过做数据工程项目。
我建议了六个项目来教你:
- 构建管道
- 转换数据
- 实现数据湖
- 实现数据仓库
- 为实时数据处理构建一个管道
- 可视化数据
机器学习在自动化各种数据工程任务中越来越重要。因此,为了不被落在后头,可以查看一些机器学习项目和数据科学项目,这些项目也可以用来练习数据工程技能。
内特·罗西迪是一位数据科学家,专注于产品策略。他还是一名兼职教授,教授分析学,并且是 StrataScratch 的创始人,该平台帮助数据科学家通过顶级公司提供的真实面试问题为面试做准备。内特撰写有关职业市场的最新趋势,提供面试建议,分享数据科学项目,并涵盖所有 SQL 相关内容。
相关话题
- 19 个初学者数据科学项目创意
- 作为数据科学家保持更新的 5 个项目创意
- 2022 年人工智能项目创意
- 掌握数据科学、数据工程、机器学习…的 25 个免费课程
- 掌握数据工程的 5 个免费课程
- 掌握数据工程的 10 个 GitHub 库
原文:
评论
作者 Charlie Custer,Dataquest.io
这是最近发布的*Dataquest.io 职业指南中的摘录,特别是章节如何为数据科学职位申请创建项目组合。*
1. Google 网络安全证书 - 快速进入网络安全职业生涯。
2. Google 数据分析专业证书 - 提升你的数据分析能力
3. Google IT 支持专业证书 - 支持你所在组织的 IT
数据科学作品集应包括 3-5 个展示你与工作相关技能的项目。目标是证明你能够完成工作,因此,作品集越能体现你申请职位的日常工作,它就越具说服力。
“[不要随意选择项目来加入你的简历或作品集,” Pramp 的首席执行官兼联合创始人 Refael “Rafi” Zikavashvili 说。“解决与你感兴趣的公司相关的问题。”
这适用于你在项目中承担的任务种类,也适用于你的项目考察的主题领域以及你处理的数据集类型。让我们更深入地了解这三个因素:
任务种类:你申请的工作中需要做哪些事情?你会做很多数据清理吗?机器学习?数据可视化?自然语言处理?你会专注于分析,还是会为其他人构建仪表板和其他分析工具?无论这些问题的答案是什么,都应将它们整合到你的作品集中。
主题领域:你是在寻找市场营销职位吗?你可能需要突出那些旨在回答市场营销相关问题的项目。如果你在寻找移动应用开发的数据工作,你会想展示那些能从应用数据中提取有用产品洞察的项目。使用你的项目展示你对申请职位相关的主题和商业问题的了解或至少兴趣,可以帮助你的申请脱颖而出。
数据集类型:不同类型的数据在不同的行业中可能很常见,因此展示你有处理类似数据集的经验有助于证明你具备完成工作的能力。例如,如果你在目标职位中可能会处理大量时间序列数据,展示一些时间序列分析技能会很有帮助。
遇到疑问时,请包含以下项目:
你的作品集越是精心定制以匹配你申请的具体职位,结果可能会越好。但是,如果你申请的是入门级职位,你可能会广泛撒网,并且也很可能会看中那些无论行业如何都需要大量相同技能的职位。如果你准备一个包含这些类别中至少一个项目的作品集,你将迈出优秀的一步。
数据清洗项目:数据准备、数据处理、数据清洗——无论你怎么称呼它,这占据了大多数数据科学工作的 60-80%,所以你绝对需要一个展示你数据清洗技能的项目。至少,你需要找到一个混乱的数据集(不要选择已经清洗过的数据),提出一些有趣的分析问题进行审查,然后清洗数据并执行一些基本分析以回答这些问题。
如果你想提升难度,收集你自己的数据(通过 API、网页抓取或其他方法)可以展示一些额外的技能。处理某种非结构化数据(与混乱但仍然结构化的数据集相对)也会显得不错。
数据讲述与可视化项目:讲述故事、提供真实洞察和用数据说服他人是任何数据科学工作的关键部分。如果你不能让 CEO 理解或基于分析采取行动,即使是世界上最好的分析也没有用。这个项目应该带领读者进行分析旅程,并得出即使是对编码或统计学背景几乎没有的普通人也能理解的结论。
数据可视化和沟通技巧在这里将十分重要,以展示和解释你的代码在做什么。可以选择用 Jupyter Notebook 或 R Markdown 呈现,但你可以通过额外的修饰来增加难度,比如自定义图表设计或包含一些互动元素。
团队项目:在团队中合作展示了你具备沟通和协作技能,这些在数据科学工作中非常重要。任何类型的项目都可以是团队项目;重要的是展示你能够在团队环境中有效工作,无论是在个人互动方面(清晰沟通、公平分工、真诚合作)还是在技术方面(使用 Git 和 GitHub 管理项目)。
如果你想提升难度,可以尝试参与一个受欢迎的开源项目,比如为你选择的编程语言中的数据科学相关开源库做贡献。这可能相当困难,但如果你能成功贡献到一个受欢迎的库或包中,这将使你的申请在雇主眼中脱颖而出。
例如,Spice IT Recruitment的首席 IT 招聘官 Alina Chistyakova 表示,“对知名开源项目的成功提交”是使数据科学作品集在她眼中脱颖而出的因素之一。Kitware的人力资源总监 Jeff Hall 表示,“真正为我们特定的开源项目做出贡献的候选人,会在申请者中加分。”
其他值得考虑的项目类型
端到端系统构建项目:许多数据科学工作可能包括构建能够有效分析定期数据集的系统,而不是仅仅分析单个特定数据集。例如,你可能会被要求为销售团队构建一个仪表盘,该仪表盘可视化公司的销售数据,并随着新数据的到来而定期更新。
这个项目应该展示你能够构建一个在新数据集输入时能执行相同分析的系统,并且能够构建一个其他人可以相对轻松理解和运行的系统。最简单的版本就是有良好注释的代码,能够从公共、定期更新的数据集中获取数据并进行一些分析。其文件应解释如何供他人使用,并且项目应相对容易让其他编码者通过命令行运行。
如果你想提升难度,完全可以尝试构建全面互动的网页仪表盘,或者构建一个处理实时/流数据的系统。关键在于展示你能构建一个可重用的分析系统,其他人,至少是其他程序员,可以理解它。
解释性博客文章、文章或讲座:能够用简单易懂的术语解释复杂的技术概念是任何数据科学家都应具备的宝贵技能,因此,如果能在博客文章、文章或会议讲座中对某些技术概念进行解释,并且解释得当,这可以成为你作品集中的一个很好的补充。只要确保选择一个适当复杂且你理解并能解释的主题。例如,解释在你目标行业中常用的机器学习算法底层发生了什么的博客文章,可能会是一个很好的作品集补充。
简介: Charlie Custer 是 Dataquest.io 的内容营销人员,是各种类型内容的创作者,尤其是:作家、编辑以及专注于 2D After Effects 工作的动画设计师。
原文。经允许转载。
相关内容:
- 在接受那份高大上的数据科学工作前请三思
- 如何辨别好数据科学工作和差数据科学工作
- 激活成功教程数据科学家面试
更多相关主题
- [5 个数据科学作品集的 Python 项目](https://www.kdnuggets.com/2022/12/5-python-projects-data-science-portfolio.html)
- [5 个高级数据科学作品集项目](https://www.kdnuggets.com/2023/03/5-advance-projects-data-science-portfolio.html)
- [5 个数据科学毕业生作品集项目](https://www.kdnuggets.com/5-portfolio-projects-for-final-year-data-science-students)
- [7 个机器学习作品集项目,提升简历](https://www.kdnuggets.com/2022/09/7-machine-learning-portfolio-projects-boost-resume.html)
- [令人惊叹的 LLM 作品集项目创意](https://www.kdnuggets.com/llm-portfolio-projects-ideas-to-wow-employers)
- [7 个 AI 作品集项目,提升简历](https://www.kdnuggets.com/7-ai-portfolio-projects-to-boost-the-resume)
原文:
作者提供的图片
我们都知道生成性 AI 是每个人都在谈论的话题。公司正在探索将其整合到业务中的新方法。一些公司正在考虑构建自己的工具。机器学习工程师正在寻找转型为提示工程师的方法。每个人都想分一杯羹。
生成性 AI 市场将继续增长并变得更加流行。许多人关注的一个主要方面是如何进入这个 450 亿美元的市场。
掌握生成性 AI 的基础是关于提示工程的。随着市场的增长,提示工程师的市场也将增长。
提示工程是为生成性 AI 工具设计输入的最佳实践,旨在产生最佳输出。公司希望获得这些最佳输出,因此需要最优秀的人来实现!
提示工程师需求旺盛,且正从中获得良好的职业发展:AI 提示工程师年薪 30 万美元
提示工程师需要的主要硬技能是技术熟练度:
- 人工智能
- 机器学习模型
- 自然语言处理
- GPT(生成式预训练变换器)
除了这些硬技能,他们还需要在语言敏锐度方面的软技能:
- 语言
- 语法
- 语法
- 语义学
由于这是一个一般性的博客文章,你们中的一些人可能已经是机器学习工程师,而一些人可能刚刚起步。因此,我将创建一个路线图来帮助你从头到尾成为提示工程师。
机器学习
链接: 机器学习专业化
首先,你需要对机器学习有一个良好的理解。斯坦福大学提供了这门课程,而 DeepLearning.AI 专门针对那些希望通过掌握机器学习的基本概念进入人工智能领域,同时通过一个 3 课程的项目来发展实际的机器学习技能的人。
自然语言处理
链接: 自然语言处理 (NLP) 专业化
一旦你对机器学习模型有了良好的基础理解,你现在需要了解语言的美妙以及它是如何在计算机中处理的。通过你从机器学习专业化中学到的内容,你将通过四个实践课程学习如何掌握前沿的 NLP 技术。
生成性 AI 和大型语言模型
链接: 使用大型语言模型的生成性 AI
现在是时候将这两者结合起来。将你对机器学习模型和自然语言处理的知识融合在一起,以理解大型语言模型。你将获得基础知识、实践技能,并对生成式 AI 的工作原理有一个功能性理解,同时在 AWS 专家的指导下利用前沿技术创造价值。
生成式 AI 和变换器
链接: 生成式 AI 语言建模与变换器
成为提示工程师的职业生涯中至关重要的一点是学习变换器。变换器帮助机器理解、解释和生成自然语言。在本课程中,你将能够解释变换器中的注意机制概念,并能够描述基于解码器的 GPT 和基于编码器的 BERT 的语言建模。然后,你将继续实施位置编码、掩蔽、注意机制、文档分类,并创建像 GPT 和 BERT 这样的 LLM。
提示工程
链接: ChatGPT 提示工程师的开发者指南
当你掌握了所有这些知识后,你需要学习提示工程。你职业转型的最终目标是理解并建立对提示工程最佳实践的直觉。有很多资源可以帮助你完善它。在这种情况下,你的软技能将发挥作用,以及你理解语言的能力和理解 ChatGPT 等工具及其语言解释方式的能力。
根据公司、地点和经验年限的不同,你的薪资会有所变化。
如果我们看看英国伦敦的提示工程师,入门级提示工程师的起薪在 30,000 英镑到 40,000 英镑之间。随着经验的积累,你可以期望赚取 40,000 英镑到 50,000 英镑。在高级职位,提示工程师的薪资范围从 50,000 英镑到 70,000 英镑。
话虽如此,在美国,一些提示工程师在一些领先公司每年的收入高达 350,000 美元。
如果你想赚大钱,并且渴望追求提示工程的职业生涯,可以看看提示工程中的更多专业技能,例如多模态提示工程、提示安全和提示测试自动化。
如果你正在考虑提示工程,现在是进行职业转型的时候了。生成式 AI 市场只会继续增长,需要人们来满足这些高需求。
Nisha Arya 是一名数据科学家、自由技术作家、以及 KDnuggets 的编辑和社区经理。她特别关注提供数据科学职业建议或教程以及与数据科学相关的理论知识。Nisha 涵盖了广泛的话题,并希望探索人工智能如何有助于人类寿命的延续。作为一个热衷的学习者,Nisha 旨在拓宽自己的技术知识和写作技能,同时帮助指导他人。
更多相关话题
- 数据科学家解析:技能、认证和薪资
- 每个机器学习工程师都应该具备的 5 项机器学习技能…
- KDnuggets 新闻,12 月 14 日:3 门免费的机器学习课程…
- 初级与高级数据科学家薪资:有什么区别?
- 我如何在 14 年的数据分析/科学职业生涯中将薪资提升 14 倍
- 2022 年技术专家薪资简单指南
原文:
图片由作者使用 DALL•E 3 创建
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升你的数据分析能力
3. 谷歌 IT 支持专业证书 - 支持你组织的 IT 工作
提示工程,像语言模型本身一样,在过去的 12 个月里取得了长足的进步。仅仅一年前,ChatGPT 的问世就将所有人对 AI 的恐惧和期望推向了一个充满压力的高压锅中,几乎在一夜之间加速了 AI 末日和拯救故事的传播。当然,提示工程在 ChatGPT 之前就已经存在,但我们用来从现在充斥我们生活的各种语言模型中引发所需回应的技术范围,随着 ChatGPT 的崛起,也真正进入了自己的发展阶段。五年前,随着最初的 GPT 问世,我们开玩笑说“提示工程师”有一天可能会成为一个职业头衔;而今天,提示工程师已经成为最热门的技术(或技术相关)职业之一。
提示工程是构建可以被生成型 AI 模型解读和理解的文本的过程。提示是描述 AI 应该执行任务的自然语言文本。
从“提示工程” 维基百科条目
抛开炒作不谈,提示工程现在已经成为那些经常与 LLM 互动的人的生活中不可或缺的一部分。如果你正在阅读这篇文章,那么你很可能就是你,或者你可能正朝着这样的职业方向发展。对于那些想了解提示工程是什么,以及——更重要的是——当前的提示策略环境是什么样的,这篇文章就是为你准备的。
让我们从基础开始。这篇文章,与 ChatGPT 进行有效互动的提示工程,在机器学习大师网站上涵盖了提示工程的基础概念。具体来说,介绍的主题包括:
- 提示原则,概述了在优化提示过程中需要记住的几个基础技巧
- 基础提示工程,如提示措辞、简洁性以及正面和负面提示
- 高级提示工程策略,包括单次和多次提示、链式思维提示、自我批评和迭代提示
- 合作力量技巧,用于识别和培养与 ChatGPT 的合作氛围,以推动进一步成功
提示工程是有效利用大型语言模型(LLMs)的关键方面,是定制与 ChatGPT 交互的强大工具。它涉及制定清晰而具体的指令或查询,以引导语言模型产生所需的响应。通过精心构造提示,用户可以将 ChatGPT 的输出引导向其预期的目标,并确保更准确和有用的回应。
来自《机器学习大师》文章 “有效与 ChatGPT 互动的提示工程”
一旦你掌握了基础知识,并对提示工程及一些当前最有用的技术有了了解,你就可以继续学习掌握这些技术。
以下 KDnuggets 文章分别概述了单一的常见提示工程技术。这些技术的复杂性有一个逻辑进展,因此从顶部开始逐步阅读将是最佳方法。
每篇文章包含了首次提出该技术的学术论文概述。你可以在文章中阅读该技术的解释,了解它如何与其他技术相关联,并找到其实现的示例,如果你对阅读或浏览相关论文感兴趣,也可以在文章中找到相关链接。
揭示链式思维提示在大型语言模型中的力量
本文深入探讨了链式思维(CoT)提示的概念,这是一种增强大型语言模型(LLMs)推理能力的技术。它讨论了 CoT 提示背后的原理、应用及其对 LLM 性能的影响。
探索思维树提示:AI 如何通过搜索学习推理
新的方法将问题解决表示为对大型语言模型的推理步骤进行搜索,允许超越从左到右解码的战略探索和规划。这提高了在数学谜题和创意写作等挑战中的表现,并增强了 LLM 的可解释性和适用性。
自动化思维链:AI 如何自我提示以进行推理
Auto-CoT 提示方法让大语言模型自动生成自己的演示来引导复杂推理,采用基于多样性的采样和零-shot 生成,减少了人工创建提示的工作。实验表明,它在推理任务中与手动提示的性能相匹配。
提示工程中的并行处理:Skeleton-of-Thought 技术
探索 Skeleton-of-Thought 提示工程技术如何通过减少延迟、提供结构化输出和优化项目来增强生成式 AI。
通过链式密度提示解锁 GPT-4 总结
解锁 GPT-4 总结的能力,利用链式密度(CoD)技术,该技术旨在平衡信息密度以获得高质量的总结。
通过链式验证解锁可靠生成:提示工程的飞跃
探索链式验证提示工程方法,这是减少大语言模型中幻觉的重要一步,确保 AI 响应可靠且真实。
思维图谱:大语言模型中精细问题解决的新范式
发现 Graph of Thoughts 如何旨在革新提示工程及大语言模型,使问题解决变得更加灵活和类人化。
Thought Propagation:大语言模型复杂推理的类比方法
Thought Propagation 是一种提示工程技术,指示大语言模型识别和解决与原始查询类似的一系列问题,然后利用这些相似问题的解决方案直接生成新答案或制定详细的行动计划,以完善原始解决方案。
尽管上述内容应该能帮助你开始工程化有效的提示,但以下资源可能提供一些额外的深度和/或替代视角,你可能会发现有用。
掌握生成式 AI 和提示工程:数据科学家的实用指南 [电子书] 来自 数据科学视野
这本电子书提供了对生成式 AI 和提示工程的深入理解,涵盖了关键概念、最佳实践和实际应用。你将获得对流行 AI 模型的见解,学习设计有效提示的过程,并探讨这些技术的伦理考虑。此外,书中包括了展示不同行业实际应用的案例研究。
掌握生成式 AI 文本提示 [电子书] 来自 数据科学视野
无论你是寻求灵感的作家、追求高效的内容创作者、热衷于知识分享的教育者,还是需要专业应用的从业人员,《掌握生成式 AI 文本提示》都是你的首选资源。在本指南结束时,你将能够利用生成式 AI 的力量,提升创造力,优化工作流程,并解决各种问题。
提示工程学的心理学 [电子书] 来自 数据科学视野
我们的电子书充满了引人入胜的见解和实用策略,涵盖了广泛的主题,如理解人类认知和 AI 模型、有效提示的心理学原理、考虑认知原理设计提示、评估和优化提示,以及将心理学原理融入你的工作流程。我们还包括了成功提示工程示例的实际案例研究,以及对提示工程、心理学和跨学科合作未来的探索。
提示工程指南 来自 DAIR.AI
提示工程学是一门相对新的学科,旨在开发和优化提示,以高效地使用语言模型(LMs)进行各种应用和研究主题。提示工程技巧有助于更好地理解大型语言模型(LLMs)的能力和局限性。
提示工程指南 来自 学习提示
生成式 AI 是当今世界上最热门的流行词,我们创建了最全面(且免费的)使用指南。该课程针对非技术读者,适合那些甚至可能没有听说过 AI 的人,是你进入生成式 AI 和提示工程的绝佳起点。技术读者也会在我们的后续模块中找到有价值的见解。
提示工程是 AI 工程师和 LLM 高级用户必备的技能。除此之外,提示工程已经发展成为一个独立的 AI 专业领域。目前还无法确定提示工程的确切角色——或者是否专职提示工程师职位会继续受到 AI 专业人士的青睐——但有一点是明确的:掌握提示工程的知识绝不会成为你的负担。通过本文中的步骤,你现在应该已经拥有了构建自己高性能提示的良好基础。
谁知道呢?也许你就是下一个 AI 语言大师。
Matthew Mayo (@mattmayo13) 拥有计算机科学硕士学位和数据挖掘研究生文凭。作为KDnuggets和Statology的主编,以及Machine Learning Mastery的贡献编辑,Matthew 的目标是让复杂的数据科学概念变得易于理解。他的专业兴趣包括自然语言处理、语言模型、机器学习算法以及探索新兴的人工智能。他的使命是普及数据科学社区中的知识。Matthew 从 6 岁起就开始编程。
更多相关内容
- 一些提升 LLM 模型的强大提示工程技巧
- 有效提示工程的艺术:免费课程和…
- 掌握生成 AI 和提示工程:一本免费电子书
- 数据可视化最佳实践及有效沟通资源
- Web LLM:将 LLM 聊天机器人带入浏览器
- 提示工程的艺术:解码 ChatGPT
原文:
图片由我使用 Microsoft Image Creator 创建
自从 OpenAI 向公众发布 ChatGPT 以来,关于一种新兴梦幻职业——提示工程师的讨论如潮水般涌现。这被誉为“AI 最火的工作”,承诺提供六位数薪资,无需编程经验。爱好者们将其描述为未来的工作,在这里,任何人都可以赚取 高达$335K的薪水,只需通过巧妙的交流让机器人给出正确的答案。毫不奇怪,Instagram 上的赚钱达人、YouTube 上的职业布道者和自称的 TikTok 预言者对此十分热衷。虽然这听起来像是一份梦幻工作,但它真的可实现吗?让我们深入了解一下背后的实际情况吧。
分析招聘广告数据可以提供关于劳动需求趋势、职责、资格要求和薪资预期的有价值见解。因此,我决定查看所谓的“AI 最火的工作”的广告数据,没有任何推测或假设。我从流行的在线招聘平台收集了 73 份最近发布的独特职位广告数据。阅读我的数据收集方法并访问数据集这里。虽然 73 个样本可能不是理想的样本量,但它为我们的分析提供了全面的起点。初步的发现令人清醒:雇主对“提示工程师”的需求稀缺。
现在,让我们看看数据。最常提到的职位名称是“提示工程师”。然而,“IT 创新分析师”、“自由职业 ML/AI 工程师”、“数据科学家”和“AI 工程师”等其他职位名称也出现了。我为职位描述中提到的资格要求和职责创建了词云。我认为词云并不意味着揭示非凡的见解,但它们可以代表文本中重要亮点的简明版本。如您所见,在职位广告中,雇主谈论计算机科学、模型开发、python、提示设计、机器学习、大型语言模型、自然语言处理和人工智能的频率高于其他内容。
1.如果将其与许多早期的轶事文章相比,这个样本量大得多,那些文章仅根据一个职位广告构建了六位数薪水的整个论点。
接下来,我使用 ChatGPT 和 Claude 总结了收集到的广告文本语料库,以识别顶级提示工程资格。我进行了多轮不同方法的提示,然后手动检查数据,以确保获得稳定和有效的输出。
提示工程师职位所需的基本资格:
- Python 编程能力(2-5 年的经验),包括对 TensorFlow、PyTorch、Keras 等 AI/机器学习框架的经验。
- NLP 和 LLM 的工作知识(2-5 年的经验),如 BERT、GPT-3/4、T5 等。了解这些模型的工作原理以及如何对其进行微调。
- 强大的分析和解决问题的能力。具备批判性思维、设计有效提示、分析模型性能和解决问题的能力是至关重要的。
- 精通提示工程原理和技术,如思维链、上下文学习、思维树等。这有助于引导模型实现期望结果。
- 出色的沟通技能,包括口头和书面沟通。这对于跨团队协作、解释技术概念和文档记录是必要的。
提示工程职位的核心职责包括:
- 提示设计与优化:设计、开发、测试和改进 AI 生成的文本提示,以最大限度地提高在各种应用中的有效性。这包括利用迁移学习技术和语言学专业知识来打造高质量和多样化的提示。
- 集成与部署:确保优化后的提示与整体产品或系统的无缝集成。与工程师协作,将提示和模型实施到生产环境中。
- 性能评估与改进:通过使用指标和用户反馈对提示性能进行严格评估。进行持续的测试和分析,以识别优化领域并迭代提示。
- 协作与需求收集:与数据科学家、内容创作者和产品经理等跨职能团队紧密合作,以理解需求并确保提示与业务目标和用户需求一致。
- 知识共享:记录提示工程的过程和结果。教育团队关于提示的最佳实践。保持对最新人工智能进展的关注,以带来创新。
可以公平地说,所谓的“AI 最热门工作”中的“无编程经验”前提与现实相差甚远,因为提示工程市场上最受需求的技能是编程熟练度和 NLP 及 LLMs 经验。而且这些并不是简单的编程技能,他们寻找的是熟悉 ML 和 AI 框架的专家。雇主不仅要求对 LLMs 和编码有“了解”,而且平均来看,他们寻求具有 2-5 年处理结构化和非结构化数据、编码、NLP、ML 和 AI 经验的专家。
阅读主要职责可以更清楚地了解为什么这个职位要求如此高的编程和 LLMs 技能。作为一种专业工作,提示工程并不是坐在电脑前玩生成 AI 模型来提供正确答案。它是关于构建业务信息系统,优化输入,与其他信息系统和产品无缝集成,并向用户和客户提供价值。换句话说,企业并不是寻找能够与 ChatGPT 聊天的人,而是希望聘请能够优化类似 GPT 的模型并将其与自己产品集成的专家。
职位广告数据分析显示,技术背景在计算机科学、数学、分析、工程、物理或语言学方面更受青睐。通常要求计算机科学或相关领域的学士学位,更高级的职位通常要求或更倾向于高级学位。薪资根据责任和资历差异很大,最低可达 30k 美元,每年最高可达 50 万美元。平均而言,包含薪资信息的职位广告年薪在 90k 到 195k 美元之间。
尽管最初充满热情,但关于提示工程作为梦想工作的可行性产生了怀疑。正如沃顿商学院教授伊桑·莫利克去年在一条twitter post中写道,“提示工程师不是未来的工作”,因为“AI 变得更容易”,在解读基本提示方面更为智能。一个月前,Coursera 发布了一份经过深思熟虑的prompt 工程职业指南(另见此处)。似乎最初的生成 AI 热潮正在缓慢消退,我们现在有更好的机会了解 AI 的现状和未来趋势。不要误解我的意思。生成 AI 输出的质量在很大程度上依赖于输入。学习如何使用和与这些复杂模型互动正成为几乎所有人都需要的重要技能。越来越多的科学研究表明,系统化的提示方法可以显著改善这些模型的结果(参见1,2,3,4,5,6,7)。然而,“提示工程”并不是(也从未是)一些人想象中的梦想工作。如果没有丰富的编程、自然语言处理、机器学习、产品开发和软件集成经验,没有人会为你仅仅通过顺利引导 ChatGPT 得到正确答案而支付六位数的薪水。
提示工程和生成 AI 应用的现状和未来似乎受到两个重要趋势的影响:首先,正如伊桑·莫利克提到的,生成 AI 模型在从简单的提示中生成良好输出方面变得越来越熟练,可能类似于互联网搜索引擎在从简单的搜索查询中返回更相关结果的能力。其次,生成 AI 模型正越来越多地集成到商业产品、服务和平台中。这种适应对 AI 经济的成功至关重要。因此,了解如何优化、微调、定制和将生成 AI 模型与当前信息系统和产品集成是并将继续是一项宝贵的技能。这就是为什么当前的提示工作广告中对程序员、系统设计师以及能够与其他产品开发团队成员协作的人的需求如此巨大。
Mahdi Ahmadi 是北德克萨斯大学信息技术与决策科学系的临床助理教授,我教授数据挖掘、商业智能和数据分析。我的主要研究领域是机器学习和数据挖掘技术在商业中的应用。我还为企业、高等教育机构和非营利组织提供数据分析问题的咨询。
更多相关内容
- 从虚构到现实:ChatGPT 和科幻对真正人工智能的梦想…
- 免费的数据科学面试书籍,助你获得梦想工作
- 提示工程的艺术:解码 ChatGPT
- 一些顶尖的提示工程技术以提升我们的 LLM 模型
- 为什么提示工程是一个潮流
- 提示工程的兴起与衰退:潮流还是未来?
原文:
总部位于瑞士苏黎世,Propulsion Academy 提供为期 12 周的完整数据科学训练营,毕业后具备工作所需的技能。由于前期项目的校友已经进入职场,课程重点包括数据科学的关键概念,如统计学、R 和 Python、数据清洗、实验设计、机器学习、数据可视化和自然语言处理。欲了解更多信息,请查看课程页面。
1. 谷歌网络安全证书 - 快速进入网络安全职业的快车道。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT 需求
多亏了谷歌以及两所知名大学——苏黎世联邦理工学院和苏黎世大学的强大存在,苏黎世的数据科学领域正蓬勃发展。公司们发现很难找到人才来满足对数据科学的新需求。
瑞士位于欧洲的心脏地带,其战略位置和高质量的生活使其对欧洲及其他地区的人们极具吸引力。该项目的世界级讲师拥有 Facebook、Airbnb、超级高铁技术和 MIT 的经验。课程重点在于实践学习,学生们将在最终项目中使用真实公司的数据。对于美国学生来说,这是一个绝佳的机会,可以暂时离开,成为一个绝妙项目的一部分。
要被接受进入该项目,候选人必须通过个人和技术面试。任何人都有潜力入选,但被接受的候选人通常拥有数学、科学和金融背景。准备好迎接挑战了吗?
。
使用代码KDNUGGETS在申请表中可以获得折扣。
更多相关信息
- 最佳数据科学资源、训练营和课程
- 哪个更好:数据科学训练营、学位还是在线课程
- 初学者的免费数据分析师训练营
- 免费全栈 LLM 训练营
- KDnuggets 新闻,4 月 6 日:8 门免费的 MIT 数据科学课程
- KDnuggets 新闻,4 月 13 日:数据科学家应该了解的 Python 库
原文:
评论
在上一篇文章中,我们回顾了一些关于剪枝神经网络的主要文献。我们了解到剪枝是一种模型优化技术,涉及到在权重张量中消除不必要的值。这将导致更小的模型,其准确性非常接近基线模型。
在这篇文章中,我们将通过一个示例来应用剪枝,并查看对最终模型大小和预测误差的影响。
导入常见库
1. 谷歌网络安全证书 - 快速进入网络安全职业。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持组织的 IT 工作
我们的第一步是处理几个导入:
- 和 将帮助我们评估模型的大小。
- 用于模型剪枝。
- 用于加载已保存的模型。
- 当然还包括 和 。
最后,我们初始化 TensorBoard,以便能够可视化模型:
数据集生成
在这个实验中,我们将使用 scikit-learn 生成一个回归数据集。然后,我们将数据集拆分为训练集和测试集:
模型无剪枝
我们将创建一个简单的神经网络来预测目标变量 。然后检查均方误差。在此之后,我们将其与整个模型剪枝后的结果进行比较,然后与仅剪枝 层后的结果进行比较。
接下来,我们设置一个回调,在模型停止改进后停止训练,经过 30 轮。
让我们打印出模型的摘要,以便将其与剪枝模型的摘要进行比较。
让我们编译模型并训练它。
由于这是一个回归问题,我们监控的是平均绝对误差和均方误差。
这是绘制为图像的模型。输入是 10,因为我们生成的数据集有 10 个特征。
现在让我们检查均方误差。我们可以继续到下一部分,看看剪枝整个模型时该误差如何变化。
使用 ConstantSparsity 剪枝计划剪枝整个模型
让我们将上述均方误差与修剪整个模型后获得的均方误差进行比较。第一步是定义修剪参数。权重修剪是基于大小的。这意味着一些权重在训练过程中被转换为零。模型变得稀疏,从而使其更容易压缩。稀疏模型还使推理更快,因为零值可以被跳过。
期望的参数是修剪计划、块大小和块池化类型。
- 在这种情况下,我们设置了 50% 的 稀疏性,意味着 50% 的权重将被置零。
- — 块的尺寸(高度、宽度)
矩阵权重张量中的稀疏模式。
- — 用于池化权重的函数
块。必须是 或 。
现在我们可以通过应用我们的修剪参数来修剪整个模型。
让我们查看模型摘要。将其与未修剪模型的摘要进行比较。从下面的图像中我们可以看到整个模型已经被修剪——稍后我们将通过修剪一个密集层后获得的摘要看到不同之处。
在我们可以将模型拟合到训练和测试集之前,我们必须编译模型。
由于我们正在应用修剪,我们需要定义几个修剪回调函数,除了早期停止回调函数外。我们定义了记录模型的文件夹,然后创建了一个包含回调函数的列表。
更新修剪包装器与优化器步骤。如果不指定它,将会导致错误。
将修剪摘要添加到 Tensorboard。
解决了这些问题后,我们可以将模型拟合到训练集。
检查该模型的均方误差时,我们注意到它略高于未修剪模型的均方误差。
仅使用 PolynomialDecay 修剪计划修剪密集层
现在,让我们实现相同的模型——但这一次,我们只修剪密集层。注意在修剪计划中使用的 函数。
从摘要中,我们可以看到只有第一个密集层将被修剪。
然后我们编译并拟合模型。
现在,让我们检查均方误差。
我们无法将此处获得的 MSE 与之前的进行比较,因为我们使用了不同的剪枝参数。如果你想比较它们,请确保剪枝参数相似。经过测试, 在这种特定情况下比 的误差更低。比较不同剪枝参数获得的 MSE 很有用,以便你可以选择不会降低模型性能的参数。
比较模型大小
现在让我们比较有剪枝和无剪枝模型的大小。我们首先训练并保存模型权重以供后续使用。
我们将设置基础模型并加载保存的权重。然后我们剪枝整个模型。我们编译、训练模型,并在 Tensorboard 上可视化结果。
这是 TensorBoard 上剪枝总结的一个快照。
其他剪枝总结也可以在 Tensorboard 上查看。
现在让我们定义一个函数来计算模型的大小。
现在我们定义导出模型并计算其大小。
对于剪枝模型, 用于恢复原始模型的稀疏权重。注意被剪枝和未剪枝模型的大小差异。
对两个模型进行预测,我们发现它们具有相同的均方误差。
最终思考
你可以测试不同的剪枝计划如何影响模型的大小。显然,这里的观察结果并不普遍。你需要尝试不同的剪枝参数,了解它们如何影响你的模型大小、预测误差和/或准确性,具体取决于你的问题。
要进一步优化模型,你可以对其进行量化。如果你想深入了解这一点以及更多内容,请查看下面的资源和仓库。
资源
Keras 中的剪枝示例 | TensorFlow 模型优化
欢迎来到基于幅度的权重剪枝的端到端示例。有关剪枝是什么以及如何…
剪枝综合指南 | TensorFlow 模型优化
适用于移动和嵌入式设备的 TensorFlow Lite
mwitiderrick/TensorFlow 中的剪枝
在这篇文章中,我们通过一个示例来应用剪枝,并查看对最终模型大小的影响…
8 位量化和 TensorFlow Lite:通过低精度加速移动推理
heartbeat.fritz.ai
简介:德里克·姆维提是一位数据科学家,对知识分享充满热情。他通过 Heartbeat、Towards Data Science、Datacamp、Neptune AI、KDnuggets 等博客积极参与数据科学社区。他的内容在互联网上的浏览量超过一百万次。德里克还是一名作者和在线讲师。他还与多个机构合作,实施数据科学解决方案并提升员工技能。德里克在多媒体大学学习了数学和计算机科学,还是 Meltwater 创业技术学校的校友。如果数据科学、机器学习和深度学习的世界引起了你的兴趣,你可能会想了解他的Python 数据科学与机器学习完整课程。
原文。经许可转载。
相关:
- 使用 TensorFlow Serving 将训练好的模型部署到生产环境
- 处理机器学习中的不平衡数据
- 如何将 PyTorch Lightning 模型部署到生产环境
更多主题
- 决策树剪枝:如何与为什么
- PyTorch 还是 TensorFlow?比较流行的机器学习框架
- TensorFlow 在计算机视觉中的应用 - 轻松实现迁移学习
- Tensorflow 的“Hello World”
- 使用 Tensorflow 训练图像分类模型指南
- 使用 TensorFlow 和 Keras 构建和训练你的第一个神经网络
原文:
评论
图片来源:Pixabay(商业用途免费)
介绍
1. Google 网络安全证书 - 快速进入网络安全职业。
2. Google 数据分析专业证书 - 提升你的数据分析能力
3. Google IT 支持专业证书 - 支持你的组织的 IT
股票市场分析和良好的投资(为了长期增长)需要仔细审查财务数据。各种指标和比率通常用于这种分析,即评估股票的固有质量。你可能在财务和投资专家的讨论中听说过其中的一些。
例如,市盈率或PE 比率。它是股价与年收益/每股的比率。
或者,每股账面价值。它是公司普通股权益与其流通股数的比率。当一只股票被低估时,它的每股账面价值相对于市场上当前的股价会更高。
利用市盈率和 PEG 评估股票的未来
市盈率(P/E)是投资者和分析师用于确定股票的最广泛使用的指标之一……
通常这些数据可以从像雅虎财经这样的网页上获得。然而,除非你使用某种付费注册服务,否则你无法以编程方式下载或抓取数据。
雅虎财经 - 股票市场实时行情、报价、商业与金融新闻
在雅虎财经,你可以获得免费的股票报价、最新新闻、投资组合管理资源、国际市场……
然而,许多微服务存在,它们通过简单的 API 调用提供这些数据。为了利用这一点,我们在本文中展示了如何编写一个简单的 Python 类脚本,以接口连接到金融数据微服务。
图像来源:作者截屏(网站)
使用这个 Python 类,你可以通过调用一系列简单的方法来提取数据并构建一个 Pandas DataFrame,其中包含几乎所有重要的财务指标和比率。
我们还提供了简单的图表方法(柱状图和散点图),用于图形化分析数据。
请注意,你需要从网站上获取自己的秘密 API 密钥(免费),并在实例化类对象后注册它。
说到这一点,让我们深入了解 Python 包/类以及附带的各种方法。
Python 类和各种内置方法
核心 Python 类可以在我的 Github 仓库中找到。欢迎给仓库加星和分叉,进行改进。你可以直接克隆该仓库,并在自己的笔记本中开始使用脚本。
为了保持代码整洁,在本文中,我们展示了在测试 Jupyter 笔记本中使用该类的方法。
我们首先导入常规库和类对象。
从文件中读取秘密 API 密钥并注册
注意,你需要在与代码文件相同的目录中有一个名为 的文件。没有它,你无法继续。
在这里注册:https://financialmodelingprep.com/login
创建一个类实例
它有一个描述
没有注册密钥,我们无法访问数据
我们肯定想要开始提取数据。假设我们想为公司 Apple(股票代码为‘AAPL’)构建一个数据字典。我们可以尝试,但不会成功,因为我们还没有用类对象注册秘密密钥。
所以,我们注册了秘密密钥
让我们现在构建一个数据字典
对于该类中的所有方法,我们必须传递公司(在美国金融市场上的)股票代码。例如,Apple Inc 的代码是‘AAPL’。
如果我们检查这个字典,会发现从 API 端点拉取了大量数据。下面提供了部分截图。
用多个公司的数据构建一个 DataFrame
使用 Python 字典是可以的,但对于大规模数据分析,我们应考虑构建 Pandas DataFrame。我们提供了一个内置方法来实现这一点。构建 DataFrame 就像传递一个股票代码列表一样简单,代码会为您完成所有的数据抓取和结构化工作。
比如我们想下载以下公司的所有财务数据,
- Microsoft
- Nvidia
- 苹果
- Salesforce
一份格式良好的 DataFrame 准备好了!
究竟有哪些数据可用?
我们可以轻松检查从 API 服务中提取的数据类型。注意,我们传递参数‘profile’,‘metrics’ 或 ‘ration’,并返回相应的数据项列表。
绘图 — 可视化分析
在这个包中,我们包含了用于数据的简单可视化分析的代码。
查看各种指标和财务比率在简单条形图中的表现通常是有帮助的。为此,只需传递您想绘制的变量名称。您还可以包括常见的 Matplotlib 关键字参数,例如颜色和透明度(alpha)。
您还可以绘制简单的散点图来直观分析财务指标之间的关系。
您还可以传递第三个变量用于调整散点图中标记的大小。这在间接上有助于在二维图中可视化超过两个变量。例如,我们在下面的代码中将股价参数作为第三个变量传递。
自定义分析与底层 DataFrame
投资者经常会想要根据可用数据创建自己的筛选器和投资逻辑。
例如,我们可能只考虑市值 > 2000 亿美元的公司,然后在条形图中查看企业价值与 EBITDA 比的指标。
我们可以访问底层 DataFrame,创建自定义 DataFrame,然后将此自定义 DataFrame 分配给一个新的对象,以利用现成的图表方法。
这样,我们就无需再次从 API 请求数据。我们应该尽量避免读取数据,因为免费 API 密钥的读取数据量有限。
然后我们根据这个自定义 DataFrame(嵌入在自定义类对象中)绘制条形图。
摘要
我们展示了一个简单的 Python 类/包的实现和使用,这可以用于从微服务中提取广泛的金融指标和比率。
要获取此服务的免费 API 密钥,必须进行注册。使用量当然在免费账户下是有限制的。网站还提供了无限使用的付费计划。
请注意,本工作重点关注静态金融数据,即年度财务报表中的数据,而非动态时间序列股市定价数据。它应当用于评估公司的长期财务实力,以便进行以增长为导向的投资。
作为数据科学家,你可能经常需要编写自定义的类/包以从微服务 API 中提取和分析数据,希望这篇文章(及相关代码库)能为你提供一个简单但有效的入门介绍。
图片来源:Pixabay(可商用免费)
你还可以查看作者的GitHub 代码库,获取机器学习和数据科学方面的代码、想法和资源。如果你像我一样,对 AI/机器学习/数据科学充满热情,请随时在 LinkedIn 上添加我或在 Twitter 上关注我。
原文。经许可转载。
相关:
- 时间序列分类:合成与真实金融时间序列
- 数据科学家免费的经济学与金融课程
- 在金融服务中应用 NLP 的四种方法
更多相关话题
- 如何使用 MLFlow 打包和分发机器学习模型
- 拖拽、放置、分析:无代码数据科学的兴起
- 如何通过 ML 模型可解释性加速 AI 采纳之旅…
- Pydantic 教程:简化 Python 数据验证
- 用 Python 自动化数据清洗的 5 个简单步骤
- 提升 Python 代码速度的 3 种简单方法
原文:
评论
图片由Markus Winkler提供,来源于Unsplash
将无代码机器学习推向边缘
无代码或低代码平台近年来获得了广泛关注,因为那些编程和开发经验有限的人对相关技术产生了兴趣。这些平台允许缺乏经验的人做一些事情,比如构建移动应用程序、在网站和工作环境中部署 Web 应用程序,甚至利用人工智能和机器学习。
传统上,一个人需要在各种开发和编程学科中拥有扎实的背景才能真正利用机器学习,但现在已经不再是这样。当然,对于那些具备适当背景的人,部署可以更加复杂,但 TinyML 和无代码机器学习解决方案正在使这些技术对所有人更具可及性。
实际上,这是一种无代码人工智能的形式,其目标不仅仅是“使人工智能普及”,还在于在商业环境中大幅扩展其能力。无代码机器学习或自动机器学习(autoML)虽然不如它们的人工智能同行那样流行,但它们确实是一个新兴领域。TinyML 虽然略有不同,但由于逻辑嵌入在设备本身中,也提供了相同的好处。
将计算推向边缘
即使在低代码形式下,这些技术也需要不断且大量的数据流,并实时摄取和处理这些数据。人工智能和机器学习解决方案可以比人脑更快地处理信息。因此,它们已经提高了效率和输出。但它们也受到当前网络的限制,这些网络可能会出现带宽和服务中断、瓶颈以及各种延迟或复杂情况。
理所当然,提供所需的主动连接来解锁这些技术可以进一步提升性能好处。这正是边缘计算发挥作用的地方。
边缘计算涉及将计算和处理解决方案移近源头,或者说移至处理需求发生的地方。这弥合了实际设备上进行的复杂计算与在外部服务器或系统上远程进行的计算之间的差距。
本地处理事件意味着为设备提供足够的能力来完成工作,但这并不总是可能、方便或具有成本效益。相比之下,远程处理提供了更多的能力,但通常以速度和性能为代价。边缘计算解决方案提供了两者的最佳结合,改善了可扩展性、可靠性和定制性。
还可以优化“边缘”的位置,以减少延迟、降低运营和服务成本、提高可见性、加速部署等等。一家物联网初创公司在顾问的帮助下利用了 AWS 计算优化器,实施了计算节省计划——将整体账单降低了 37.5%每月。这突显了云和边缘计算解决方案的潜在灵活性和动态特性。
与无代码机器学习的关系是什么?
无代码机器学习旨在使相关技术的民主化和提高可访问性。这意味着越来越多的人将能够访问机器学习、人工智能和神经网络解决方案,而依赖性和可靠性将变得更加重要。
问题是,大多数选择使用无代码或低代码解决方案的人员通常没有足够的能力或基础设施来支持宏观层面的机器学习平台。想象一下,一个小型初创公司推出了一款移动应用,该应用使用机器学习分析用户的电影和电视偏好,以提供推荐。这个主意不错,对吧?像这样的解决方案已经在探索中并且已经在使用中。
起初,处理能力不会成为问题。但一旦安装基础扩展到数十万甚至数百万的不同用户和账户,就需要大量的计算能力来支持平台。
在某个时候,开发者需要扩展其基础设施,以处理更大量的工作,而不会影响性能和可靠性。从成本和性能的角度来看,边缘计算解决方案是一种更可管理的方式。这些方案也更加容易获取,这也是云技术的主要优势之一。
无代码应用的边缘计算
另一个因素是无代码机器学习应用的支持方式。将无代码平台本身推向网络边缘具有相同的效率、性能和成本效益。
当你使用开发平台,如 IDE 时,你希望获得几乎即时的反馈。如果 Web 应用程序充分利用了边缘处理,那么这会改善整个体验,并使快速反馈成为可能。
另一方面,TinyML 不需要边缘计算 或互联网连接的硬件。一切都在设备或微控制器上本地进行。它已成为工业物联网 (IIoT) 的首选实践,其中嵌入式计算提供了无与伦比的性能和速度。
边缘计算 vs. 云计算
理解边缘计算和云计算并非可以互换,且它们不互相替代是很重要的。它们用于不同的目的。边缘计算通常是处理和传递时间敏感数据的首选解决方案,而云计算则用于没有时间限制的数据。
边缘计算最适合本地化的情况,其中开放连接可能不稳定,大部分处理能力必须迅速而靠近设备或系统完成。当技术依赖于速度和可靠性时,比如 在医疗和保健设备 中,边缘计算也是一个出色的解决方案。在所有其他情况下,云计算可能适用。
因此,将无代码 ML 平台和计算工作推到边缘并不意味着技术上推到云端。它们有相似之处,但并不相同。
未来的边缘
边缘计算是一种可行且有益的数据处理形式,极其适用于更传统的机器学习应用以及无代码或低代码 ML 部署。它将计算能力更接近最终用户或系统的输出,从而提高性能和可靠性,并提供一种更具可扩展性的解决方案,能够满足 ML 驱动应用程序的需求。
简介:Devin Partida 是一名大数据和技术作家,同时也是 ReHack.com 的主编。
相关:
- 在边缘设备上实施 MLOps
- 高性能深度学习:如何训练更小、更快、更好的模型 – 第四部分
- MLOps 是一门工程学科:初学者概述
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升您的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持您的组织进行 IT 管理
更多相关内容
- MLOps:推动 AI 走向主流的关键
- 边缘计算中的机器学习
- 在边缘 AI 应用中最大化性能
- Windows on Snapdragon 将混合 AI 带到边缘应用
- 介绍 TPU v4:谷歌用于大型语言模型的尖端超级计算机
- 边缘 AI 的承诺及有效采纳的方法
原文:
评论
由 Moez Ali,PyCaret 的创始人兼作者
PyCaret — 一个开源的低代码 Python 机器学习库
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你所在的组织的 IT
PyCaret
PyCaret 是一个开源的低代码机器学习库和端到端模型管理工具,内置于 Python 中,用于自动化机器学习工作流程。它的易用性、简单性以及能够快速高效地构建和部署端到端机器学习管道的能力将令你惊叹。
PyCaret 是一个低代码库,可以用几行代码替代数百行代码。这使得实验周期变得极其快速高效。
PyCaret 是 简单易用的。PyCaret 中执行的所有操作都被顺序存储在一个 Pipeline 中,完全自动化以 部署。无论是填补缺失值、进行独热编码、转换分类数据、特征工程,还是超参数调优,PyCaret 都会自动完成。要了解更多关于 PyCaret 的信息,请观看这段 1 分钟的视频。
PyCaret — 一个开源的低代码 Python 机器学习库
PyCaret 的特点
作者提供的图像
PyCaret 的模块
PyCaret 是一个模块化库,按模块排列,每个模块代表一个机器学习用例。截止到本文撰写时,支持以下模块:
作者提供的图像 — PyCaret 支持的机器学习用例
时间序列模块正在开发中,将在下一个主要版本中推出。
安装 PyCaret
安装 PyCaret 非常简单,仅需几分钟。我们强烈建议使用虚拟环境,以避免与其他库的潜在冲突。
PyCaret 的默认安装是一个精简版的 pycaret,只安装了硬性依赖项,列在这里。
当你安装 PyCaret 的完整版时,所有的可选依赖项也会被安装,详细信息见 这里。
PyCaret 数字化 — 作者提供的图片
??? 开始吧
在我向你展示如何用 PyCaret 轻松做机器学习之前,让我们先从高层次上谈谈机器学习生命周期:
机器学习生命周期 — 作者提供的图片(从左到右阅读)
- 业务问题 — 这是机器学习工作流的第一步。根据用例和问题的复杂性,这一步可能需要几天到几周的时间才能完成。在这一阶段,数据科学家会与主题专家(SME)会面,以了解问题,采访关键利益相关者,收集信息,并设定项目的总体期望。
- 数据来源与 ETL — 一旦理解了问题,就可以利用访谈中获得的信息从企业数据库中获取数据。
- 探索性数据分析(EDA) — 模型尚未开始。EDA 是你分析原始数据的阶段。你的目标是探索数据,评估数据的质量、缺失值、特征分布、相关性等。
- 数据准备 — 现在是准备数据模型训练的时候了。这包括将数据划分为训练集和测试集、填补缺失值、独热编码、目标编码、特征工程、特征选择等。
- 模型训练与选择 — 这是大家都兴奋的步骤。这包括训练一堆模型、调整超参数、模型集成、评估性能指标、模型分析如 AUC、混淆矩阵、残差等,最后选择一个最佳模型用于生产环境中的业务应用。
- 部署与监控 — 这是最后一步,主要涉及 MLOps。这包括打包最终模型、创建 Docker 镜像、编写评分脚本,然后将所有这些整合在一起,最终将其发布为一个 API,用于对通过管道传入的新数据进行预测。
传统的方法相当繁琐、耗时,并且需要大量的技术知识,我可能无法在一个教程中涵盖所有内容。然而,在这个教程中,我将使用 PyCaret 来演示数据科学家如何变得如此高效地完成这些任务。
??? 业务问题
在本教程中,我将使用达顿商学院的一个非常流行的案例研究,该案例研究发表在哈佛商业评论上。案例涉及两个未来要结婚的人。名叫Greg的男子想买一个戒指向名叫Sarah的女孩求婚。问题是找到 Sarah 会喜欢的戒指,但在朋友的建议下,Greg 决定买一个钻石石头,以便 Sarah 可以决定她的选择。Greg 随后收集了 6000 颗钻石的数据,包括价格和切工、颜色、形状等属性。
??? 数据
在本教程中,我将使用达顿商学院的一个非常流行的案例研究的数据集,该案例研究发表在哈佛商业评论上。本教程的目标是根据钻石的属性(如克拉重量、切工、颜色等)预测钻石价格。你可以从PyCaret 的仓库下载数据集。
数据的样本行
??? 探索性数据分析
让我们做一些快速的可视化,以评估独立特征(重量、切工、颜色、清晰度等)与目标变量的关系。
让我们检查目标变量的分布。
注意到的分布是右偏的,我们可以快速检查对数变换是否能使大致正态分布,从而给假设正态分布的算法提供机会。
这确认了我们的假设。变换将帮助我们摆脱偏斜,使目标变量大致符合正态分布。基于此,我们将在训练模型之前对变量进行变换。
??? 数据准备
在 PyCaret 的所有模块中,是任何使用 PyCaret 的机器学习实验中的第一个也是唯一的强制步骤。该函数负责在训练模型之前所需的所有数据准备工作。除了执行一些基本的默认处理任务外,PyCaret 还提供了广泛的预处理功能。要了解 PyCaret 中所有预处理功能的更多信息,请参见这个链接。
pycaret.regression 模块中的 setup 函数
当你初始化 PyCaret 中的函数时,它会分析数据集并推断所有输入特征的数据类型。如果所有数据类型都被正确推断,你可以按回车继续。
注意:
- 我已传递和,这将告诉 PyCaret 自动记录所有的指标、超参数和模型工件,在建模阶段进行时,这一切都在后台进行。这是由于与MLflow的集成实现的。
- 此外,我在中使用了。PyCaret 将使用 box-cox 变换在后台转换变量。这影响了数据的分布,类似于对数变换(技术上有所不同)。如果你想了解更多关于 box-cox 变换的信息,你可以参考这个链接。
设置输出 — 为显示目的已截断
??? 模型训练与选择
现在数据已经准备好进行建模,让我们使用函数开始训练过程。它将训练模型库中的所有算法,并使用 k 折交叉验证评估多个性能指标。
的输出
最佳模型的残差和 图
完成并保存 Pipeline
现在让我们最终确定最佳模型,即在整个数据集(包括测试集)上训练最佳模型,然后将 Pipeline 保存为 pickle 文件。
函数将把整个 Pipeline(包括模型)保存为本地磁盘上的 pickle 文件。默认情况下,它将把文件保存到与 Notebook 或脚本所在的文件夹相同的位置,但如果需要,您也可以传递完整路径:
??? 部署
记住我们在设置函数中传递了以及。让我们看看 PyCaret 在 MLflow 的帮助下在后台做了什么神奇的事情。要查看这些魔法,让我们启动 MLflow 服务器:
现在打开你的浏览器,输入“https://localhost:5000”。它将打开一个类似这样的用户界面:
上表中的每一项代表一个训练运行,产生一个训练好的 Pipeline 和一堆元数据,如运行的日期时间、性能指标、模型超参数、标签等。让我们点击其中一个模型:
第一部分 — CatBoost 回归器
第二部分 — CatBoost 回归器(续)
第三部分 — CatBoost 回归器
注意你有一个的地址路径。这是使用 Catboost 回归器训练的 Pipeline。你可以使用函数读取这个 Pipeline。
print(pipeline)的输出
现在让我们使用这个 Pipeline 对新数据进行预测
从管道生成的预测
哇哦!我们现在从训练好的管道中获得了推断。如果这是你的第一次,恭喜你。请注意,所有的转换,如目标转换、独热编码、缺失值填充等,都是在后台自动完成的。你将得到一个包含实际规模预测的数据框,这才是你关心的。
作者提供的图像
作者提供的图像
使用这个轻量级的工作流自动化库在 Python 中没有什么限制。如果你觉得有用,请不要忘记在我们的 GitHub 仓库中给我们 ⭐️。
想了解更多关于 PyCaret 的信息,请关注我们的 LinkedIn 和 Youtube。
加入我们的 Slack 频道。邀请链接 在这里。
你可能还会感兴趣:
在 Power BI 中使用 PyCaret 2.0 构建自己的 AutoML
使用 Docker 在 Azure 上部署机器学习管道
在 Google Kubernetes Engine 上部署机器学习管道
在 AWS Fargate 上部署机器学习管道
构建并部署你的第一个机器学习网页应用
使用 AWS Fargate 无服务器部署 PyCaret 和 Streamlit 应用
使用 PyCaret 和 Streamlit 构建并部署机器学习网页应用
在 GKE 上部署使用 Streamlit 和 PyCaret 构建的机器学习应用
重要链接
文档
博客
GitHub
StackOverflow
安装 PyCaret Notebook 教程 为 PyCaret 做贡献
想了解某个特定模块?
点击下面的链接查看文档和工作示例。
分类 回归
聚类
异常检测
自然语言处理 关联规则挖掘
结束
简介: Moez Ali 是数据科学家,也是 PyCaret 的创始人和作者。
原文. 经许可转载。
相关内容:
- 使用 PyCaret 和 MLflow 的简单 MLOps
- 使用 PyCaret 编写和训练自定义机器学习模型
- 你不知道的 PyCaret 的 5 件事
更多相关内容
- 使用 PyCaret 进行二分类介绍
- 使用 PyCaret 进行 Python 中的聚类介绍
- 宣布 PyCaret 3.0:开源、低代码的 Python 机器学习
- 开始使用 PyCaret
- 数据科学家的线性规划 101
- LangChain 101:构建您自己的 GPT 驱动应用程序
原文:
评论
作者及创始人 Moez Ali
(图像来自作者) PyCaret 新时间序列模块
PyCaret 是一个开源的低代码机器学习库,能够自动化机器学习工作流。它是一个端到端的机器学习和模型管理工具,能显著加快实验周期,提高你的生产力。
与其他开源机器学习库相比,PyCaret 是一个低代码替代库,它可以用几行代码替代数百行代码。这使得实验变得快速且高效。PyCaret 本质上是多个机器学习库和框架(如 scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt、Ray 等)的 Python 封装。
PyCaret 的设计和简洁性受到了“公民数据科学家”这一新兴角色的启发,这一术语首次由 Gartner 提出。公民数据科学家是能够执行简单和中等复杂分析任务的高级用户,这些任务以前需要更多的技术专长。
PyCaret 的新时间序列模块现已处于 beta 阶段。保持 PyCaret 的简洁性,它与现有 API 一致,并具有许多功能。包括统计测试、模型训练与选择(30+ 算法)、模型分析、自动化超参数调优、实验记录、云部署等。所有这些功能仅需少量代码(就像 pycaret 的其他模块一样)。如果你想尝试,可以查看官方的 快速入门 笔记本。
你可以使用 pip 安装这个库。如果你在同一环境中安装了 PyCaret,你必须为 创建一个单独的环境,因为存在依赖冲突。 将在下一个主要版本中与主 pycaret 包合并。
PyCaret 的时间序列模块工作流程非常简单。它从 函数开始,在这里你定义预测范围 和折叠数 。你还可以将 定义为 或 。
在设置完成后,著名的 函数会训练和评估 30+ 种算法,从 ARIMA 到 XGboost(TBATS、FBProphet、ETS 等)。
函数可以在训练前或训练后使用。在训练前使用时,它提供了一系列时间序列 EDA 图表,使用 plotly 接口。当与模型一起使用时, 对模型残差进行处理,并可用于评估模型拟合情况。
最后, 用于生成预测。
(图像来自作者)
(图像来自作者)‘pycaret_downloads’的时间序列图
这个时间序列是 PyCaret 库从 pip 每日下载次数的数据。
(图像来自作者)setup 函数的输出
(图像来自作者)check_stats 函数的输出
(图像来自作者)
(图像来自作者)
(图像来自作者)compare_models 函数的输出
在时间序列模块中的工作方式与在其他模块中的工作方式完全相同。
(图像来自作者)create_model 函数的输出
(图像来自作者)打印函数的输出
也没有太大区别。
(图像来自作者)tune_model 函数的输出
(图像来自作者)打印函数的输出
(图像来自作者)
(图像来自作者)
(图像来自作者)
(图像来自作者)
该模块仍处于 beta 版。我们每天都在添加新功能,并进行每周的 pip 发布。请确保创建一个独立的 Python 环境,以避免与主 pycaret 的依赖冲突。该模块的最终版本将与下一次主要版本的 pycaret 合并。
??? 时间序列文档
❓ 时间序列常见问题解答
??? 功能与路线图
开发人员:
Nikhil Gupta (主讲), Antoni Baum Satya Pattnaik Miguel Trejo Marrufo Krishnan S G
使用这个轻量级的 Python 工作流自动化库,你可以实现无限可能。如果你觉得有用,请不要忘记在我们的 GitHub 仓库上给我们 ⭐️。
想了解更多关于 PyCaret 的信息,请关注我们 LinkedIn 和 Youtube。
加入我们的 Slack 频道。邀请链接 这里。
⭐ 教程 新手入门 PyCaret?查看我们的官方笔记本!
??? 示例笔记本 由社区创建。
??? 博客 贡献者的教程和文章。
??? 文档 PyCaret 的详细 API 文档
??? 视频教程 我们的各类活动视频教程。
??? 讨论区 有问题?与社区和贡献者互动。
???️ 更新日志 变更和版本历史。
??? 路线图 PyCaret 的软件和社区发展计划。
个人简介:Moez Ali 讨论 PyCaret 及其实际应用。如果你希望自动接收通知,可以在 Medium、LinkedIn 和 Twitter 上关注 Moez。
原文。经允许转载。
相关:
- 多变量时间序列分析与基于 LSTM 的 RNN
- PyCaret 2.3.5 新版发布!了解新功能
- 前 5 大时间序列方法
1. Google 网络安全证书 - 快速进入网络安全职业道路。
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. Google IT 支持专业证书 - 支持您的组织的 IT
更多相关主题
- 告别 Print():使用 Logging 模块进行有效调试
- 如何使用 Scikit-learn 的 Imputer 模块处理缺失数据
- 使用 PyCaret 进行二分类简介
- 使用 PyCaret 进行 Python 聚类简介
- 宣布 PyCaret 3.0:开源、低代码的 Python 机器学习
- 开始使用 PyCaret
原文:
评论
由 Moez Ali,PyCaret 的创始人和作者
使用 PyCaret 预测客户流失(正确的方法) — 图片由作者提供
介绍
客户留存是采用订阅制商业模式的公司主要的关键绩效指标之一。竞争尤其在 SaaS 市场中非常激烈,因为客户可以从众多供应商中自由选择。一旦发生糟糕的体验,客户可能会转向竞争对手,从而导致客户流失。
什么是客户流失?
客户流失是指在某个时间范围内停止使用贵公司产品或服务的客户百分比。计算流失率的一种方法是将某个时间间隔内流失的客户数量除以该时间段开始时的活跃客户数量。例如,如果你有 1000 个客户,上个月流失了 50 个,那么你的月流失率就是 5%。
预测客户流失是一个具有挑战性但极其重要的业务问题,尤其是在客户获取成本(CAC)较高的行业,如技术、电信、金融等。预测某个客户面临高流失风险的能力,同时还有时间采取措施,代表了公司一个巨大的潜在收入来源。
客户流失机器学习模型在实践中如何使用?
客户流失预测模型的主要目标是通过主动与客户互动来留住那些流失风险最高的客户。例如:提供礼品券或任何促销价格,并将他们锁定一年或两年,以延长他们对公司的终身价值。
这里有两个广泛的概念需要理解:
- 我们希望客户流失预测模型能提前预测流失(例如,提前一个月、三个月或甚至六个月——这取决于具体用例)。这意味着你必须非常小心截止日期,即你不应在机器学习模型中使用截止日期之后的信息作为特征,否则会出现数据泄露。截止日期之前的时间段称为事件。
- 通常,对于客户流失预测,你需要花一些时间创建一个目标列,它通常不会以你希望的形式存在。例如,你想预测客户是否会在下一个季度流失,因此你需要遍历事件截止日期时的所有活跃客户,并检查他们是否在下一个季度离开了公司(1 表示是,0 表示否)。在这种情况下,季度被称为绩效窗口。
如何创建客户流失数据集 — 作者提供的图片
客户流失模型工作流程
现在你已经理解了数据来源和流失目标的创建(这是问题中最具挑战性的部分之一),让我们讨论一下这个机器学习模型将在业务中如何使用。请从左到右阅读下图:
- 模型在客户流失历史上进行训练(X 特征的事件期和目标变量的性能窗口)。
- 每个月,活跃的客户基础会被传递给机器学习预测模型,以返回每个客户的流失概率(在商业术语中,这有时称为流失评分)。
- 列表将按从最高到最低的概率值(或称为评分)进行排序,客户保留团队将开始与客户互动以防止流失,通常是通过提供某种促销或礼品卡来锁定更多的年份。
- 流失概率非常低的客户(或模型预测为无流失)是满意的客户。对此不会采取任何行动。
客户流失模型工作流程 — 作者提供的图片
让我们开始一个实际的例子
在本节中,我将展示机器学习模型训练与选择、超参数调优、结果分析和解释的完整端到端工作流程。我还将讨论可以优化的指标以及为什么像 AUC、准确率、召回率等传统指标可能不适合客户流失模型。我将使用PyCaret——一个开源的低代码机器学习库来进行此实验。本教程假设你对 PyCaret 有基本了解。
PyCaret
PyCaret 是一个开源的低代码机器学习库和端到端模型管理工具,基于 Python 构建,用于自动化机器学习工作流程。PyCaret 因其易用性、简洁性和快速高效地构建和部署端到端机器学习管道的能力而闻名。要了解更多关于 PyCaret 的信息,请查看他们的 GitHub。
PyCaret 的特点 — 作者提供的图片
安装 PyCaret
???数据集
对于本教程,我使用的是来自 Kaggle 的电信客户流失数据集。数据集中已经包含了我们可以直接使用的目标列。你可以直接从这个GitHub链接读取这个数据集。(特别鸣谢 srees1988)
示例数据集 — 作者提供的图片
??? 探索性数据分析
数据类型 — 作者提供的图片
注意到 是 类型而不是 。经过调查,我发现这一列中有一些空格,这导致 Python 强制将数据类型设为 。要解决这个问题,我们需要在更改数据类型之前修剪空格。
直观上,合同类型、合同期限(客户的停留时间)和定价计划在客户流失或留存方面是非常重要的信息。让我们探索一下它们之间的关系:
根据合同期限、费用和合同类型的客户流失(图片由作者提供)
注意到大部分流失现象出现在“按月合同”中。这很有道理。此外,我还发现随着合同期限的增加和总费用的增加,拥有高期限和低费用的客户的可能性相较于拥有高期限和高费用的客户要低。
缺失值
缺失值 — 图片由作者提供
注意到由于我们用 替换了空白值,现在 中有 11 行缺失值。没问题 — 我会让 PyCaret 自动进行填补。
???数据准备
在 PyCaret 的所有模块中, 是任何机器学习实验中第一个也是唯一一个强制性的步骤。这个函数处理了模型训练前所需的所有数据准备工作。除了执行一些基本的默认处理任务外,PyCaret 还提供了广泛的数据预处理功能。要了解 PyCaret 中所有预处理功能的更多信息,可以查看这个链接。
pycaret.classification 中的 setup 函数 — 图片由作者提供
每当你在 PyCaret 中初始化 函数时,它会对数据集进行分析并推断所有输入特征的数据类型。在这种情况下,你可以看到除了 、 和 ,其他所有特征都是类别型的,这样是正确的,你现在可以按回车键继续。如果数据类型推断不正确(这有时会发生),你可以使用 和 来覆盖数据类型。
同样注意到,我在 函数中传递了 ,这样在训练模型时它将不会被考虑。这样做的好处是 PyCaret 不会从数据集中删除该列,它只是会在模型训练时在后台忽略它。因此,当你最终生成预测时,你不需要担心自己再将 ID 重新合并回来。
setup 函数的输出 — 为了显示而截断 — 图片由作者提供
??? 模型训练与选择
数据准备完成后,让我们通过使用功能开始训练过程。该功能训练模型库中所有可用的算法,并使用交叉验证评估多个性能指标。
compare_models 的输出 — 作者提供的图片
基于AUC的最佳模型是。使用 10 折交叉验证的 AUC 为 0.8472。
最佳模型参数 — 作者提供的图片
超参数调优
你可以使用 PyCaret 中的函数来自动调优模型的超参数。
tune_model 结果 — 作者提供的图片
请注意,AUC 从略微增加到。
模型分析
AUC 图 — 作者提供的图片
特征重要性图 — 作者提供的图片
混淆矩阵梯度提升分类器 — 作者提供的图片
这个混淆矩阵是在测试集上生成的,其中包含我们数据的 30%(2,113 行)。我们有 309 个真正例(15%)——这些客户我们将能够延长生命周期价值。如果我们没有做出预测,那么就没有干预的机会。
我们还有 138 个(7%)假正例,因为向这些客户提供的促销只是额外的成本,我们将因此亏损。
1,388 个(66%)是真正负例(优质客户),278 个(13%)是假负例(这是一个错失的机会)。
到目前为止,我们已经训练了多个模型以选择 AUC 最高的最佳模型,然后调优该模型的超参数,以在 AUC 方面挤出更多的性能。然而,最佳 AUC 不一定能转化为最佳的商业模型。
在流失模型中,真正例的奖励通常与假正例的成本大相径庭。我们使用以下假设:
- $1,000 的优惠券将提供给所有被识别为流失(真正例 + 假正例)的客户;
- 如果我们能够阻止客户流失,我们将获得$5,000 的客户生命周期价值。
使用这些假设和上述混淆矩阵,我们可以计算该模型的$影响:
$ 模型对 2,113 名客户的影响 — 作者提供的图片
这是一个不错的模型,但问题在于它不是一个商业智能模型。与没有模型相比,它的表现相当不错,但我们如何训练和选择一个能够最大化商业价值的模型呢?为了实现这一点,我们必须使用商业指标而非传统指标如 AUC 或准确率来训练、选择和优化模型。
??? 在 PyCaret 中添加自定义指标
多亏了 PyCaret,使用 函数实现这一点变得极其简单。
现在让我们运行 看看魔法。
compare_models 输出 — 图片由作者提供
注意这次新增了一个列 ,令人惊讶的是,虽然朴素贝叶斯在 方面表现较差,但在利润方面却是最佳模型。我们来看看原因:
混淆矩阵 朴素贝叶斯 — 图片由作者提供
总客户数量仍然相同(测试集中的 2,113 位客户),变化的是模型在假阳性和假阴性上的错误情况。让我们使用相同的假设(如上所述)来为其添加一些 $ 价值:
$ 模型对 2,113 位客户的影响 — 图片由作者提供
哇!* 我们刚刚用一个 AUC 比最佳模型少 2% 的模型增加了大约 $400,000 的利润。这是怎么发生的?首先,AUC 或任何其他现成的分类指标(准确率、召回率、精确度、F1、Kappa 等)并不是一个商业智能指标,因此没有考虑风险和回报。添加自定义指标并将其用于模型选择或优化是一个很好的主意,也是正确的做法。*
我希望你会欣赏 PyCaret 的简洁和易用性。仅需几行代码,我们就能训练多个模型,并选择对业务最重要的模型。我是一名常规博主,主要写关于 PyCaret 及其在实际应用中的用例。如果你希望自动接收通知,可以关注我的 Medium、 LinkedIn 和 Twitter。
PyCaret — 图片由作者提供
PyCaret — 图片由作者提供
使用这个轻量级的 Python 工作流自动化库,你可以实现无限的可能。如果你觉得这有用,请不要忘记在我们的 GitHub 仓库上给我们 ⭐️。
想要了解更多关于 PyCaret 的信息,请关注我们的 LinkedIn 和 YouTube。
加入我们的 Slack 频道。邀请链接 在这里。
重要链接
文档
博客
GitHub
StackOverflow
安装 PyCaret 笔记本教程 贡献 PyCaret
更多 PyCaret 相关教程:
在 Alteryx 中使用 PyCaret 进行机器学习
一个逐步教程,讲解如何在 Alteryx Designer 中使用 PyCaret 训练和部署机器学习模型
在 KNIME 中使用 PyCaret 进行机器学习
一个逐步指南,讲解如何在 KNIME 中使用 PyCaret 训练和部署端到端的机器学习管道
用 PyCaret 和 MLflow 实现简单 MLOps
一个适合初学者的逐步教程,讲解如何在机器学习实验中集成 MLOps,使用 PyCaret
使用 PyCaret 编写和训练自定义机器学习模型
用 PyCaret 构建,使用 FastAPI 部署
一个适合初学者的逐步教程,讲解如何使用 PyCaret 构建端到端的机器学习管道……
用 PyCaret 进行时间序列异常检测
一个逐步教程,讲解如何使用 PyCaret 对时间序列数据进行无监督异常检测
用 PyCaret 和 Gradio 提升你的机器学习实验
一个逐步教程,快速开发和互动机器学习管道
使用 PyCaret 进行多时间序列预测
使用 PyCaret 进行多时间序列预测的逐步教程
简介:Moez Ali 是一名数据科学家,也是 PyCaret 的创始人兼作者。
原文。经许可转载。
相关:
- PyCaret 101:初学者介绍
- 5 个你不知道的 PyCaret 相关内容
- 客户流失预测:全球性能研究
1. Google 网络安全证书 - 快速进入网络安全职业生涯。
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持您的组织的 IT 部门
了解更多这个话题
- 学习现代预测技术,帮助预测未来业务结果……
- 如何使用 Python 和机器学习预测足球比赛结果
- 使用 PyCaret 介绍二分类
- 使用 PyCaret 介绍 Python 中的聚类
- 宣布 PyCaret 3.0:Python 中的开源、低代码机器学习
- 开始使用 PyCaret
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qdvuejs/23265.html