比赛回顾1|众安保险线下Hackthon 保险续保预测

2024-02-04 07:10

本文主要是介绍比赛回顾1|众安保险线下Hackthon 保险续保预测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

鄙人参加了一些数据挖掘的竞赛,有运气好抱大腿获奖的,也有被大佬碾压的,但是希望能把这些比赛过程尽量记录下。一方面是记录一下事件本身,另一方面,是希望把自己的方案和想法记录下,同时即使获得了好的成绩,也是有运气成分,还是希望能够找到有进步的空间,以后能做的更好。

比赛开始的时候,是在2018年8月23日抵达的上海,入住了酒店。第二天早上吃了酒店高贵的自助早餐之后就去签到了。正式比赛开始是早上10点开始,一直到第二天的中午12点截止。(有没有觉得很神奇,真的很神奇,线下的预测比赛哦,调参就给了26个小时,中间我们真的没怎么睡,熬出来的)

然后到了25号早上,队友还在玄学调结果,我就只能先默默去把方案ppt给做了,因为我也就做了些特征相关的处理。下午两点答辩。最紧张刺激的是,我们当时在线的榜一直都是第一,在最后截止前一个多小时,被超了,最后就屈居第二。怀着沉重的心情,做着方案ppt。不过最后似乎我们的方案更得评委的心,(其实是我没怎么讲技术实现,然而大家的方法都比较雷同),总分反超获得第一。emmmm ,运气不错叭~

先给大家看些图好啦~纪念下~

凌晨六点的外滩,你见过吗?哈哈哈,那时候真的是身心俱疲,太累啦……

夜晚的外滩也是有不错的风景呢(不过这个是我们结束了之后才去的,放松下身心啦)

最后不要脸的放一下我答辩的照片和我们最后的成果啦~

okok!现在直入正题,讨论下我们的方案!

首先!数据量!真的很少,真的不多,当时我们是猜测,方便我们线下在训练的时候,可以节省些时间。大概总共数据量在一万多条。

主要针对的就是不同的保单,我们可以看到有用户信息,同时这些保单是在什么样的状态下生成的,最后是否续报了(label)。

由于题目给的数据是全脱敏的,也就是说,特征的名称挺多没有的,而且由于对于保险领域的知识的匮乏,很多只能查资料和猜,甚至某些特征对最后的标签是否有影响都无法直接判断。因此我们对于最后的数据结果,主要是以以下的策略去执行的:

    放弃无意义的数据,例如那些90%以上都是重复的数据,或者是唯一标识符性质的数据;

    挖掘有意义的数据,对其数据进行重新的映射和标记;

    从看起来有意义的数据背后挖掘相关的含义,让模型和场景结合的更紧密(其实是为了让答辩有东西可以讲)。

那么接下来就看下我们具体是怎么做特征工程的吧:

先来看下我们对于特征的分析统计信息。我们被给到的特征类型主要有C类型,V类型和Z类型的,大概的理解就是C类型的就是编号类型的,V类型的就是数值类型的,Z类型则是一些字符信息。

当然可以看到,我们根据原有的特征,进行了重组和计算等等,挖掘了他们背后的意义。总共我们的特征数量是24条。我们总共获取的特征数量是在原有数量的四分之一左右,所以可以看到其中还是有不少特征是无用,(或者是我们没有挖掘到深层信息的特征)。

现在来看看我们针对保险表单挖掘的信息,其中一些标为native的特征就是直接从原表中复制过来的。然后就让我来解释一下其中我们经过处理的特征,或是我们猜测其背后含义的数据吧。

    C02是我们重新定义的一维数据,其中的内容就是为了判断这份保单是否是用户为自己购买的,这个信息可以从表单的对应的人数中看的出来,因为每一张保单对应的角色一共有三个,投保人、被保人和受益人,一般只有都是同一个人,和有两个人的情况(至少我们在比赛的过程中没有出现有三个不同的人充当单个角色)。

    C09是我们认为一维比较强的特征,因为它可能代表的是保单的类型。猜测的原因也是因为在保险表单里面对应的分类较少的一维特征了。同时我们猜测到这一维特征是保单的类型,由此推测,保单的类型可能会大概率影响后续的续保行为,有可能保单的保险金额比较高,或者是比较容易报销,或者是收益比较好,等等,都是有可能的。

    V00,V01,V03这三维数据是比较有意思的,当时发现原表单里面是有三列特征有加减关系的,意思就是列A+列B=列C,很直观的就从销售角度考虑到折扣的问题了,我们就将他们两个合并成了V03这个单一特征了。同时V00这个特征是保留了保单的保额,也是会影响到最后的保单延续的情况。

在保单关于用户信息的一栏里面,最有趣的一栏是我们当时现场逼问出题人这个含义到底是什么意思。当时有很多无用数据,缺失率大概在80%以上,我们当时都放弃了,但是他们说给我们的数据都是有用的,于是他们就告诉我们在不同平台上的数据记录行为会有所区别。这就提示了我们,可能在不同平台上产生的保单,会有不同的信息记录形式,这也就可以从另一个角度告诉我们,这些用户是在不同平台上进行保险的购买,同时我也查找了相关的文献,在官方平台上产生的购买行为,复购率比第三方平台上的复购率高很多。于是我们就把这一维特征表达成了是否在官方平台上产生购买行为的bool型特征。

T5中展示的是我们在表中丢掉的一些特征,其中可能会又人很奇怪,为什么会丢掉性别特征,好,来看下一张图表,我们可以很明确的证明我们的猜想。

这个是我们在公司官网上扒下来的信息,对于不同年龄段的用户可能会产生不同的保费,但是其中并没有性别的选项,因此我们将性别信息排除在外。同时我们也对其进行猜测,可能在产生重大疾病或重大赔付的人群中,男女比例差别并不大。

最后一张表是保险赔付的表单,其中主要是用户产生了赔付行为,其中一些赔付款项,实际赔款,以及我们经过特殊处理的反应时间。在赔付行为和赔付的反应服务上,可能也会对用户的最后续保行为产生影响。

 

我们特征工程差不多就是这么多。算法的用的就是数据挖掘竞赛常用的xgboost算法,美其名曰其理论非常的优美。

最后的结果是以F1-score来测评的,这个赛题的结果并没有那么好,而且大家的方案结果都很接近,我们最终是在0.67左右的结果。

那么为了让整个“表演”更加的完整,我们还讨论了一下什么特征是对于我们最后的预测是最有帮助的——保费金额和保险状态。

Meanwhile呢,我们也讨论了下这个赛题的意义,无外乎就是吹捧了一下评委多棒啊,公司多牛逼,对,就是这样了。

那么最后肯定都是要讨论一下 future work的啦~对不对!自然就是说如何再提升F1-score啦,比如引入更多的特征,等等。

 

复盘到这里,其实觉得这次比赛真的做的非常一般,都没有pandas分析一下数据的分布和标签的关联性(队友们我错了,我一定加强我的数据分析能力),甚至最基础的特征交叉也没尝试过,只是做了简单的特征合并。不过整个比赛过程还是很享受的,每一步大家pace都很一致,所以整个比赛还是很愉快的。

不过最后的最后,我个人有一点小感想,包括做的别的比赛。在真实数据下的真实场景的数据挖掘竞赛,一定要深度理解场景背后的数据意义,不然这个数据就算用经验处理出来最后的结果,也不会有太好的表达性。但是,如果一味的挖掘背后的真实意义,有时候反而会忽略一些小的细节点,这些是可以用传统的暴力的特征交叉的方法做到的。

所以,这个小的总结写了不少,是本人在数据挖掘竞赛上的第一次比赛啦,也希望之后和队友们能越走越远,获得更好的成绩。欢迎大家留言交流。

 

以上。

    

这篇关于比赛回顾1|众安保险线下Hackthon 保险续保预测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/676701

相关文章

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短

Java基础回顾系列-第七天-高级编程之IO

Java基础回顾系列-第七天-高级编程之IO 文件操作字节流与字符流OutputStream字节输出流FileOutputStream InputStream字节输入流FileInputStream Writer字符输出流FileWriter Reader字符输入流字节流与字符流的区别转换流InputStreamReaderOutputStreamWriter 文件复制 字符编码内存操作流(

Java基础回顾系列-第五天-高级编程之API类库

Java基础回顾系列-第五天-高级编程之API类库 Java基础类库StringBufferStringBuilderStringCharSequence接口AutoCloseable接口RuntimeSystemCleaner对象克隆 数字操作类Math数学计算类Random随机数生成类BigInteger/BigDecimal大数字操作类 日期操作类DateSimpleDateForma

Java基础回顾系列-第三天-Lambda表达式

Java基础回顾系列-第三天-Lambda表达式 Lambda表达式方法引用引用静态方法引用实例化对象的方法引用特定类型的方法引用构造方法 内建函数式接口Function基础接口DoubleToIntFunction 类型转换接口Consumer消费型函数式接口Supplier供给型函数式接口Predicate断言型函数式接口 Stream API 该篇博文需重点了解:内建函数式

Java基础回顾系列-第二天-面向对象编程

面向对象编程 Java类核心开发结构面向对象封装继承多态 抽象类abstract接口interface抽象类与接口的区别深入分析类与对象内存分析 继承extends重写(Override)与重载(Overload)重写(Override)重载(Overload)重写与重载之间的区别总结 this关键字static关键字static变量static方法static代码块 代码块String类特

Java基础回顾系列-第六天-Java集合

Java基础回顾系列-第六天-Java集合 集合概述数组的弊端集合框架的优点Java集合关系图集合框架体系图java.util.Collection接口 List集合java.util.List接口java.util.ArrayListjava.util.LinkedListjava.util.Vector Set集合java.util.Set接口java.util.HashSetjava

Java基础回顾系列-第九天-数据库编程

Java基础回顾系列-第九天-数据库编程 数据库简介工具包java.sql API 内容与数据库建立连接执行SQL语句数据库检索和更新查询结果SQL类型对应Java类型映射元数据异常 API方法DriverManagerConnectionStatementPreparedStatementCallableStatementResultSetjava.sql.Date批处理、存储过程、事务

Java基础回顾系列-第一天-基本语法

基本语法 Java基础回顾系列-第一天-基本语法基础常识人机交互方式常用的DOS命令什么是计算机语言(编程语言) Java语言简介Java程序运行机制Java虚拟机(Java Virtual Machine)垃圾收集机制(Garbage Collection) Java语言的特点面向对象健壮性跨平台性 编写第一个Java程序什么是JDK, JRE下载及安装 JDK配置环境变量 pathHe

Vue2电商项目(二) Home模块的开发;(还需要补充js节流和防抖的回顾链接)

文章目录 一、Home模块拆分1. 三级联动组件TypeNav2. 其余组件 二、发送请求的准备工作1. axios的二次封装2. 统一管理接口API----跨域3. nprogress进度条 三、 vuex模块开发四、TypeNav三级联动组件开发1. 动态展示三级联动数据2. 三级联动 动态背景(1)、方式一:CSS样式(2)、方式二:JS 3. 控制二三级数据隐藏与显示--绑定styl

Tensorflow lstm实现的小说撰写预测

最近,在研究深度学习方面的知识,结合Tensorflow,完成了基于lstm的小说预测程序demo。 lstm是改进的RNN,具有长期记忆功能,相对于RNN,增加了多个门来控制输入与输出。原理方面的知识网上很多,在此,我只是将我短暂学习的tensorflow写一个预测小说的demo,如果有错误,还望大家指出。 1、将小说进行分词,去除空格,建立词汇表与id的字典,生成初始输入模型的x与y d