人社大赛算法赛场解题思路分享 + 冠军 + 破灭刀锋
1 团队介绍
我们是来自众安科技的数据科学实验室,团队名称是”破灭刀锋”。
2 赛题介绍
“精准社保”的赛题为“基本医疗保险医疗服务智能监控”,由参赛队完成数据算法模型的开发设计,实现对各类医疗保险基金欺诈违规行为的准确识别,以进一步丰富现行医保智能监控的医保规则和医学规则,提高医保智能监控的针对性和有效性。
在本次比赛中,将上述两种违规人员统称为涉嫌造假人员。选手需要基于给定的训练集数据得到模型,然后使用模型判定测试集中的人员是否为涉嫌造假人员。
3 解题思路
通过对赛题的内容进行分析,我们发现医疗保险基金欺诈违规行为,主要是为了获取利益—直接利益为通过虚假病历、诊疗等骗取医疗保险基金获取现金等,间接利益为通过对“实物”—药品进行变现,从而间接获取现金上的利益;整体来看,核心目的是为了获取金钱上的收益。
通过对业务和数据的了解,我们从以下几个方面进行入手:
a. 金额大:
从人性的角度看,一旦某一次通过欺诈的方式对医疗保险基金骗取成功之后,会选更大的金额进行作案,从而获取更多的金钱收益;
从数据挖掘、分布的角度看,生活中大病(金额较大)始终是少数,更多是感冒等常规的小病,并且金额较大的医疗会形成与小病不同的数据分布,以及更容易成为离群或者异常数据;
b. 频次高:
一旦某一次作案成功后,从侥幸心理的角度看,一定会再次进行作案,即医疗保险基金欺诈会一而再、再而三的发生;
从数据分布上,频次较高的一类数据和其他数据分布,会存在较为明显的分布差异;
而进行社保欺诈的相关人员,为了不断测试医疗保险基金欺诈识别的底线,也会不断的使用不同方案进行试探,最终在数据表现上也会体现高频词的特点;
频次体现在各个不同的方面,看病次数的频次、病种、药品种类、不同医院的频次等;
c. 药品变现性价比高:
从获取更多利益的核心点出发,在进行相应的诊断、服药开具的时候,倾向选择单价更高的药、同一类药品不断重复购买等更加快捷的方式,从而帮助实施欺诈的人员在金钱上获取更多的收益;
d. 异常数据发现:
医疗保险基金违规不只是一个人在违规,作案可能具有群体性,比如新的违规方法在一个群体里面进行传播,帮助这群人获取更多的金钱收益。
实施违规的相关人员和医生、基金理赔人员共同参与作案,规避识别规则的同时骗取更多的金钱收益。
f. 根据特征重要性拓展特征
通过以上几个方面进行业务出发,接下来进行数据的理解,以及结合数据的理解对将数据按照前面的潜在点进行模型特征转化,转化为模型能够训练和预测的特征。
3.1 数据字段整理
通过对训练数据字段统计分析,我们整理出来数据可用特征列表如下:
3.2 特征处理
有了前面的医疗保险基金违规的核心诉求点,也有了对数据的内容、字段整理和查看,接下来可以将两者结合,将数据转换为模型可训练的特征。
主要用到的特征如下:
a. 总的金额统计
由于训练数据和预测数据的时间分布相对一致,都是大约 6 个月的数据,直接将各项金额的总额汇总当做模型输入特征;
b. 按照滑窗对次数、金额进行统计
滑窗是指在一定时间窗口内,对时间段内的看病次数、不同医院的费用情况进行统计,使用滑窗的优点是:
1) 可以屏蔽不同人、不同时段的看病时间、看病次数的差异,并将这些差异统一到同一特征维度上进行处理、分析;
2) 可以将数据维度在统一时间下进行频次统计,转化为频次的最大值、平均值、最小值等的统计,即将数据形成频次特征,并具有可比性;使得能够将正常人和欺诈人员按照特征分离开来;
我们在滑窗上选择的是 15 天、30 天、60 天的滑窗,分别统计短、中、长周期下的频次情况;在时间滑窗上计算的内容有不同类型的金额统计、次数统计,并计算每种类型在滑窗下最大值、最小值、均值信息;
c. 按照比例进行进行滑窗统计
不同类型费用,都有总的费用和明细费用,我们通过计算每种不同详细费用在各自类别里面的比例,并且通过滑窗了解欺诈人员和正常人员的比例是否有差异,从而为模型识别欺诈人员提供帮助。
举例:
药品费发生金额由贵重药品发生金额、中成药费发生金额、中草药费发生金额、药品费自费金额、药品费拒付金额组成,同时药品费用相关的有药品费申报金额,通过计算这些比例(贵重药品发生金额/药品费发生金额, 中成药费发生金额/药品费发生金额等),从而了解欺诈人员是否在特定项目进行“异常操作”;
d. 住院、非住院的次数、金额、比例的分别统计
住院方式则是通过虚报诊疗过程进行住院治疗,骗取医疗保险基金;而非住院则是通过门诊加上药品的方式进行医疗保险基金的骗取;两种不同的方式对应的骗取金额、次数等存在一定的差异。
通过金额(手术费发生金额+床位费发生金额)来判断是否住院,以及在各自类别下(住院、非住院)进行滑窗的金额(总的发生金额、赔付金额)、次数的计算和统计,转化为模型训练输入特征;
e. 三目、药品金额
基本医疗保险的三个目录即药品目录、诊疗目录和医疗服务设施目录。首先通过统计各三目的次数占比了解欺诈人员在三目的方向上是否有倾向(比如药品相对于住院比较方便进行“异常操作”,那么欺诈人员会更加的偏向通过药品进行欺诈),从而为模型识别欺诈人员提供帮助。
药品方面主要假设欺诈人员可能会通过每次开具单价金额较高的药品、单次就诊开设药品总金额较高、开的药品数量较多以及频繁的开药等方式来骗取社保基金。因此通过统计以下四个方面作为特征输入:
l 病人每次看病的平均金额、最大金额以及最低支付金额
l 平均每次最高药品的单价
l 平均每次就诊药品的种类数(最大、最小、平均值)
l 平均每次就诊药品的数量(最大、最小、平均值)
对于剩余的其他三目项目,主要统计了频次(滑窗)、总支付金额(最大、最小、平均以及滑窗)、项目数量(最大、最小、平均、滑窗)、项目种类数(最大、最小、平均、滑窗)来作为特征输入;
f. 滑窗下的药品重复率统计
对于欺诈人员来说,他们会频繁开药,但是每次开什么药可能并不固定,他们所希望的就是药品单价贵、数量多、方便转手倒卖。而对于另外一些慢性病的正常病人,可能每一次就诊所开的药就相差无几。基于这个想法,处理了药品重复率这一特征,并在全局重复率的基础上增加了滑窗的重复率统计。
g. 医院、医生重复统计
由于医院是通过 ID 进行描述的,以及没有医生相关的信息,我们通过以下方式进行医院、医生的特征处理:
1) 统计病人一天去不同医院的次数、比例;
2) 统计病人周末、非周末去看病的比例;
医院、医生的重复处理,主要是为了验证医疗保险基金欺诈的时候,是否在特定医院、特定医生那里重复看病、开药,以及违规人员为了效率是否特意避开或者选择周末去进行相关的住院、非住院的开具。
特殊原导致没有进一步选择的特征:
1. 慢性病的选择:
由于慢性病需要一直不断的进行诊断,以及根据诊断结果进行药品开具和复用;所以相对于其他病种,欺诈人员可能更倾向于选择慢性病进行高频次的套现和处理。
由于时间有限,这块特征没有详细训练和分析,最后模型提交的时候没有放上去。
2. 特殊药品的数量、使用监测
对热门药品、贵重药品、携带方便(体积小、重量轻)的药品进行重点数据分布了解,监控这部分药品的使用情况—频次、数量等,为欺诈检测提供一定的先验支持,从而确定是否需要进一步进行模型特征处理。
相对于药品的种类(65930),目前的样本较小,以及没有时间和精力进行药品流向图的绘制和展示,这块特征没有进行进一步处理。
3. 领域知识内容
通过医疗领域只知识,对过度诊疗进行重点监控和识别,从而识别出这部分异常用户或者欺诈用户,从而为进一步判别提供帮助。
当按照前面的思路整理好业务知识点、整理特征量化方式,以及按照该方式进行数据的基础处理和验证之后,就可以进行模型的训练和预测了,通过模型的方式进行数据的训练。
4. 就诊人的信息
由于隐私的保护,我们无法得到就诊人的性别、年龄等基本信息。此外,我们了解到有些套现是因为到异地工作而本地医保无法转移导致,因此就诊人的户籍地、就诊地、手机号码从属地点都是重要的判断信息。
4 算法思路
最终模型训练为二分类识别问题,因此我们初步把模型的重点放在组合模型 GBDT、XGBoost 等组合模型上。初版特征出来之后,我们分别用单模型 Logistic 回归、GBDT、XGBoost 跑了数据(train 数据的 0.7 作为训练集、余下 0.3 作为 validation 集合)得到如下结论:
1) Logistic 回归效果不好,初步分析数据特征是非线性关系,放弃该方法;
2) XGBoost 的 F1 整体结果比较高,预测的正样本也相对多,但是模型不够稳定
3) GBDT 相对比较稳定,当指定数据集时,同一个模型结果一致;
4) 由于 random state 不同,导致不同模型抽样的数据集不一样,并且不同的 random state 结果不同,通过选取几组 random state 来进行不同模型的训练,通过不同数据抽样的方式,来让模型趋向于稳定;
5) 尝试过 GBDT+Logit 回归,stacking 的方式,模型测试指标波动比较大,模型不稳定;
我们通过随机森林的特征重要性进行特征筛选,对某一类型特征进行整体查看和对比,比如通过特征筛选,我们去除掉不好的全局金额比例。
。
最后通过 5 个 XGBoost 模型,对每个的预测概率结果求平均得到测试样本的概率,以此概率判断该样本时候为正样本。我们也是通过这种方法来消除不同的数据集分布带来的预测偏差,提升模型的稳定性。
5 经验总结与感想
5.1 经验总结
通过此次医疗保险基金反欺诈的比赛,详细了解了阿里天池平台的数据处理、机器学习平台的使用,通过机器学习平台的组件对数据进行可视化探索,发现数据中的价值,以及对业务理解的特点进行验证,从而为后续的进一步的特征处理、模型训练提供依据。
对于模型的选择,事先选择一个基准模型,并尝试使用不同的模型和基准模型进行对比,了解特征是否具有线性、非线性关系;以及是否通过重要特征进行联想,进行模型特征的进一步扩散。
5.2 比赛感想
整个比赛过程中,特征的提升比模型的提升更为重要,所以先对业务、数据分析理解是做好特征处理、做好模型的关键。
大胆假设、小心验证,对于业务理解出来的特点,都是按照知识去理解的,并不一定在数据中体现,需要通过数据探索的方式,去验证想法是否正确。
整个比赛过程还是比较刺激的,睡觉在想,走路在想,特征、特征,模型、模型,在实际做的过程中需要发散、扩展,发散是将思考点完全到其他方面,而扩展则是通过已经验证的内容延伸。
查看更多内容,欢迎访问天池技术圈官方地址:人社大赛算法赛场解题思路分享+冠军+破灭刀锋_天池技术圈-阿里云天池
评论