课时2:基于GBDT算法的CTR预估

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 课时2:基于GBDT算法的CTR预估

Flink-Learning训练营:课时2:基于GBDT算法的CTR预估

课程地址:https://developer.aliyun.com/trainingcamp/0bcc1ab57cf841a2af632d6252fecbab

FlinML算法体验:基于GBDT算法的预估

 

内容简介

一、实验准备

二、重点内容

 

一、实验准备

1开通阿里云实时计算Flink版免费试用

2开通阿里云机器学习平台PAI-Designer的工作空间

3. 开通阿里云PAI-EAS模型服务免费试用

 

1)首先介绍实验背景-FlinkML简介

试用代码:  https://github.com/apache/flink-ml

用户文档:

https://nightlies.apache.org/flink/flink-ml-docs-stable/

Flink交流群:

图片1.png

FlinkML是基于Flink的流批一体的机器学习算法库,是Apache Flink的子项目。目前支持了40+个算法,包括分类、回归、聚类、特征工程、评估等。FlinkML已在阿里巴巴内部落地并在阿里云输出。

(2)CTR预估的基本概念

图片2.png

ctr是广告的实际点击次数除以广告的展现量而ctr预估是给定一个用户和广告预测广告曝光之后获得点击的概率这个概率值可以在排序任务中提升业务的指标。

(3)介绍STR预估的流程

图片3.png

ctr预估一般包含读入数据智能工程,还有ctr模型序列预测模型指标评估,还有部署预测服务。在此我们读取oss数据好使用特征标标准化,做一个特征工程,然后使用GBDT做一个主模型,计算AUC,PRC等作为指标,最后部署到PAI-EAS。Gpd t是一个经典的基于梯度提升的有监督学习模型,可以用来解决二次分类问题。

构建了一个由多棵树呃组成的组合模型,每一棵决策树对应一个弱学习器,将这些弱学习器组合在一起,可以达到比较好的分类和回归的效果。

(4)Criteo数据集

首先介绍一下数据集我们这个实验的数据集是来自Criteo广告公司七天内的部分流量这里给出了三条示例数据。

图片4.png

每条数据对应用户展示的广告。第一列是label值。其中一表示,就是被点击了,零表示负样本是未被点击接下来的13个特征是数值性特征最后26列是类型性特征。

这是我们的数据。有了数据之后,我们下面再介绍一下如何搭建这样一个学习流程
图片5.png

在这个阿里云底单上,我们可以通过读取CSS文件的方式读入数据,然后使用标准化训练对数据做特种工程,然后用GBDT二分类训练下主模型,并对数据做一个推理,最后使用二分类的评估组件对这个预测结果进行一个评估。后面我要介绍一下,我们这些组件是如何使用的

其中这个CSC组件我们需要设置它的文件路径,设置它的Schema,并在执行调优中设置计算资源为Flink。像其他的标准化还有GBDT还有二分类评估这些组件的使用。这边我不一一赘述,后面在实验中会使用这些组件。当我们把这个所有的组件参数设置完成之后,我们可以点击执行,

图片6.png

将这个任务提交到flink VP集群,在机器上去运行。当运行结束之后,我们可以查看评估的一个结果。我们可以看到一些常用的像aocks,还有对应的一些曲线这样评估如果模型评估的比较好的时候,我们可以将这个模型部署成一个服务

 

二、实验内容

(1)在PAI-Desighner中搭建CTR预估的实验流程

下面我们具体操作一下搭建这样一个实验,并且把模型部署成一个服务。当我们记住这个可视化建模的designer首先需要建立一个工作流。然后进入工作流,会出现一个画布,我们需要在画布上搭建我们的这个机器学习流程。

首先我们是拿取对应的组件,我们是先读CSO文件,需要拿取训练数据和预测数据。拿取标准化的训练和预测组件。再拿取GBDT的二分类训百分的预测总结还有二分类的评估总结。这些数据拉取完之后我们根据业务流程把这些组件串联起来。我们读的数据首先需要做一个标准化的训练这个训练完成之后。对数据做标准化推理然后需要把标准化的数据来做GBDT二分类的模型训练,训练的模型需要去做二分类的推理,彻底完之后,需要把结果做一个评估

在我们的整个业务链路就是这个样子
图片7.png下面我需要把这些参数填写首先我们把这个运行资源设置成Flink运行资源,首先是读取实验文件我们需要填写文件的路径,我们使用OSS文件,用个十万的数据来做训练。然后这个schema我们需要从文件复制一下。同样,这个验证数据也是一样的。设置一下schema。最下面这个我们有一个一万的数据,因为下面买的这几个组件的设置需要用到输入数据,所以我们先把输入数据执行一下。这里大概需要执行一两分钟CSV读取文件,组件执行完之后,下面我们设置其他组件的参数。首先是标准化,我们这边需要做标准化的列。这边我们将所有double列做一下标准化然后标准化预测这边不需要设置参数。GBDT二分类这边需要设置特征列,这边能够把所有的列都选上。选择类别型特征,把所有SRING都选上。标签列这边选择label对应的预测这一块我们需要预测结果的详细列。然后在二分类评估这边设置详细列,并且使用的是lable列。完结之后呢,我们就点击左上角这个绿色按钮运行实验任务就会被踢到后台VP。

任务执行完之后呃,下面我们可以通过这个分类评估组件查看一下结果。可以看到我们的AOC是0.671,kS是0.3。还可以看到它的评估曲线roc曲线,以及pre曲线

2)将CTR预估模型部署成一个EAS服务

如果我们的这个评估已经感觉非常不错了想要把它部署一个服务的时候,首先要制作pai plan模型,这边我们可以选择想要部署的模型。可选择部署一个标准化预测的模型,也可以选择部署一个GBDT的模型。也可以选择部署标准化加二分类预测,两个大包成一个模型来部署这边我们以两个部署说一下这个功能,这时候取完之后我们点击下一步,这时候会提示你,我们这边会打包标准化批的预测还有二分类预测,还有两个推移组件点击下一步,会讲几个任务之间的两个部署,后台会加上两个模型打包一个模型,然后点击部署es,跳转到这个es部署界面,调转完之后我们只需要设置一下服务的名称,还需要设置配置的资源配置的资源我们选用活动的资源选择oss,点击部署确定这样我们就会就服务器提供了一个创建部署的请求,这个服务大概需要1到2分钟。
图片8.png

左上方显示一个绿色对号的时候表示已经部署完成。然后我们可以点击在线测试,然后我们复制一下样本,发送请求,对应他又会返回我们这边的结果,这个结果包含了我们预测的结果还有对应的detail信息。到现在为止我们已经完成了cruc的dome搭建以及服务的创建及验证。

 

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
4月前
|
机器学习/深度学习 数据采集 算法
Python实现GBDT(梯度提升树)回归模型(GradientBoostingRegressor算法)项目实战
Python实现GBDT(梯度提升树)回归模型(GradientBoostingRegressor算法)项目实战
147 6
|
4月前
|
机器学习/深度学习 数据采集 算法
Python实现GBDT(梯度提升树)分类模型(GradientBoostingClassifier算法)并应用网格搜索算法寻找最优参数项目实战
Python实现GBDT(梯度提升树)分类模型(GradientBoostingClassifier算法)并应用网格搜索算法寻找最优参数项目实战
185 3
|
5月前
|
机器学习/深度学习 人工智能 Dart
AI - 机器学习GBDT算法
梯度提升决策树(Gradient Boosting Decision Tree),是一种集成学习的算法,它通过构建多个决策树来逐步修正之前模型的错误,从而提升模型整体的预测性能。
|
5月前
|
机器学习/深度学习 算法
GBDT算法超参数评估(一)
GBDT(Gradient Boosting Decision Tree)是一种强大的机器学习技术,用于分类和回归任务。超参数调整对于发挥GBDT性能至关重要。其中,`n_estimators`是一个关键参数,它决定了模型中弱学习器(通常是决策树)的数量。增加`n_estimators`可以提高模型的复杂度,提升预测精度,但也可能导致过拟合,并增加训练时间和资源需求。
|
5月前
|
机器学习/深度学习 算法
GBDT算法超参数评估(二)
GBDT算法超参数评估关注决策树的不纯度指标,如基尼系数和信息熵,两者衡量数据纯度,影响树的生长。默认使用基尼系数,计算快速,而信息熵更敏感但计算慢。GBDT的弱评估器默认最大深度为3,限制了过拟合,不同于随机森林。由于Boosting的内在机制,过拟合控制更多依赖数据和参数如`max_features`。相比Bagging,Boosting通常不易过拟合。评估模型常用`cross_validate`和`KFold`交叉验证。
|
5月前
|
机器学习/深度学习 算法
梯度提升树GBDT系列算法
在Boosting集成算法当中,我们逐一建立多个弱评估器(基本是决策树),并且下一个弱评估器的建立方式依赖于上一个弱评估器的评估结果,最终综合多个弱评估器的结果进行输出。
|
机器学习/深度学习 人工智能 自然语言处理
课时1:相册服务中的故事生成算法介绍
课时1:相册服务中的故事生成算法介绍
|
机器学习/深度学习 存储 算法
课时1:基于Swing算法的商品推荐
课时1:基于Swing算法的商品推荐
|
存储 机器学习/深度学习 负载均衡
使用梯度提升树算法进行CTR预测
使用梯度提升树算法进行CTR预测
431 0
|
29天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。