Giter VIP home page Giter VIP logo

2018-tiancheng's Introduction

甜橙金融初赛Rank5,复赛Rank14,复赛数据真的有毒......

比赛链接:http://www.dcjingsai.com/common/cmpt/2018年甜橙金融杯大数据建模大赛_竞赛信息.html

队名:摸金校尉

题目背景

随着互联网+这一概念的不断发展,电商、出行、外卖等行业近些年也持续发展壮大,越来越多的商家进入这一市场。为了在激烈的竞争中拉取新用户,培养用户的消费习惯,各种类型的营销活动和补贴活动也是层出不穷。在为正常用户带来福利的同时,也催生了一批专注于营销活动的“羊毛党”。目前,羊毛党的行为越发专业化,团伙化和地域化,同套利黑产团伙的斗争,是一场永无止境的攻防战。机器学习模型是风控系统中实时识别和对抗黑产攻击的有效手段。面对黑产攻击手段快速多变,黑样本数据标签缺失等问题,目前除了LR,RF等耳熟能详的机器学习模型,基于RNN的深度学习模型,无监督学习模型等技术也被应用到同黑产的对抗中。

设计目标

通过训练学习用户在消费过程中的关联操作、交易详单信息,来识别交易风险。

解决方案:

我们队初赛复赛用的方案一样,名次上的变化嘛,,,一方面因为数据变化太大,另一方面我们自己对数据变化不敏感,所以这个排名真的是 皮。简单介绍一下我们的方案,如果非要给方案取个名字,我觉得基于信息融合和图谱规则学习的交易风险识别模型这个名称可以恰当的表达我们所做的工作。

先给大家看个总体的思路:

基于信息融合和图谱规则学习的交易风险识别模型示意图:

基于信息融合和图谱规则学习的交易风险识别模型
由上图,本算法主要分为两部分,第一部分是构建信息融合模型,第二部分采用图谱规则学习辅助做出决策。
信息融合模型包括数据预处理,特征工程,模型构建与评估和融合。其中,我们从不同角度挖掘原始数据的统计量,共得到四组统计特征,每组特征包含原始数据的一部分信息,在每组特征上分别建模,将得到的四组结果采用一定的结合策略进行融合,融合结果作为该模型的最终输出。
规则学习辅助决策是指通过对数据分析,商户的黑产率(即黑产用户在点击用户的占比)存在两极分化的规律,同时也存在交叉,则可知黑产用户和消费商户存在极大的相关性,该相关性构成图谱:黑产用户->黑产商户->黑产用户->黑产商户…当然,在训练集和初赛有十分好效果。但是因为复赛数据与训练数据集的时差,使得交叉商户较少,且一刀切方法不再完全适用,需要引入其他模型辅助规则。其他辅助规则稍好详细介绍。
总的来说,我们队在本次比赛中,通过机器学习和数据挖掘技术定量分析交易风险,给出每个样本的预测结果。首先,研究了黑用户和白用户这两批客户的特征,其次,将机器学习领域比较流行的信息融合技术和图谱规则学习应用于交易风险评估领域,并利用主流的模型性能评价指标评价模型。在比赛中,挖掘出四组包含不同信息的特征,基于上述特征构建模型,选取基于加权平均法的模型融合方式融合上述特征,通过两种参数调节方法优化模型,最后使用图谱规则学习对融合结果进行修正。在测试数据集上应用,竞赛结果验证了我们所构建的集成系统泛化能力较强,模型复杂度适中。

接下来详细介绍上述两个部分:

第一部分:信息融合模型的构建

该模型采用不同方式来提取原始数据中的信息,下图给出了模型示意图,首先对数据进行预处理,包括缺失值填充,数据去重和连续值归一化等;然后对处理后的数据提取信息,包含四种提取方式,得到四组包含不同信息的特征,然后对四组特征建模,对得到的结果进行融合。
信息融合模型

模型优点:

(1)采用决策端融合,可以有效避免特征融合时特征选取与评价的问题。
(2)统计原始信息较为灵活,可以对每组特征进行精细化筛选,建模过程相对简单,每组特征数据量小,模型时间复杂度小。
(3)通过赋予每组特征权重,使重要的特征在融合模型中发挥更大的作用。

模型缺点:

(1)分开统计信息,可能会破坏原有信息的完整性。
(2)每组特征的权重需要进行多次尝试,权重的改变对预测结果影响显著。

第二部分:图谱规则学习模型

该模型通过对数据分析,得出商户的黑产率(即黑产用户在点击用户的占比)存在两极分化的规律,同时也存在交叉,则可知黑产用户和消费商户存在极大的相关性,该相关性构成图谱:黑产用户->黑产商户->黑产用户->黑产商户…当然,在训练集和初赛有十分好效果。但是在复赛与训练集的时差,使得交叉商户较少,且一刀切方法不再完全适用,需要引入其他模型辅助规则。通过k-means聚类可知,黑产商户也存在很大的相似性,如:很多黑产商户点击人数多,且某一天用户点击数在总的占比数中有较大比例等等。还有在黑产商户下的黑产用户也应属于团伙作案,行为特征具有相似性,为了更好的判别黑产商户下的黑白用户,重新对黑产商户下的用户构建特征,建立机器学习模型,让模型更好挖掘黑产商户下的黑白用户区别。图谱规则学习模型示意如下图所示。
图谱规则学习模型

模型优点:

通过规则和图谱,以及聚类的辅助,可以较为准确的找到黑产商户,针对性模型训练,可以降低噪音干扰,减少误判和漏判。

模型缺点:

k-means聚类效果有限,还需要人为数据分析,后续可通过word2vec模型构建词向量去聚合商户。训练集和测试集数据分布变化,使得高危用户(黑产商户下用户)量较少,训练模型不够足够稳定。

总结一哈

本次竞赛针对金融领域客户交易风险预测问题,我们队伍探讨了机器学习技术在这个领域中的实际应用情况,研究了黑用户和白用户这两批用户的各方面特征,介绍了特征融合技术和规则学习在交易风险预测领域的应用,以及主流的模型性能评价指标。在具体的实践中,我们使用机器学习技术对客户交易风险数据进行建模分析,有针对的构建了基于特征融合和规则学习的交易风险识别模型,我们模型的优势主要体现在:
(1)模型复杂度适中,没有出现过拟合现象;
(2)充分利用所有数据,综合特征融合技术和规则学习建模;
(3)模型参数选取合适,充分发挥每个分类器的最大性能;
(4)通过尝试大量的单模型,选取出可以提升特征融合模型性能的单模型作为的最终分类器;
在竞赛提供的验证数据集上进行验证,结果表明,基于特征融合和规则学习的交易风险识别模型在初赛取得0.77的成绩(排名第五),在复赛AB榜上的表现亦很出色,其中,A榜排名26,B榜排名14。接下来可以尝试提取更多不同的特征进行融合,另外,可以尝试在对数据进行平衡化之后进行预测;除此之外,对每组特征可以使用集成学习进行预测,也可以调整通过调整每组特征所占的权重进一步提升预测性能。

代码说明:

代码都放在code文件夹中,没有*操作,更没有牛啤的套路,至于对部分代码的致敬,一会儿集中在致谢中表达。代码的运行流程如下:

  • 首先,运行model_1,model_2,model_3,model_4,得到四组基模型预测结果。
  • 其次,运行ensemble,将四组基预测结果进行融合。
  • 再次,运行create_rule_feature,构建图谱规则学习的特征。
  • 最后,运行Rule_and_Learn,得到模型的最终预测结果。
最终的预测结果在A榜大概0.5左右,B榜0.54左右,如果在运行中存在微弱的差别应该属于正常现象,通过微调模型参数或者更换PC就可以得到和我们一致的运行结果。

感想与致谢

感想

这次比赛打的真的贼鸡儿累,也暴露了自己菜鸡属性,这个比赛么,就自己的表现总结两个点,剩下的不足留给明年的几大赛事总结。
第一个点,我一直觉的自己在模型算法方面还算有点小优势,但是这个比赛让我对模型算法表现出了极大的失望,机器学习的上限取决于特征工程真不是瞎说的,没有好的特征,再厉害的算法也没有用武之地,就好像巧妇难为无米之炊,没有上好的材料(特征),再精湛的厨艺(算法)也只能做出平平庸庸的食物,当然了,但凡做出大餐的,材料都是绝佳的,有时候这个材料是白萝卜,有时候这个材料是鸡鸭鱼肉,对于上好材料的评价要分开来看。而我对于特征工程的理解真的很欠缺,想来是因为在学习的过程中总是强调基础知识,算法模型的重要性,而忽略了更为重要的特征处理方面的学习。
第二个点,人工智能么,有多少人工就有多少智能,这是我学习相关知识以来最直观的理解。每次做数据分析,做特征工程,都感觉注入了大量的人为因素。一般情况下,我都是这么做的,如果对于一个点,我觉的可能有效,然后试一下,发现确实有效,就保留这个操作,没用,再试下一个,这个似乎和经验有很大的联系,如果对于数据比较熟悉,那我打眼一看这个数据,就知道怎么处理比较好了。所以,有时候我会想,深度学习真的是个好东西,即使现在有很多人在批评它,质疑它,但是深度学习所表达的**真的很不错,它自己根据数据的分布来提取特征,省去的不光是我们费力八气的做特征的过程,更重要的是它可以更客观的从数据出发,寻找合适的规律。所以那个word2vec我真的要好好学一下。

致谢

这个比赛成绩么,我应该能说还行吧,毕竟1800多支队伍嘛(虽然方案确实一般),,,
这要多亏我的队友武汉大学鲁同学的图谱规则,真的很厉害,规则吊打模型,也算是让我开了眼,初赛我们基础模型0.71分,那时候排名徘徊在30左右,队友的图谱规则一上,肝到0.77,直接进入前十,最后排名第五。所以,首先要感谢的就是我的队友,不离不弃,在我快要绝望放弃的时候给了我坚持下去的信心与勇气。
复赛嘛,一上来就炸了,那个时候我还是比较坦然的(内心早就崩了),然后从0.19分排名88开始做起,复赛4天,我们最好到过第10名,一路升级打怪,全靠开源撑到结束(哈哈哈哈哈),所以感谢大佬ration和大佬Thanatos的开源。

就写做么多了,我们下一个比赛见~

2018-tiancheng's People

Contributors

cuining6 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.