投资有风险,商业银行投资风险指标

  

  

1 前言

  

  

   NEO4J图数据库防骗系列文章将在此识别危险用户。本期将讲解如何对每个客户的风险进行评分,并对危险用户进行标记。如果需要回顾之前的文章,可以直接跳转到链接:   

  

  了解初始地图数据库、二级地图数据库、反诈骗分析(1)-搭建分析环境、二级地图数据库、反诈骗分析(2)-准备数据、二级地图数据库、反诈骗分析(3)-识别犯罪团伙(

2 寻找相似节点

  

  

  )。上一次,数据被弱连接分量(Weakly Connected Components)[1]算法聚类。接下来,您可以在每个集群中寻找彼此相似的客户。   

  

  Neo4J图数据库反欺诈分析实战(四) - 风险评分WCC聚类结果   

11">该步骤使用节点相似度(Jaccard值[2])进行判断,节点相似度算法需要图结构中有两种节点,因此创建Similarity图,里面包含客户和实体信息两种节点,以及对应的关系。

CALL gds.graph.project.cypher('Similarity','MATCH(c:Client)    WHERE exists(c.firstPartyFraudGroup)    RETURN id(c) AS id,labels(c) AS labelsUNIONMATCH(n)    WHERE n:Email OR n:Phone OR n:SSN    RETURN id(n) AS id,labels(n) AS labels','MATCH(c:Client)-[:HAS_EMAIL|:HAS_PHONE|:HAS_SSN]->(ids)WHERE exists(c.firstPartyFraudGroup)RETURN id(c) AS source,id(ids) AS target')YIELD graphName,nodeCount,relationshipCount;

创建图之后就可以运行节点相似度算法(注意:该算法支持加权,详见文档):

CALL gds.nodeSimilarity.stream('Similarity',{topK:15})YIELD node1,node2,similarityRETURN gds.util.asNode(node1).id AS client1,    gds.util.asNode(node2).id AS client2,similarityORDER BY similarity;

使用Mutate模式将结果写入内存中的图中,创建了一个新的关系SIMILAR_TO。至此,相似的节点对之间将可以用jaccardScore衡量相似性:

CALL gds.nodeSimilarity.mutate('Similarity',{topK:15,  mutateProperty:'jaccardScore', mutateRelationshipType:'SIMILAR_TO'});-- 将结果从内存中的图写入数据库CALL gds.graph.writeRelationship('Similarity','SIMILAR_TO','jaccardScore');

3 创建风险评分

接下来使用节点中心度算法[3]结合上述生成的相似度指标生成一个firstPartyFraudScorefirstPartyFraudScore分越高,代表其在一个簇里和越多的客户有更多相似的实体信息,即越危险。

CALL gds.degree.write('Similarity',{nodeLabels:['Client'],    relationshipTypes:['SIMILAR_TO'],    relationshipWeightProperty:'jaccardScore',    writeProperty:'firstPartyFraudScore'});
Neo4J图数据库反欺诈分析实战(四) - 风险评分

风险评分

最后选用80分位数为阈值标记危险的客户,在实际应用中,也可以直接使用firstPartyFraudScore作为一个单独的特征融合进反欺诈策略或者模型。

MATCH(c:Client)WHERE exists(c.firstPartyFraudScore)WITH percentileCont(c.firstPartyFraudScore, 0.8)    AS firstPartyFraudThresholdMATCH(c:Client)WHERE c.firstPartyFraudScore>firstPartyFraudThresholdSET c:FirstPartyFraudster;

4 总结

至此,识别关系网络中的欺诈罪犯实战系列就告一段落了,通过这一系列的文章,认识和巩固了如下知识点:

  • 图的基本结构
  • Neo4J图数据库查询语句Cypher常用命令
  • 反欺诈应用中常见的算法

希望这次实战系列的分享对你有帮助,欢迎在评论区留言讨论!

参考资料

[1] Weakly Connected Components: https://neo4j.com/docs/graph-data-science/current/algorithms/wcc/

[2] 节点相似度: https://neo4j.com/docs/graph-data-science/current/algorithms/node-similarity/#algorithms-node-similarity

[3] Degree Centrality: https://neo4j.com/docs/graph-data-science/current/algorithms/degree-centrality/

相关文章