营销场景的自动化建模思考

server/2024/10/25 18:27:27/

一、需求分析

在营销场景实际业务中,例如节日大促,新品发售等场景确定模型相对于专家规则有效果后,后续是两个方向

1、要么单个场景做单点突破,例如已经准确率已经达到90%了,想要进一步提升,例如从梯度提升决策树到深度学习,甚至到强化学习。这种场景适合单一入口的产品,例如百度搜索、抖音视频推荐,围绕这第一生产力做优化,因为每个1%甚至0.1%的优化,在几亿用户体量下都会带来很大的收益,则考虑纵向发展。

2、要么根据模型有效,快速复制到多个场景,每个场景提升20%-30%,带来整体的效果提升。例如五一大促有效,马上复用于后续的各个大促节点。这种适合单一场景是一次性的,但是每年场景是非常多的,则考虑进行横向扩展。

在营销场景中,以业务销售公司做横向多场景扩展为例子,讲下如何做横向扩展。

在机器学习建模流程中分六个步骤:需求沟通、目标确定、特征和数据挖掘、模型训练、模型评估、模型上线。其中越往下游,则越容易复用,可以考虑抽象出模版来解决代码重复开发问题。

二、详细分析

例如模型上线,可以使用在线的统一服务接口或者是离线统一数据表来提供实时数据和T+1的离线数据。例如Python的Flask服务,或者直接用Seldon,kserve等模型发布服务。或者是hive计算离线数据。基本可以实现一套代码通用全部场景

参考对应的kserver代码kserve/python/xgbserver/xgbserver/model.py at master · kserve/kserve · GitHub

import pickle
class Model:def __init__(self):self._model = pickle.loads( open("model.pickle", "rb") )def predict(self, X):output = self._model(X)return output

模型训练阶段,则可以提供可修改模型的优化配置参数文件,以及对应的训练数据和预测数据的地址,就可以复用多个场景,一套代码通用全部场景

(learning_rate =0.1,n_estimators=1000,max_depth=5,min_child_weight=1,gamma=0,subsample=0.8,colsample_bytree=0.8,objective= 'binary:logistic',nthread=4,scale_pos_weight=1,seed=27
)

特征和数据挖掘阶段,则考虑多个场景中的相同性,对共性的做代码提取,对非共性的提供可配置的文件,并且是多场景,很多特征其实是可以复用,并且不会大规模更新特征,则可以复用特征获取脚本。这个场景是可能是一个场景或者一个品牌一套特征和数据挖掘的流程,N个品牌的代码

目标确定阶段,同样根据多个场景的相同性,开发标签模模版,例如大促是固定的 开始时间到结束时间,订单范围是限定某些特定渠道,用户范围是限定某些用户,这个就需要有很强的灵活性,例如大促一套,商品一套,门店一套,甚至不同品牌还需要各自一套逻辑,N个品牌*M个商品的代码

参考文献

1. ​​​​​​GitHub - kserve/kserve: Standardized Serverless ML Inference Platform on Kuberneteshttps://github.com/SeldonIO/seldon-core

2. ​​​​​​GitHub - kserve/kserve: Standardized Serverless ML Inference Platform on Kubernetes


http://www.ppmy.cn/server/3936.html

相关文章

运维前端vue部署

文章目录 一、本地环境准备二、代码结构及功能三、部署上线步骤简介补充代码操作命令 补充代码操作命令 四、接收后端数据统一接口五、其他 一、本地环境准备 1.node.js 安装(建议版本:v14.16.0) 参考:https://www.cnblogs.com/l…

计算机网络---第十一天

生成树协议 stp作用: 作用:stp用于解决二层环路问题。 BPDU: 含义:桥协议数据单元,用于传递stp协议相关报文 分类:配置bpdu---用于传递stp的配置信息 tcn bpdu---用于通告拓扑变更信息 包含信息&…

P对P替代PS8409A 的功能如下

同时支持交流耦合和直流耦合TMDS输入 数据速率高达10 Gbps,兼容HDMI 1.4b、HDMI 2.0b和HDMI 2.1 FRL 通过AUX支持I2C 可编程接收器数据通道均衡器增益高达16 dB EQ、预加重、输出摆幅和转换速率的全局或独立通道控制 使用片上电阻器或片外电阻器调节TMDS输出振…

类的加载,反射和注解详解

文章目录 类的加载概述类加载器作用分类获取类加载器的方式 双亲委派机制3种加载器的关系工作机制 类加载器的应用 反射概述关键获取类对象获取构造器对象获取方法对象获取成员变量对象作用 注解概述作用自定义注解格式属性类型 元注解常见的元注解 注解解析概述方法技巧 类的加…

immutable variables, constants的区别(rust)

let immutable_variable 1590865; //不可变变量 const constant_variable 0096; //常量常量、不可变变量一样,都无法更改变量的值,但是常量和不可变变量之间存在以下区别: 不可变变量默认不可变,编译器会进行检查。常量不仅在默…

go语言net包里面的PostForm

net包里面的http包里定义了Request结构体,用于http的请求, type Request type Request struct { // Method指定HTTP方法(GET、POST、PUT等)。对客户端,““代表GET。 Method string // URL在服务端表示被请求的URI&…

Java JNI调用本地方法1(调用C++方法)

一、基础概念 1、JNI(Java Native interface):sun公司提供的JNI是Java平台的一个功能强大的接口,实现java和操作系统本地代码的相互调用功能,系统本地代码通常是由其他语言编写的,如C。 二、JNI使用步骤 1、定义一个J…

Redis入门到通关之GEO实现附近的人功能

文章目录 ☃️概述☃️命令演示☃️API将数据库表中的数据导入到redis中去☃️实现附近功能 ☃️概述 GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。…