首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

任昱衡:(二)AdaBoost元算法帮助你如何有效识别欺诈交易

元算法是一个庞大的家族,可以选择不同的聚合方法来聚合一系列弱分类器,比如使用boosting算法或bagging算法;弱分类器的具体算法也有许多选择,K均值聚类、决策树、朴素贝叶斯等都可以作为弱分类器算法,毕竟弱分类器只对分类效果做出了要求,而对具体的算法没有限制。聚合方法的多重选择以及分类器算法的多重选择使元算法十分丰富多变。

弱分类器算法示意图

以决策树算法为例,一个弱分类器可能就是如图所示的这样一个算法示意图。图给出了一个决策条件:用户年收入是否超过十万元?如果答案为是,就认为这是一个正常交易;如果答案为否,就认为这是一个欺诈交易。用这个简单的决策树去判断样本数据究竟是不是欺诈交易时,它显然会犯很多错,判断结果的准确性可能只比随意猜测高一点点,因此这是一个典型的弱分类器。

只单独依靠一个如图所示的弱分类器显然是不行的,我们还需要构建更多的弱分类器。当第一个弱分类器构建完毕后,我们要找出已有的弱分类器所不能成功分类的样本,并在下一轮的分类器训练中着重关注这些在上一次分类中没能正确分类的样本。

也就是说,元算法中的第一个分类器一定会犯错误,将一些样本分错类,因此每二个分类器就要努力补救第一个分类器的错误,通过更多的关注第一个分类器分错类的那些样本以达到补救的效果。但是补救不可能一步到位,因此还需要第三个分类器来补救第二个分类器的错误,如此循环,直到错误率低于某个标准,或分类器的数目达到某个阈值为止。

当所有的弱分类器都训练完毕后,每一个弱分类器都会给出一个分类结果,综合考虑所有的分类结果,便得到了最终的分类结果。AdaBoost元算法使用加权求和的方法来找出最终分类结果,每一个弱分类器的分类结果所得到的权重与弱分类器的错误率有关。

AdaBoost元算法训练过程示意图

图是对AdaBoost元算法训练过程的示意图。我们首先训练的是分类器A,给定分类条件后,分类器的错误率为,其中是分类错误的样本数,是总的样本数。有了分类器的错误率,即可计算每个分类器的权重。权重A的计算公式为。

有了分类器的权重,即可根据分类结果对每一个样本的权重进行更新,在分类器A中分类正确的样本的权重被更新为,在分类器A中分类错误的样本的权重被更新为。此时分类器A分错类的样本得到了更大的权重,分类器B会侧重于对它们正确分类。而根据分类器B的分类结果又可以计算出权重B,并同时更新出分类器C中每个样本的新权重。特别的,由于分类器A是所有分类器中的第一个分类器,因此它训练样本时每一个样本的权重都是一样的。

有了所有分类器的分类结果和分类权重后,我们使用1表示样本被分入欺诈交易类别,使用0表示样本被分入正常交易类别,将所有的结果加权求和后,即可得到最终的分类结果。

AdaBoost元算法分类结果示意图

通过汇聚一系列的弱分类器,AdaBoost最终可以达到强大的分类效果,图是一个AdaBoost元算法的分类结果示意图,可以看出,它能够构建出非常复杂的分类曲面,将任意混杂在一起的样本分开来,这种效果和支持向量机是十分相似的,这是因为这两种算法的本质思想颇有共通之处(你可以将分类器想象成支持向量机的核函数)。

AdaBoost元算法和支持向量机同样强大,它们都能妥善的解决复杂的非线性分类问题。与支持向量机相同,AdaBoost元算法只能处理二分类问题,如果想要应用它来解决多分类问题,就需要构建多个元算法。元算法与支持向量机的计算方式并不同,因此分类结果也不会完全相似,随着样本空间维数的增加,这种差异也会明显起来。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200905A0LB9A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券