异常检测(iforest)孤立森林 做反欺诈

在风控领域最主要的两个问题就是信用风险和欺诈风险,如果能解决这两个问题,只要能拿到资金方的资金,有流量,就可以躺着挣钱了,可以享受着让别人帮你挣钱的乐趣。

异常检测是反欺诈中的很少一部分,还有其他很多方法来做反欺诈,图谱相关我觉得是最有效果的反欺诈。

我们这边用iforest做异常检测,主要用来做三件事

一:数据过异常检测,检测出来直接用决策引擎卡阈值来拒人

二:检测出异常的用户,给异常数据做标签,把这部分用户导入到人工审核

三:检测出异常数据,给有监督树模型,数据加权

iforest 算法部分(最主要是检测出离群数据)

在数学层面理解,分布稀疏的区域表示数据发生在此区域的概率很低,可以认为落在该区域的数据为异常数据

黑色的点为异常点,白色点为正常的点(在一个簇中)。iForest检测到的异常边界为红色,它可以正确地检测到所有黑点异常点。

重点:

Iforest 有点类似于随机森林,是由多个itree构成,采用随机采样一部分数据去构建每一颗树,构建好树之后,预测的过程是把测试记录在Itree上走一篇,看测试数落在叶子哪个节点上,算一下数据的平均高度,关心小于平均高度的数据,异常点一般都是非常稀有的,在iTree中会很快被划分到叶子节点,因此可以用叶子节点到根节点的路径h(x)长度来判断一条记录x是否是异常点

公式:

E(h(x))表示记录x在每棵树的高度均值,

算法原理 :

假设我们有一个一堆检测的特征D

第一步:

我们从特征集D中随机选取一个特征attr1

第二步:

1.确定特征attr1的最大值和最小值

2.随机从特征attr1里面选择一个值value1,这个value1大于最小值小于最大值

3.循环遍历attr1把大于value1的值放到右节点上,把小于value1的值放到左节点上

第三步:

重复第二步

满足以下条件停止:

传入的数据集只有一条记录或者多条一样的记录;

树的高度达到了限定高度

4个测试样本遍历一棵iTree的例子如下:

b和c的高度为3,a的高度是2,d的高度是1。

上代码部分

感慨一下:

最近因为自己的时间比较忙,一直在弄自己的东西,异常检测我就交给我们组里面其他的两个小伙伴做,遇到了很多问题,最主要的问题出现在特征选择上,特别是在做坏人的召回,准确率的时候特别低,不能直视,最开始召回在10%左右,是

特征一定要选择连续性变量

你可能感兴趣的:(异常检测(iforest)孤立森林 做反欺诈)