O2O优惠券预测

O2O优惠券预测

  • 赛题理解
    • 赛题类型
    • 解题思路
  • 数据探索
    • 理论知识
      • 数据可视化分布
  • 特征工程
    • 赛题特征工程思路
  • 模型训练与验证

赛题理解

赛题类型

本赛题要求提交的结果是预测15 天内用券的概率,这是一个连续值,但是因为用券只有用与不用两种情况,而且评测指标是典型的二分类评测指标AUC,所以这是一个二分类问题

解题思路

在这里插入图片描述
总结来说,解题流程是数据分析 -> 特征工程 -> 训练与验证 -> 模型融合。

数据探索

在这里插入图片描述

理论知识

数据可视化分布

1、箱线图

箱线图(Box-Plot) 是用于显示一组数据分散情况的统计图,因其形状如箱子而得名。

箱线图的绘制过程:首先,找出一组数据的上下边缘、中位数及两个四分位数;然后,连接这两个四分位数,画出箱体;最后,将上下边缘分别与箱体连接,这样中位点就位于箱体中间。

箱线图可以观察数据分布的特征,也可以用于对多组数据分布特征进行比较。

2、直方图和Q-Q图

直方图(Histogram)是用一系列高度不等的纵向条纹或线段来表示数据的分布情况,是一种统计报告图。一般横轴是数据类型,纵轴是统计特征(比如频数)。

Q-Q图( Quantile-Quantile Plot)以散点图的方式,通过绘制两个概率分布对应的分位数对不同分布进行比较。Q-Q图可以用于检验数据是否为正态分布。在Q-Q图上,将数据的分位数作为x轴坐标值,同时将计算出的假定为正态分布时的数据分位数作为y轴坐标值。当实际数据近似为正态分布时,Q-Q图的点会落在一条直线上。

3、分布对比

我们可以通过绘制不同特征项的核密度(Kdeplot)来对比数据分布。由于核密度估计是通过核函数对数据点进行拟合,因此得到的数据分布图比直方图更加平滑。

4、线性关系

使用regplot()函数可以对两个特征项之间的线性回归关系进行可视化展示。

特征工程

赛题特征工程思路

(1)首先可以通过offline训练数据直接提取训练集特征并进行标记(结合“Date_recieved”和“Date”即可判断该优惠券是否使用),通过测试数据提取测试集特征。

(2)在训练集中可以直接提取的特征主要与优惠券相关,包括折扣率、优惠券类型(是否为满减)、满额、减额、距离等。

(3)进一步可以提取统计特征。包括用户统计特征,如用户领取优惠券次数(总数,核销,未核销)、用户消费次数(总数,用券,未用券)、折扣率(最大,最小,平均)等;优惠券统计特征,如核销率、领取次数、消费次数、使用距离(最大,最小,平均)等;商家统计特征,如优惠券被领取次数及使用概率(总数,核销,未核销)、使用距离(最大,最小,平均)、被使用优惠券的折扣率(最大,最小,平均)等;关联统计特征,如用户领取商家的优惠券次数、用户领取商家优惠券后的不核销次数、用户领取商家优惠券后的核销次数、用户领取商家优惠券后的核销率等。

(4)评估穿越。在机器学习中,我们之所以要将样本划分为训练集和测试集,主要就是希望在测试集上做评估,而不是在训练集上做评估,防止发生过拟合,进而使评估结果更加准确。评估穿越,指的就是由于样本划分不当,使测试集中的信息“穿越”到了训练集中, 导致评估结果更偏爱过拟合的模型,致使结果不够准确。为了防止评估穿越,本赛题在滑窗的过程中,要注意预测区间和特征区间一定不能重叠,直接使用全局数据的统计量更是不可取

(5)滑窗。滑窗(滑动窗口)就是指定单位长度的时间序列,然后计算窗口区间的统计指标。这一过程也相当于让一个指定长度的滑块在刻度尺上面滑动,每滑动一个单位即可反馈滑块内的数据。采用滑窗的方法可以得到多份训练数据集,特征的窗口区间越小,得到的训练数据集的数量越多。

在这里插入图片描述
对特征区间的数据集可以提取各种统计特征,对预测区间的数据集可以提取优惠券等数据本身的特征,同时对是否用券进行标记。

(6)穿越特征。就是在训练集上提取的特征,或者外部取得的在目标时间段内的数据。穿越特征在实际应用中意义不大,因为用的是“未来”的数据,在实际过程中是得不到的。但是在比赛过程中,经常对分数有很大提高。以本赛题为例,在提供的预测集中包含了同一个用户在整个7月的优惠券领取情况,这实际上是一种穿越。比如,存在这种情况:某一个用户在7月10日领取了某优惠券,然后在7月12日和7月15日又领取了相同的优惠券,那么7月10日领取的优惠券被核销的可能性就很大了。在加入这部分特征后,AUC可以提升约10个百分点。

说明:不同的比赛对穿越特征的要求不一样,有的比赛绝对不允许使用穿越特征,有的比赛允许。在参加比赛时,如果发现穿越特征,则一定要与主办方确认是否可以使用!

(7)特征方案。正如前面章节所讲,机器学习方案是一个不断迭代的过程,作为机器学习关键环节的特征工程,更是需要不断地迭代、优化。上面我们已
经分析了要提取的特征,在此基础上,按照由浅入深、由简单到复杂的顺序提取了三个版本的特征。

特征V1:直接在训练集、测试集上提取的特征,也就是将给定数据项进行数值化的结果。
特征V2:在特征V1的基础上,增加了滑窗统计特征,包括用户统计特征、优惠券统计特征、商家统计特征、关联统计特征等。

模型训练与验证

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

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

相关文章

Redis入门到实战(四、原理篇)RESP协议

目录 2、Redis内存回收-过期key处理3、Redis内存回收-内存淘汰策略 Redis是一个CS架构的软件,通信一般分两步(不包括pipeline和PubSub): 客户端(client)向服务端(server)发送一条命令…

数字秒表VHDL实验箱精度毫秒可回看,视频/代码

名称:数字秒表VHDL精度毫秒可回看 软件:Quartus 语言:VHDL 代码功能: 数字秒表的VHDL设计,可以显示秒和毫秒。可以启动、停止、复位。要求可以存储6组时间,可以回看存储的时间 本资源内含2个工程文件&am…

2023 年程序员必读的 27 本软件开发书籍

不断发展的软件开发领域需要不断学习和改进。现代开发实践要求软件工程师具备全面的知识,包括各个领域的理论见解和实践技术,从编程语言和数据库管理到质量保证、网页设计和 DevOps 实践。 这就是编程书籍可以提供帮助的地方。通过及时了解此类书籍并应…

模拟退火算法求解TSP问题(python)

模拟退火算法求解TSP的步骤参考书籍《Matlab智能算法30个案例分析》。 问题描述 TSP问题描述在该书籍的第4章 算法流程 部分实现代码片段 坐标轴转换成两点之间直线距离长度的代码 coordinates np.array([(16.47, 96.10),(16.47, 94.44),(20.09, 92.54),(22.39, 93.37),(2…

如何给Github上的开源项目提交PR?

前言 对于一个热爱开源的程序员而言,学会给GitHub上的开源项目提交PR这是迈出开源的第一步。今天我们就来说说如何向GitHub的开源项目提交PR,当然你提交的PR可以是一个项目的需求迭代、也可以是一个Bug修复、再或者是一些内容文本翻译等等,并…

单片机点亮led管(01)

如何开始学习单片机 1:实践第一 2:补充必要的理论知识,缺什么补什么 3:做工程积累经验(可以在网络上收集题目,也可以有自己的想法大胆的实验) 单片机是什么? 单片机&#xff08…

5分钟内在Linux上安装.NET Core应用程序

作为开源的忠实粉丝,我喜欢 .NET Core 的跨平台特性。它开启了无限的可能性,从业余爱好项目、实验和概念验证,到在具有高安全性和可扩展性的经济高效基础设施上运行的大规模高负载生产应用程序。我通常从任何云平台提供商那里获得最简单、最便…

<C++> 模拟实现string

目录 前言 一、模拟实现string 1. 成员变量 2. 构造函数 2.1 构造函数 2.2 重载默认构造 2.3 合并 3. 析构函数 4. 拷贝构造函数 5. c_str 6. size 7. operator[ ] 7.1 普通版 7.2 const版本 8. 迭代器—iterator 8.1 普通版iterator 8.2 const版本iterator 9. 尾插 10. …

【微服务 SpringCloud】实用篇 · 服务拆分和远程调用

微服务(2) 文章目录 微服务(2)1. 服务拆分原则2. 服务拆分示例1.2.1 导入demo工程1.2.2 导入Sql语句 3. 实现远程调用案例1.3.1 案例需求:1.3.2 注册RestTemplate1.3.3 实现远程调用1.3.4 查看效果 4. 提供者与消费者 …

美创科技入选“内蒙古自治区第一届网络安全应急技术支撑单位”

近日,内蒙古自治区党委网信办、国家网络应急技术处理协调中心内蒙古分中心评选“内蒙古自治区网络安全应急技术支撑单位”结果公布。 经自治区各地区、各部门和单位推荐各单位自主申报,资料审查和专家评审等环节,美创科技成功入选“内蒙古自治…

Linux将磁盘空闲空间转移到其他目录下(home目录转移到root目录下)

目录 1、查看分区 2、备份home分区文件 (重要) 3、卸载/home 4、删除/home所在的lv 5、扩展/root所在的lv(我这里还扩展了、dev/sr0) 6、扩展/root文件系统。 7、重新创建home lv 创建时计算好剩余的磁盘容量,建…

数据预处理—滑动窗口采样数据

一个简单的例子: # data: 这是要应用滑动窗口采样的输入数据,通常是一个序列,例如列表或NumPy数组。 # window_size: 这是滑动窗口的大小,表示每个窗口中包含的元素数量。 # step_size: 这是滑动窗口移动的步长,表示每…

一个可以解决企业跨网文件交换难题的软件所具备的特性必须有哪些

在当今数字化办公的浪潮中,企业跨网文件交换成为了不可忽视的重要需求。无论是内部网络还是外部网络,都存在着各种跨网文件交换的场景,然而这一过程也面临着一系列的挑战。本文将深入探讨企业跨网文件交换的难题以及一款可以解决企业跨网文件…

vue 树状结构数据渲染 (java 处理 list ->树状)

树状结构 Element ui https://element.eleme.cn/#/zh-CN/component/tree <el-tree :data"data" :props"defaultProps" node-click"handleNodeClick"></el-tree><script>export default {data() {return {data: [{label: 一级…

日常中msvcp71.dll丢失怎样修复?分享5个修复方法

在 Windows 系统中&#xff0c;msvcp71.dll 是一个非常重要的动态链接库文件&#xff0c;它承载了许多应用程序和游戏的运行。如果您的系统中丢失了这个文件&#xff0c;那么您可能会遇到无法打开程序、程序崩溃或出现错误提示等问题。本文将介绍 5 个快速修复 msvcp71.dll 丢失…

2000-2022年上市公司CEO 高管及董事会环保背景数据(5W+ )(原始数据+处理代码Stata do文档)

2000-2022年上市公司CEO 高管及董事会环保背景数据&#xff08;5W &#xff09;&#xff08;原始数据处理代码Stata do文档&#xff09; 1、时间&#xff1a;2000-2022年 2、指标&#xff1a;证券代码、股票代码、年份、股票简称、ST或PT为1&#xff0c;否则为0、金融业为1&a…

【操作系统】线程的实现方式:用户线程和内核线程

1 用户级线程 完全在用户空间中实现和管理的线程。 它们的创建、同步和调度由应用程序通过用户级别的线程库实现&#xff0c;所有的线程管理工作都由应用程序负责&#xff0c;无需操作系统内核干预。在用户看来有多个线程&#xff0c;但操作系统并不能意识到线程的存在。 缺点…

Android apkanalyzer简介

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、用法3.1 使用 Android Studio3.1.1…

VR全景广告:让消费者体验沉浸式交互,让营销更有趣

好的产品都是需要广告宣传的&#xff0c;随着科技的不断发展&#xff0c;市面上的广告也和多年前的传统广告不同&#xff0c;通过VR技术&#xff0c;可以让广告的观赏性以及科技感更加强烈&#xff0c;并且相比于视频广告&#xff0c;成本也更低。 在广告营销中&#xff0c;关键…

深度解析自动化测试流程(纯干货)

最近很多小伙伴咨询自动化测试到底该怎么做&#xff1f;流程是什么样的&#xff1f;在每个阶段都需要注意什么&#xff1f;本文也就主要从自动化测试的基本流程入手&#xff0c;对面试自动化测试工程师的同学会有不少帮助。对于在职的朋友&#xff0c;也可以参考此流程&#xf…