阅读笔记:Solving the “false positives” problem in fraud prediction
刚读完一篇paper《Solving the “false positives” problem in fraud prediction》,趁热打铁,做个笔记。
文章下载链接:https://arxiv.org/pdf/1710.07709.pdf
概述
这篇文章是对 bank transaction fraud prediction 场景下的机器学习算法做了优化,优化方法是,使用 Deep Feature Synthesis 自动生成大量的特征,优化后 False Positive Rate可以大大降低。
文章的核心在 Deep Feature Systhesis (DFS) 这种特征生成方法。
笔记
1、在欺诈检测这个场景中,TPR和FPR都很关键,TPR是坏人的查全率,即抓到了多少坏人,FPR可以理解为好人的查全率,即抓到了多少好人。TPR越高越好,可是TPR越高,FPR也会越高,这里存在一个经济成本的tradeoff,多抓一个坏人,银行会节省一笔money,多抓一个好人,银行会损失一笔money,也就是说,抓坏人的代价是牵连了一部分好人。而且在实际应用场景中,customer retention(客户维系)十分关键,银行宁愿忍受欺诈带来的损失,也不愿意流失一个优质客户。这是做 fraud prediction的一大挑战。
2、DFS是一种特征生成方法,可以针对多个关系型数据表自动生成统计特征。
简述一下DFS。它是一种特征生成方法,可以结构化的生成特征,但是目前只能针对多个关系型数据表生成统计特征,其他高级特征,比如 频域变换、小波变换或者图特征、时序特征还有待补充和加强。
DFS有几个关键概念:
一是relationship,表示数据表之间的关系,目前只支持一种关系——parent and child,翻译过来就是“一对多”,比如 user表和transaction表,一个user有多个transaction,所以user和transaction就是parent-child关系;
二是primitives,表示特征算子,具体分为两类,一类叫 Transform Primitives,另一类叫 Aggregation Primitives,Transform是对数据表的单个列做变换运算,比如把timestamp列的year,month,day,hour单独提取出来,Aggregation是对一列中的多行数据做聚合运算,比如 sum, std, mean, max, min, skew,DFS就是结合多张表的relation,反复运用Trans和Aggre两类运算,计算出许多组合特征,比如 SUM(sessions.STD(transactions.amount)), MEAN(sessions.COUNT(transactions))。
DFS对应的github项目:github-featureTools
DFS论文:http://www.jmaxkanter.com/static/papers/DSAA_DSM_2015.pdf
3、transaction相关的数据有两类,一类是transaction发生时伴随的属性,比如 timestamp, userid, cash, 另一类是与transaction相关的历史数据,比如 user过去的交易行为,只用第一类数据,能得到93个feature,两类数据放在一起,使用DFS,能得到267个feature,在模型不变的情况下,后者的TPR和FPR比前者也高了不少,说明多出来的feature是十分有效的。
4、文中提到了一种寻找最优门限的方法。RandomForest用于分类问题时,最终输出的是每个测试样本的得分(score),可以理解为样本是坏人的概率,我们需要确定一个threshold,把高于threshold的人视为模型抓到的坏人。
文中给出了训练和测试流程,其中包括确定threshold的方法。首先把数据集划分为三组,比例大约是55%、7%和38%,第一部分是训练数据,用于训练模型,第二部分做验证,用来确定门限threshold,确定的方法是最大化 Precision*u(TPR-0.89),0.89是人为指定的TPR参考值,也就是说,TPR=0.89就足够高,在TPR>=0.89时,需要提高Precision,第三部分数据用于测试模型效果。
[注:u(x)是一个unit step函数,当x>=0时,u(x)=1,otherwise, u(x)=0]
p.s. featureTools这个项目值得继续研究,对特征生成还是很有借鉴意义的。
阅读笔记:Solving the “false positives” problem in fraud prediction的更多相关文章
- [阅读笔记]Software optimization resources
http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++ 7. The efficiency of differe ...
- CI框架源码阅读笔记4 引导文件CodeIgniter.php
到了这里,终于进入CI框架的核心了.既然是“引导”文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.c ...
- CI框架源码阅读笔记3 全局函数Common.php
从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap ...
- CI框架源码阅读笔记2 一切的入口 index.php
上一节(CI框架源码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程,这里再次贴出流程图,以备参考: 作为CI框架的入口文件,源码阅读,自然由此开始.在源码阅读的过程中, ...
- Mongodb Manual阅读笔记:CH9 Sharding
9.分片(Sharding) Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb ...
- Mongodb Manual阅读笔记:CH8 复制集
8 复制 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔 ...
- Mongodb Manual阅读笔记:CH7 索引
7索引 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔记 ...
- Mongodb源代码阅读笔记:Journal机制
Mongodb源代码阅读笔记:Journal机制 Mongodb源代码阅读笔记:Journal机制 涉及的文件 一些说明 PREPLOGBUFFER WRITETOJOURNAL WRITETODAT ...
- Mongodb Manual阅读笔记:CH4 管理
4 管理 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔 ...
随机推荐
- c# winform 自动关闭messagebox 模拟回车
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- php -- 静态变量
一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会.下次再调用这个函数的时候,该变量的值会保留下来. 静态的变量的基本用法 1. 在类中定义静态变量 [访问修饰符] static $ ...
- windowmasker 标记基因组中的重复序列和低复杂度序列
下载地址:ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/windowmasker/ 在这个目录下 其中windowmasker 为linux 平台的可执行文件 win ...
- c++ 静态成员变量
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节 ...
- Servlet+Ajax实现搜索智能提示
一般在百度搜索框输入关键词时,会弹出一些相关信息提示,方便点选: 页面(search.jsp): <input type="text" name="keyWords ...
- logging.xml file setfile(null,true) call failed
定义目录三个方法:一:${catalina.base}或${catalina.home}相对路径配置方法.catalina.home是你配置服务器时自动在环境变量中加的路径,默认是指向tomcat服务 ...
- window用Xmanager4.0的Xstart连接linux远程桌面
安装包: xorg-x11-xauth xterm.x86_64 0:253-1.el6 Execute command path:/usr/bin/xterm Xstart连接Linux远程桌面有一 ...
- 【R】array 2 string
paste(1:10, collapse = '') http://stackoverflow.com/questions/2098368/how-do-i-concatenate-a-vector- ...
- android大扫盲之SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
最近接触到了SurfaceView,SurfaceHolder,SurfaceHolder.CallBack,一直不求其解,现在来粗浅认识一下它们. 先看一下官方的定义: 1.SurfaceView ...
- 左侧固定宽度,右侧自适应宽度的CSS布局
BI上有高手专门讨论了这种布局方法,但他用了较多的hack,还回避了IE6的dtd.我在实际使用中,发现回避掉IE6的dtd定义后,会导致ajax模态框无法居中(VS的一个控件,自动生成的代码,很难修 ...