使用梯度提升树算法进行CTR预测

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 使用梯度提升树算法进行CTR预测

教程简介

耗时:55分钟

在本教程中,您将通过PAI提供的GBDT二分类v2训练与预测组件,实现流量数据的点击率预估,并通过二分类评估组件对预测结果进行评估。同时本教程还提供模型部署的方法,评估后的模型可以非常容易的部署成线上服务。

在教程示例的点击率预估模型中,对流量数据的处理思路如下:

  • 首先使用标准化组件将数值型的特征进行标准化处理。
  • 然后使用GBDT二分类v2组件对数据进行分类处理。
  • 最后使用二分类评估组件v2对分类结果进行评估。
  • 经过评估和调优后,我们还可以将标准化组件和GBDT二分类v2组件打包成一个复合模型,并部署成一个EAS的服务。

我能学到什么

  • 训练预测相关模型的构建思路。
  • 如何开通阿里云实时计算Flink版服务,并作为模型训练的资源。
  • 如何使用阿里云机器学习PAI构建模型、训练模型、部署模型。
操作难度

所需时间

55分钟

使用的阿里云产品

所需费用

  • Flink及相关产品

    • 实时计算Flink版提供3个月5000CUH的免费试用资源。您需要领取实时计算Flink版、负载均衡SLB、对象存储OSS资源抵扣包(领取方法已在教程下一步中给出)。如果未领取或者因为不满足领取条件,将会产生额外费用。

    • 试用资源满足任何一个条件(超过5000CUH或超过3个月)后,涉及到的阿里云产品将正常计费,计费详情请参见Flink按量付费SLB按量付费OSS按量付费

  • PAI

    • PAI-EAS抵扣包只适用于本教程中的PAI-EAS产品。如果您领取了PAI-EAS抵扣包后,使用了PAI-EAS及PAI的其他产品功能(如PAI-DSW、PAI-DLC等),PAI-EAS产品产生的费用由抵扣包抵扣,其他产品功能产生的费用无法抵扣,会产生对应的费用账单。

    • 抵扣包用尽或超出有效期后将收取费用,EAS的计费详情请参见PAI-EAS计费说明您可以前往节省计划页面,查看抵扣包剩余金额和过期时间,请务必在试用后及时停止服务,避免产生额外费用。


准备环境及资源

耗时:15分钟

开始教程前,请按以下步骤准备环境和资源:

  1. 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
  2. 申请免费试用OSS,并创建Bucket。
  1. 领取对象存储OSS资源抵扣包。
    进入OSS免费资源包申请页面,单击立即试用,在确认并了解相关信息后,根据页面提示申请试用。
    【注意】:如果您的对象存储OSS资源抵扣包已使用完毕或无领取资格,开通Flink试用后,将正常收取费用,计费详情请参见OSS按量付费
  2. 创建OSS Bucket。登录OSS控制台,在Bucket列表页面单击创建Bucket开始创建Bucket。本教程的核心配置参数如下,其他参数可保持默认值,详细创建步骤请参见创建有地域属性Bucket
  • 地域:选择有地域属性华南1(深圳)地域。
  • 其他参数:保持默认值即可。
  1. 申请免费试用SLB:领取传统型负载均衡CLB资源抵扣包。进入SLB免费资源包申请页面,单击立即试用,配置开通参数,根据页面提示申请试用。本教程的核心配置参数如下,其他参数可保持默认值。
  • 地域和可用区:选择华南1(深圳)地域,可用区可按需配置。
  • 其他参数:保持默认值即可。
  1. 开通VPC,并创建虚拟交换机。
  1. 登录VPC控制台,在顶部选择地域为华南1(深圳),单击创建专有网络开始创建VPC。操作详情请参见创建专有网络和交换机
  2. 登录VPC控制台,在交换机页面的顶部选择地域为华南1(深圳),单击创建交换机开始创建交换机,操作详情请参见创建交换机
  1. 申请免费试用Flink。进入Flink免费资源包申请页面,单击立即试用,配置开通参数,根据页面提示申请试用。
  1. 如果您第一次访问该服务,可能需要进行角色授权。请在弹出的授权请求页面,单击前往RAM进行授权后,单击同意授权,完成自动化角色授权。授权成功后,需返回立即试用页面。
  2. 在Flink开通页面,单击上方提示框中的领取免费的资源抵扣包,领取Flink资源抵扣包。

  3. 在Flink资源抵扣包页面,确认相关信息后,单击确认订单,根据页面提示完成领取。

  4. 领取完毕后,在Flink开通页面,刷新此页面后完成参数配置。

参数

说明

教程配置

付费模式

阿里云实时计算Flink版免费试用仅支持按量付费。

按量付费

地域

本教程不涉及上下游存储,所以可不与上下游存储保持一致。

华南1(深圳)

可用区

本教程不涉及上下游存储,所以可不与上下游存储保持一致。

可用区E

资源抵扣包

可用于抵扣中国内地公有云地域(目前仅支持上海,杭州,北京,深圳,张家口区域)按量付费模式用量,自购买资源包日起有效期三个月。领取资源包后,单击刷新按钮,即可更新此参数。

其中,本教程示例不适用于张家口地域。

5000CUH

您需要领取负载均衡SLB对象存储OSS资源抵扣包进行抵扣(即点击所给链接,单击对应产品卡片上的立即试用,在确认并了解相关信息后,根据页面提示申请试用),否则将会产生额外费用。

如果您的对象存储OSS或SLB资源抵扣包已使用完毕或无领取资格,开通Flink试用后,将正常收取费用,计费详情请参见SLB按量付费OSS按量付费

确认领取后,选中

SLB服务

SLB是通过浏览器访问Flink产品控制台的必要网络连接组件。在您开通阿里云实时计算Flink版服务后,会自动开通SLB服务,该SLB专用于阿里云实时计算Flink版服务。

选中

专有网络

选择您已创建的专有网络。如果您没有创建,请参见创建和管理专有网络进行创建。

选中您需要使用的VPC名称。

虚拟交换机

每个Flink作业的Task Manager和Job Manager实例都会占用一个IP,您需要至少选择1个虚拟交换机。

如果当前无可用虚拟交换机,请在当前地域当前可用区下进行创建,详情请参见创建和管理专有网络

选中您需要使用的交换机名称。

工作空间名称

每个工作空间的计算资源隔离,开发控制台相互独立。

创建成功后不可修改。

flink-test

OSS存储

OSS用于存储作业系统检查点、作业快照、日志和JAR包等信息。新建OSS存储的具体操作,请参见开通OSS服务

不推荐对选择的Bucket开启非默认策略,例如多版本、合规保留等,可能会导致Flink作业异常。

选中您需要使用的OSS Bucket名称。

监控服务

如果您选中了监控服务(为您提供商业版Prometheus监控能力),则会正常进行收费,计费详情请参见ARMS按量计费

不选中

  1. 开通PAI并申请免费试用PAI-EAS资源。
  1. 登录PAI控制台,在顶部选择地域为华南1(深圳),单击开通PAI并创建默认工作空间,开始开通操作,详情请参见开通PAI并创建默认工作空间
  2. 登录并进入PAI免费试用页面后,在模型在线服务PAI-EAS卡片上单击立即试用
    【说明】:如果您此前已申请过试用PAI的抵扣包,此时界面会提示为已试用,您可以直接单击已试用按钮,进入PAI的控制台。
  3. 模型在线服务PAI-EAS面板,勾选服务协议后,单击立即试用,进入免费开通页面。


下载示例数据并上传至OSS

耗时:5分钟

原始数据集来自于Criteo广告公司7天内的部分流量。需要注意的是,原始数据特别巨大,本教程所使用的数据在原始数据集的基础上进行了大幅度采样,因此预测及评估结果仅供演示作用。

  1. 单击以下下载链接,下载本实践所需的示例数据。
  1. 示例数据示例第一列为label值,1表示正样本,0表示负样本;接下来是13列数值型特征,其中可能有空值;然后是26列类别型特征。
  2. 登录OSS控制台,进入创建的Bucket空间中,单击上传文件,在弹出的页面中单击扫描文件,选择下载到本地的两个示例数据文件,单击上传文件
  3. 当界面显示上传成功时,表明本教程需使用的示例数据已成功上传至OSS。


配置PAI工作空间

耗时:5分钟

  1. 登录PAI控制台,在左侧导航栏单击工作空间列表,进入工作空间列表页面后,单击自动创建的默认工作空间名称,进入工作空间详情页。
  2. 关联Flink为PAI工作空间的计算资源。
    在工作空间详情页的右侧单击资源管理,在弹出的页面中选择Flink全托管资源页签,页面下方为您展示上述步骤中创建的Flink资源,您需要勾选对应的Flink资源,然后单击确认关联

    完成关联后,后续您即可以在PAI-Designer中使用Flink资源运行任务。
  3. 关联OSS为PAI空间默认存储。
    在工作空间详情页的右侧的存储设置后单击设置,在弹出的页面中配置上述步骤中创建的OSS Bucket为默认PAI工作空间默认存储路径。
    完成配置后,后续您在PAI-Designer即可将数据存储于对应的OSS Bucket中。


创建PAI-Designer工作流并建模

耗时:15分钟

  1. 进入PAI-Designer页面。
  1. 登录PAI控制台,在左侧导航栏单击可视化建模(Designer),在页面中单击进入Designer
  2. 单击新建工作流>新建,在弹窗中配置工作流名称,完成后单击确定,新建一个Designer工作流。
  3. 单击进入工作流,进入Designer页面。
  1. 构建工作流。
  1. 在左侧组件列表中的搜索框中,搜索并拖入读CSV文件组件进画布中两次。分别用于读取本教程的示例数据,作为训练集和模型效果的评测集。
  2. 分别单击这两个读CSV文件组件节点,在右侧组件的参数配置中配置文件路径Schema。两个组件节点的配置示例如下。

组件节点

组件配置

读csv文件-1

  • 文件路径:选择上传至OSS中的criteo_10w_train.csv文件。
  • Schema

    label INT, nf01 DOUBLE, nf02 DOUBLE, nf03 DOUBLE, nf04 DOUBLE, nf05 DOUBLE, nf06 DOUBLE, nf07 DOUBLE, nf08 DOUBLE, nf09 DOUBLE, nf10 DOUBLE, nf11 DOUBLE, nf12 DOUBLE, nf13 DOUBLE, cf01 STRING, cf02 STRING, cf03 STRING, cf04 STRING, cf05 STRING, cf06 STRING, cf07 STRING, cf08 STRING, cf09 STRING, cf10 STRING, cf11 STRING, cf12 STRING, cf13 STRING, cf14 STRING, cf15 STRING, cf16 STRING, cf17 STRING, cf18 STRING, cf19 STRING, cf20 STRING, cf21 STRING, cf22 STRING, cf23 STRING, cf24 STRING, cf25 STRING, cf26 STRING
  • 其他参数:保持默认

读csv文件-2

  • 文件路径:选择上传至OSS中的criteo_1w_test.csv文件。
  • Schema

    label INT, nf01 DOUBLE, nf02 DOUBLE, nf03 DOUBLE, nf04 DOUBLE, nf05 DOUBLE, nf06 DOUBLE, nf07 DOUBLE, nf08 DOUBLE, nf09 DOUBLE, nf10 DOUBLE, nf11 DOUBLE, nf12 DOUBLE, nf13 DOUBLE, cf01 STRING, cf02 STRING, cf03 STRING, cf04 STRING, cf05 STRING, cf06 STRING, cf07 STRING, cf08 STRING, cf09 STRING, cf10 STRING, cf11 STRING, cf12 STRING, cf13 STRING, cf14 STRING, cf15 STRING, cf16 STRING, cf17 STRING, cf18 STRING, cf19 STRING, cf20 STRING, cf21 STRING, cf22 STRING, cf23 STRING, cf24 STRING, cf25 STRING, cf26 STRING
  • 其他参数:保持默认
  1. 在左侧组件列表的搜索框中,搜索并拖入标准化批预测(拖入两次)、GBDT二分类V2GBDT二分类预测V2以及二分类评估V2组件进入画布中。
  2. 连接组件节点间的输出桩与输入桩,将个组件连接成如下的流程。

  3. 配置工作流的资源与存储。
  • 在工作流右侧,选择Alink算法默认执行资源类型Flink
  • 选择工作流数据存储的路径为上述步骤中创建的OSS Bucket,用于保存中间数据及模型输出。
  1. 分别右键两个读CSV文件组件节点,选择执行该节点,开始读取CSV的数据,等待读取完成。

  2. 分别单击其他组件节点,在右侧的参数配置中配置以下核心参数,其他参数保持默认即可。

组件名

组件配置

标准化训练

字段设置

特征列:选择所有数值列,包括:

nf01,nf02,nf03,nf04,nf05,nf06,nf07,nf08,nf09,nf10,nf11,nf12,nf13

标准化批预测

无需修改配置,保持默认即可。

GBDT二分类v2训练

  • 字段设置
    • 特征列:选择出label外的所有列。
    • 类型型特征列:选择cf开头的所有列。
    • 标签列:选择label。
  • 参数设置
    • 树的目录:配置为50。
    • 最大叶节点数:配置为16。
    • 最多类别数:配置为256。

GBDT二分类v2预测

无需修改配置,保持默认即可。

二分类评估V2

字段设置

  • 标签列:选择label。
  • 预测详细信息列名:配置为prediction_detail。
  1. 单击界面中的运行按钮,开始执行作业,等待作业运行完成。
  • 在作业运行过程中,对于正在执行或执行完成的组件,邮件右键对应组件节点选择查看日志。

  • 当所有组件都执行完成后,您可以右键二分类评估V2组件,单击可视化分析,查看评估指标。


部署模型为EAS服务

耗时:5分钟

如果对当前的实验的评估结果非常满意,您可以直接将实验中模型有选择的部署成一个EAS服务。

  1. 制作Pipeline模型。
  1. 单击页面顶部的制作Pipeline模型,在高亮的组件节点中选择需要部署的组件,然后单击下一步

  2. 在弹框中选择模型存储的OSS路径,完成后单击下一步,此时您可以在弹窗中看到模型制作的运行状态等基本信息,耐心等待模型制作完成。
  1. 将模型部署至EAS。
  1. 当模型制作完成后,单击部署至EAS,跳转至模型部署页面。
  2. 配置以下核心部署参数。

参数

配置说明

服务名称

自定义一个服务部署名称。

资源配置选择

选择试用活动下领取的免费资源。

  1. 单击部署,页面跳转至EAS推理服务列表页面,您可以在此查看部署状态,当服务显示为运行中时,表明已经部署完成。


在线调试

耗时:5分钟

服务部署完成后可单击在线调试,在弹出的测试窗口中进行调试。

  • 调试时可在调试请求参数的Body中配置与模型训练、预测数据一致的字段,并通过Key-Value的形式构造调试请求参数各个字段的取值。
  • 本教程中,您可以将以下内容复制粘贴至调试参数Body中,然后单击发送请求,在右侧调试信息中可查看调试结果。
{"label":0,"nf01":4,"nf02":3,"nf03":null,"nf04":3,"nf05":14,"nf06":2,"nf07":4,"nf08":8,"nf09":8,"nf10":1,"nf11":1,"nf12":0,"nf13":2,"cf01":"05db9164","cf02":"73a46ff0","":"0128cf0a","cf04":"a9c1f26a","cf05":"25c83c98","cf06":"fbad5c96","cf07":"2f6a74d9","cf08":"0b153874","cf09":"a73ee510","cf10":"edd99521","cf11":"7e2c5c15","cf12":"43f4ba46","cf13":"91a1b611","cf14":"07d13a8f","cf15":"376a23f2","cf16":"bea98bfa","cf17":"e5ba7672","cf18":"da507f45","cf19":"21ddcdc9","cf20":"b1252a9d","cf21":"240c7f2b","cf22":"null","cf23":"32c7478e","cf24":"4c8e5aef","cf25":"ea9a246c","cf26":"9636866f"}


清理及后续

清理

申领的免费资源具有时长和容量限制,使用完请及时清理相关资源。如果未及时清理资源可能会导致服务终止或收取费用。完成教程后,您可以按照如下场景进行处理:

  • 如果您需要继续使用,且免费资源已使用完或者已经超过免费试用周期(通常为3个月),请随时查看欠费金额,并在规定时间内充值结清欠费账单,否则无法继续正常使用。
  • 如果您不需要继续使用,请及时清理测试数据和试用资源:
  • 实时计算Flink版资源清理
    登录实时计算控制台单击目标工作空间操作列下的更多>释放资源,单击确定。应用实时监控服务ARMS(如果您开通时选中)和负载均衡SLB会随实时计算Flink版一起被释放。
  • PAI-EAS资源清理
  1. 登录PAI控制台
  2. 在页面左上方,选择服务的地域。
  3. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击默认工作空间名称,进入对应工作空间内。
  4. 在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入PAI EAS模型在线服务页面。
  5. 推理服务页签,单击目标服务操作列下的删除,删除模型服务。

后续

您还可以参考以上操作步骤,使用Flink计算资源构建新的Designer工作流进行模型训练和预测。


总结

常用知识点

问题1:设置工作流属性Alink算法默认执行资源类型为Flink后,是否还需要单独为每个组件设置使用的计算资源?(单选题)

正确答案是否,因为设置工作流属性后,即为每个组件设置了使用的计算资源,不需要再单独设置。

延伸阅读

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
3月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
102 1
|
14天前
|
算法
树的遍历算法有哪些?
不同的遍历算法适用于不同的应用场景。深度优先搜索常用于搜索、路径查找等问题;广度优先搜索则在图的最短路径、层次相关的问题中较为常用;而二叉搜索树的遍历在数据排序、查找等方面有重要应用。
22 2
|
22天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
存储 算法 关系型数据库
数据结构与算法学习二一:多路查找树、二叉树与B树、2-3树、B+树、B*树。(本章为了解基本知识即可,不做代码学习)
这篇文章主要介绍了多路查找树的基本概念,包括二叉树的局限性、多叉树的优化、B树及其变体(如2-3树、B+树、B*树)的特点和应用,旨在帮助读者理解这些数据结构在文件系统和数据库系统中的重要性和效率。
22 0
数据结构与算法学习二一:多路查找树、二叉树与B树、2-3树、B+树、B*树。(本章为了解基本知识即可,不做代码学习)
|
2月前
|
大数据 UED 开发者
实战演练:利用Python的Trie树优化搜索算法,性能飙升不是梦!
在数据密集型应用中,高效搜索算法至关重要。Trie树(前缀树/字典树)通过优化字符串处理和搜索效率成为理想选择。本文通过Python实战演示Trie树构建与应用,显著提升搜索性能。Trie树利用公共前缀减少查询时间,支持快速插入、删除和搜索。以下为简单示例代码,展示如何构建及使用Trie树进行搜索与前缀匹配,适用于自动补全、拼写检查等场景,助力提升应用性能与用户体验。
57 2
|
1月前
|
存储 算法
数据结构与算法学习十六:树的知识、二叉树、二叉树的遍历(前序、中序、后序、层次)、二叉树的查找(前序、中序、后序、层次)、二叉树的删除
这篇文章主要介绍了树和二叉树的基础知识,包括树的存储方式、二叉树的定义、遍历方法(前序、中序、后序、层次遍历),以及二叉树的查找和删除操作。
25 0
|
1月前
|
存储 算法 Java
数据结构和算法--分段树
数据结构和算法--分段树
16 0
|
4月前
|
大数据 UED 开发者
实战演练:利用Python的Trie树优化搜索算法,性能飙升不是梦!
【7月更文挑战第19天】Trie树,又称前缀树,是优化字符串搜索的高效数据结构。通过利用公共前缀,Trie树能快速插入、删除和查找字符串。
113 2
|
4月前
|
机器学习/深度学习 数据采集 算法
Python实现GBDT(梯度提升树)分类模型(GradientBoostingClassifier算法)并应用网格搜索算法寻找最优参数项目实战
Python实现GBDT(梯度提升树)分类模型(GradientBoostingClassifier算法)并应用网格搜索算法寻找最优参数项目实战
186 3