最近时间都忙于参加阿里天池的全国社会保险大数据应用创新大赛,终于结束,最终全国排名第7,总共是1336只队伍参加,还是很激动进了前10,今天想把一些体悟写一下,希望对后来参加的人有用。这个比赛是完成数据算法模型的开发设计,实现对各类医疗保险基金欺诈违规行为的准确识别,根据给出的数据情况,最开始有两个思路,1.从就诊记录入手,找到可疑的就诊记录,然后拼接到人上 2.直接构造人的可疑程度的行为特征。两者都试过,最终选择了后者,因为题目给出的欺诈标签主要是人的欺诈标签,并没有给出某次就诊行为的欺诈标签。另外,此次的评测指标是F1值,这个非常重要,你要知道你最终排名都是看的这个值。下面我从三个方面讲一下这次比赛的心得。

一、特征

可能没参加比赛前很难理解特征决定上限的这个真理,特征特征才是最重要的!

一定要看特征重要度,要不断尝试,有些组合到一起反而降低,有些特征看着不重要,你把他去了 可是结果却会出现下降的情况,因为特征和特征之间是有关系的。

在重要特征做深入处理的收益远大于在次要特征中继续做。

汇总信息有些时候会丢失信息,比如我们最开始将医院数据进行了汇总,计算每个人去一级医院,二级医院,三级医院的个数,反而没有把所有医院的维度扩充好。

观察和了解你的数据很重要。观察数据发现患者同一天在同一个医院有药费,有治疗费分别出现不同的就诊id,包括挂号的费用也是不同的id,我们认为其实是一次就诊,所以进行相应汇总。

要保证测试集和训练集一起处理,否则会出现两者特征不匹配

二、模型

后期为了提高泛化能力,基本都会进行模型的融合,最后我们是用了三个GBDT的模型进行的融合。而这三个模型的选取,其中一个就是我们每次提交用到的那些特征(有些降低了排名的就舍弃的特征,只有200多维),另外两个使我们把我们历史用到的所有的特征(600多维),进行特征重要度的选择(选了一个100维、一个120维),神奇的发现之前一些舍弃的特征之间居然可能发生了相互作用,所以模型效果还可以。所以一些最开始的一些加进去使得排名下降的特征不要直接丢弃,最后特征融合的时候可能反而用上了。

三、评测指标F1和调参

过拟合问题一定要非常小心,初赛的时候我们就完全犯了错误,直接根据排行榜的成绩来调我们的模型和特征。尤其是因为最终评价指标是F1值,01阈值的选取对F1影响比较大,而我们就一直根据排名调我们的阈值,最后调到A榜排名前,但是其实是过拟合,B榜排名降了几十名,还好还是进复赛了。

最后复赛吸取教训,还是调参还是要相信CV的结果,训练数据分成5份,前面4份作为训练集,在第5份上验证,然后再次训练,在1235上训练,第4份上验证,然后对不同份进行循环,这么做你会对哪组超参数表现更加稳定更确定,最后你可以用这组超参数对整个训练集训练。随机数的种子对结果可能也有影响,有些时候种子的结果好,但实际的结果不一定是这样的,所以还是相信cross_validation的结果吧

最后我们阈值的选取是根据CV大概负样本的比例来决定的,而不是直接用模型默认的0.5作为分割

四、阿里平台

复赛必须使用阿里的平台,主要是根据帮助文档来学的,将之前用python构造的特征重新用SQL构造,虽然觉得不方便,也是相当于解决相同问题的不同途径,也学了好多以前不会的函数,比如percent_rank()函数的使用等等。时间窗口用SQL做折磨死我们了,包括一个人连续住院的最大天数,最后找到一个奇妙的解决方案,生成一个序列号,然后将日期转化为天数,然后做差,再Groupby 。阿里PAI平台上没有xgboost模型,但是IDE(大数据开发套件)上可以使用。

DROP OFFLINEMODEL IF EXISTS testXgboost_cv_2_388;

PAI

-name xgboost

-project algo_public

-Dobjective="binary:logistic"

-Deval_metric="auc"

-Deta="0.1"

-Dseed="0"

-Dnum_round="128"

-Dmax_depth="6"

-Dmin_child_weight="4"

-Dgamma="0"

-Dsubsample="0.8"

-Dcolsample_bytree="0.8"

-DmodelName="testXgboost_cv_2_388"

-DinputTableName="pai_temp_60326_831172_1"

-DlabelColName="label"

-Dmax_delta_step="1"

-DfeatureColNames="approve,max_month_count,self_pay_sum_add。。。";

drop table if exists xgb_825_cv2_388;

pai -name prediction

-DmodelName="testXgboost_cv_2_388"

-DinputTableName="pai_temp_60326_831173_1"

-DoutputTableName="xgb_825_cv2_388"

-DappendColNames="pid,label"

-DfeatureColNames="approve,max_month_count,self_pay_sum_add。。。;

最后 团队的力量真的很重要,能取得那么前的排名,主要是我的领导带着我一起做的,头脑风暴,开脑洞想特征真的很重要!

比赛链接如下

https://tianchi.aliyun.com/competition/introduction.htm?spm=5176.100068.5678.1.FPmdTB&raceId=231607

转载于:https://www.cnblogs.com/fionacai/p/7560287.html

阿里天池全国社保比赛心得相关推荐

  1. 阿里天池供应链需求预测比赛小结

    阿里天池供应链需求预测比赛小结 一.赛题的思路回顾 1.1赛题描述 使用历史平均来预测未来的需求 使用测试集真实数据进行过拟合的结果 名词定义 库存水位 在仓库存数量,用来满足需求. 补货时长(交货时 ...

  2. 阿里天池比赛——街景字符编码识别

    文章目录 前言 一.街景字符编码识别 1. 目标 2. 数据集 3. 指标 总结 前言 之前参加阿里天池比赛,好久了,一直没有时间整理,现在临近毕业,趁论文外审期间,赶紧把东西整理了,5月底学校就要让 ...

  3. 第五届阿里天池中间件比赛经历分享

    第五届阿里天池中间件比赛经历分享 本文记录了作者与队友们参加2019年第五届阿里天池中间件的经历.初赛排名175/4000+队伍,幸运进入决赛.虽然最终方案比较简单,但是过程很是曲折.最后通过高分选手 ...

  4. 阿里天池比赛——地表建筑物识别

    阿里天池比赛--地表建筑物识别 记录一下之前参加的阿里天池比赛,方便以后查看. 策略: 1.多模型训练 2.多模型测试 3.数据增强 4.预训练/冻结训练 5.迁移学习 6.TTA 7.后处理 8.f ...

  5. 阿里天池比赛——食物声音识别

    阿里天池比赛--食物声音识别 最近写毕业论文无聊之余,再次参加阿里天池比赛,之前一直做CV,第一次尝试做语音识别,记录一下过程. 策略: 1.梅尔频谱和梅尔倒谱以及混合 2.多模型测试 想玩这个项目的 ...

  6. 阿里天池比赛多次拿前3,如何做到?

    微信公众号推荐 AI蜗牛车公众号 微信公众号<AI蜗牛车>,公众号致力于技术项目化,具体化,思考化,会写系列的项目工程文章,细致到位,也会写一个读物的读书笔记,或者一个语言/框架的学习笔记 ...

  7. yolov5使用教程训练our数据——手把手教你训练预测(以阿里天池比赛为例)

    玩转yolov5 前言 1.yolov5项目克隆和安装 1.1 代码下载 1.2 安装环境 1.3 下载预训练权重 1.4 安装测试 2.数据准备 2.1 数据形式 2.2 数据转换 2.3 转换结果 ...

  8. 阿里天池_优秀策略答辩PPT和相关博客

    简介 前段时间想熟悉下机器学习完整项目,选择了阿里之前的一个相对实际的移动推荐项目(实际是分类,并非推荐),有兴趣自己研究.将本人参考借鉴的blog和ppt做了简单整理回顾.加深下印象 阿里天池大数据 ...

  9. 阿里天池—2022江苏气象预测AI算法挑战赛

    文章目录 摘要 一.数据分析 二.MAE简介 三.Transformer简介 四.模型搭建(还未写......) 摘要 This is a meteorological forecasting com ...

最新文章

  1. 小tips:JS之按位取反,语法标签label,正则表达式中replace的0,1是什么?
  2. dbnull和null_NULL和DBNull的区别分析
  3. 使用Math 类 和 Random类 两种方式生成 20 到30之间的随机整数---java基础
  4. python汉诺塔问题_Python汉诺塔问题
  5. UVa OJ 128 - Software CRC (软件CRC)
  6. Spring Boot Cache之缓存
  7. sap 测试数据生成报表
  8. [k8s]容器化node-expolore(9100)+cadvisor(8080)+prometheus(9090) metric搜集,grafana展示
  9. python sys.exc_info()详解
  10. ffmpeg安装教程
  11. cad计算机制图如何标注,零件序号和图号有什么区别,CAD制图中怎样标注零件序号...
  12. Linux学习-菜鸟教程知识(一)
  13. 百度网盘下载加速(pc端)
  14. End-to-end/hand-crafted的含义(深度学习)
  15. 我的世界服务器自动被踢怎么可以进去,我的世界中国版服务器中如何解决玩家作弊的简单方法...
  16. 华为到底玩的哪些汽车技术?
  17. MacOS英文版Google浏览器添加印象笔记剪藏插件
  18. audio实现歌词同步
  19. 债券型基金、股票型与混合型基金的选择方法,以及指数基金有低估和高估阶段
  20. 音频怎么转换文件格式?教你轻松转换

热门文章

  1. c语言边界条件的设置,求解能不能用c或c++语言实现下面的约束条件
  2. mybatis接口中的方法重载_MyBatis底层实现原理: 动态代理的运用
  3. 遇到一个gcc编译器版本导致的运行结果有差异的问题
  4. Spring Boot @SpringApplicationConfiguration 不能导入
  5. html协商缓存没起作用,用了CDN缓存,就会跳过强缓存和协商缓存吗?
  6. linux5.5 里dns,linux red hat 5.5 dns 问题求解
  7. java实现鼠标截图,java实现屏幕截图(附源码)
  8. 95-20-020-启动器-Cloneable
  9. 【ElasticSearch】es 线程池 ThreadPool 的封装
  10. 1.1.0-简介-P2-分布式系统的一些基本概念