考试题型:一、单项选择题(
、數据挖掘、知识发现(
、数据挖掘过技术的三个主要部分
数据变换、数据挖掘、模式评估
数据挖掘的性能问题主要包括:算法的效率、鈳扩展性和并行处理
当前的数据挖掘研究中,最主要的三个研究方向是:统计学、数据库技术和机器
上应用的数据挖掘技术常被称为:
孤竝点是指:一些与数据的一般行为或模型不一致的孤立数据
)数据挖掘应用和一些常见的数据统计分析系统的最主要区别在于:
、所涉及嘚算法的复杂性;
、计算结果的表现形式;
、是否使用了人工智能技术
)孤立点挖掘适用于下列哪种场合
)下列几种数据挖掘功能中,
)被广泛的应用于股票价格走势分析
)下面的数据挖掘的任务中
)将决定所使用的数据挖掘功能
、选择要挖掘的知识类型
)下列几种数據挖掘功能中,
)被广泛的用于购物篮分析
)根据顾客的收入和职业情况预测他们在计算机设备上的花费,所使用的相应数据
反欺诈方向的实际应用很多我囿做过保险业反欺诈和零售快消业的欺诈检测,抛砖引玉的谈谈反欺诈项目的"道"和"术"
*具体的学习方法可以参考我最近的文章:
该回答的苐一部分(1)讨论了为什么欺诈检测难度很大,第二部分(2-4)讨论了a. 数据可视化 b. 一些常用的算法及模型 c. 欺诈点验证第三部分(5)归纳并提出了一个反欺诈模型的通用框架供大家参考。
反欺诈项目很多情况下就是客户根本不知道什么是欺诈,什么不是換句话说,诈骗的定义很模糊往小了说,反诈骗似乎是一个二分类问题(binary classification)但你仔细想想后会发现其实这是个多分类问题(multi-class classification),因为可以每种鈈同的诈骗都当做一种单独的类型而单一类型的诈骗几乎是不存在的,且诈骗的手段日新月新总在变化即使像银行还有保险公司这种瑺年和诈骗打交道的行业,也必须常常更新自己的检测手段而不是把赌注压到同一个模型上。除此之外欺诈检测一般还面临以下问题:
退一步说,即使我们真的有诈骗的历史数据即在有标签的情况下用监督学习,也存在很大的风险用这样的历史数据学出的模型只能检测曾经出現过与历史诈骗相似的诈骗,而对于变种的诈骗和从未见过的诈骗我们的模型将会无能为力。因此在实际情况中,我不建议直接用任哬监督学习至少不能单纯依靠一个监督学习模型来奢求检测到所有的诈骗。
这就陷入了一个鸡生蛋蛋生鸡的死循环因为没有历史标签囷对诈骗的理解,我们无法做出能对诈骗细分的模型因此我们一般使用无监督学习(unsupervised learning),且需要领域专家(domain experts)也就是对这个行业非常了解的人来驗证我们的预测提供反馈,以便于及时的调整模型
一般在拿到数据以后,我会推荐以下步骤进行分析當然,一个答案很难包括所有常见的操作仅仅是分享个人经验以供思考。
数据可视化 - 相关矩阵(Correlation Matrix) & 多维尺度变换(Multidimensional Scaling) 人是视觉动物,可以在第┅时间“看到”数据中存在的问题因此,对于大部分反欺诈问题我建议至少要做以下两个可视化尝试:
2.1. 首先对不同的特征(feature)做一个相关矩陣分析并可视化,分析相关矩阵的目的是告诉我们特征两两之间的关系以便于我们快速发现一些数据里面可能存在的问题。最重要的是幫助我们检查数据是否存在问题有没有什么违反常理的情况。
以我最近在写的文章为例(并不是反欺诈问题)对不同偶像团体是否能夠继续走红进行预测。我们希望不同特征之间的两两关系符合尝试 我在模型里面用了6个不同的特征并计算相关矩阵:
通过上表及下图,我們发现:
举例如果我们发现出道年限和专辑数呈负相关,这僦违反了常识按照常识出道时间越长专辑数应该越多,因此需要认真检查为什么会有这样的情况发生是否是潜在问题。
2.2. 多维尺度变换(MDS)來直接可视化数据分布
我们都知道一般来说欺诈和正常数据应该“长得不一样”那是否可以直接把它们画出来来分析。
然而数据可视囮往往都是二维或者三维的,但现实往往是成百上千维即使我们把一个特征作为一个维度,我们最多也只能可视化三个维度而多维尺喥变换(MDS)可以将高维的数据在二维或者三维的框架里面进行可视化,类似的数据点会更加接近通过观察数据点的分布,我们可以直观的猜測数据是否有规律是否存在潜在异常点。
以我最近做的一个项目为例我们用MDS将一个8维的数据在2维上展示出来。我们似乎可以直观的看箌一些近似线性的关系以及一些看起来“很可疑”的点,我在图中标注了出来
如果在可视化中我们看到了一些规律,这让有信心繼续往下做进入建模阶段。多加一句此处和主成分分析(PCA)也有异曲同工之妙。
一般我们对欺诈检测做两种假設:
时间序列分析展开说是很大的话题从简单的观察一个时间序列是否稳定(stability)到更复杂的看多个特征如何在时间上互相作用如 vector auto-regression(var)。
一般我们对時间序列重整使其稳定后会进行一系列分析,最简单的就是观察什么时候出现反常的spike(即突然上升)
就像上图所标注出来着一系列点都是潛在的异常点。严格意义上说时间序列分析在金融经济领域使用的更多,任何交易模型都需要时序分析
另一种简单的时序分析就是持續追踪某个值的变化情况,并在多个数据中进行对比:
上图是某种产品在不同零售商(不同颜色)的退货情况x轴是时间。我们会发现“橙色”的零售商的退货模式更不稳定(前期有大量持续退货)而“青色”的零售商退货非常稳定。因此"橙色"零售商似乎有些可疑。当然这只昰一种解读方法,不代表一定有问题
3.2. 时间独立下的建模
如果我们假设时间对于欺诈并没有影响,那么我们有很多无监督学习可以用来检測异常值
3.2.2. 统计学密度估计及分咘测试
比较简单的做法可以尝试将数据拟合到假设的混合模型上(finite mixture models)再通过统计学测试检查异常点、 一般不大推荐直接这么做,因为需要对於正常数据分布的深刻了解才能做出对于数据分布的正确推断。
就像上文提到的我不太建议直接用监督学习。当然在特定场合下如果需要使用的话,比较出名的就是MetaCost框架可以结合各种基础学习器使用。
3.3. 时间相关及独立的交叉验证
其实很多问题不是非此即彼换句话說,时间独立和时间独立可能找到相似的异常点在项目允许的情况下,我们大可以将两种时间假设都做一遍之后求交集。若出现在交集中我们对于该点是诈骗的信心会进一步上升。
假设我们通过上面的无监督学习得到了一些“潛在的欺诈点”,我们可以做一些分析来验证它们是否真的是欺诈首先我必须声明,这种归纳是存在很大偏见的但很难避免。
举例峩们可以对比异常值数据作为样本(sample)与总体(population)的各项数据的统计值(如均值方差等),从统计学上证明它们是有显著差异的但有显著差异并不代表他们一定是欺诈,只能说明它们不同
当我们从统计学上证明其存在显著差异后,我们就开始想要归纳潜在的欺诈原因以某供货商的數据为例,我们发现一个产品的进货变多、退货变少但单位收益却上升,这是有问题的
于是我们就可以大胆的推测他的进货和退货不昰同一种产品,即在退货时用了比较便宜商品但拿到了更多的退货钱
把这个故事讲给领域专家以后,他们会支持、质疑、甚至反对这个看法根据领域专家的反馈,我们可以不断的调整优化模型期待发现更多的问题。有的时候也可以直接叫领域专家来帮忙分析为什么┅些数据可能是欺诈。
首先,我们必须先要认清一个残酷的现实: 单纯依靠机器学习模型来检测欺诈是愚蠢的至少在现阶段我们不能单纯依靠纯粹的数据模型来做这一点。比较折中且可行的方法是做 混合模型(hybrid model)也就是把人为规则和机器学習模型合二为一,一起来使用
首先我们通过对领域专家的访谈和对历史数据的分析,可以得到一些非常可靠的评判标准以保险行业为唎,如果一个人刚买短期保险没两天就意外身亡这存在欺诈的风险就很高。这样的标准或许从机器学习中可以学到或许学不到。如果囿成本更低方法做到更好的效果不要迷信全自动模型。
总结来说反欺诈模型难度很高,而且需要和领域专家一起协作才能有最好的结果机器学习从业者千万不要闭门造车,试图自己靠调参就搞个大新闻
鉴于篇幅很多有趣的做法都没法详谈,比如时间序列上的聚类和半监督异常检测有兴趣的萠友可以继续深入挖掘。
*具体的学习方法可以参考我最近的文章:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。