一个
前言
这个分享主要讲两个方面。一个方面是通过分析人与行为的关系来预测行为,比如诈骗、羊毛党。第二个方面是借助图来分析人与物的关系,从而做出推荐。
2
使用图表预测行为
2.1.行业中使用图表的反欺诈场景
主要有以下几种情况:
根据一级关系和二级关系是否触动了欺诈用户;经济行为是否与异常业务有关;一台机器上有很多人;长期贷款;Pagerank算法用于对与借阅用户相关的用户进行排名;识别集团欺诈。寻找流失用户的社交网络;
2.2.neo4j二次行为预测的使用
经过调查发现,Secondary的cypher语言简洁有力,比spark的graphx更容易建模。Cypher语言支持在图形中创建多个实体(graphx中的顶点)和多个关系(graphx中的边)。有丰富的语法,功能,支持存储过程和UDF。它支持索引和ACID,是一个OLTP数据库。
二级社区提供了可以Neo4j用于图形算法的存储过程。寻呼机、LPA、互联组件等等。还有一个开源项目Mazerunner,用于Secondary和spark的集成。
2.2.1.利用二次开发实现羊毛产量预测
我写了一个Demo来实现羊毛党的预测:
1建模和计数
下面的代码实现了实体和关系的创建。
创建(p01:人{姓名:“张三”,性别:“男”,年龄:23,经济人:“真”})
创建(p02:人物{姓名:“lisi”,性别:“男性”,年龄:23,经济人:“false”})
创建(p03:人物{姓名:“吴王”,性别:“男性”,年龄:23,经济人:“假”})
创建(p04:人物{姓名:“刘流”,性别:“男性”,年龄:23,经济人:“假”})
创建(p05:人物{姓名:“张艺”,性别:“男性”,年龄:31,经济人:“假”})
创建(p06:人物{姓名:“张耳”,性别:“男性”,年龄:23,经济人:“真”})
创建(p07:人物{姓名:“张思”,性别:“男性”,年龄:23,经济人:“假”})
创建(p08:人物{姓名:“张武”,性别:“男”,年龄:23,Econnoisseur:“假”})
……
create(P20:person { Name:" Zhang 17 ",性别:" male ",年龄:23,econoiseur:" false " }),(P01)-[:call { call start:" 1453187371 ",callnum:20}]->(p02),(p02)-[:call { call start:" 1453187371 ",callnum:30}]->(p01),(p01)-[:调用{callstart:"1453187371 ",callnum:1}]->(p03),(P01)-[:call { call start:" 1453187371 ",callnum:1}]->(p04),(P01)-[:call { call start:" 1453187371 ",callnum:30}]->(p05),(P05)-[:call { call start:" 1453187371 ",callnum:30}]->(p01),(p06)-[:call { call start:" 1453187371 ",callnum:20}]->(p07),(p06)-[:call { call start:" 1453187371 ",callnum:30}]->(p08),(p06)-[:call { call start:" 1453187371 ",callnum:1}]->(p09),(p06)-[:call { call start:" 1453187371 ",callnum:1}]->(p10),(p06)-[:call { call start:" 1453187371 ",callnum:30}]->(p11),(p06)-[:call { call start:" 1453187371 ",callnum:30}]->(p12),(p09)-[:call { call start:" 1453187371 ",callnum:20}]->(p10),(p10)-[:call { call start:" 1453187371 ",callnum:20}]->(p09),(p06)-[:call { call start:" 1453187371 ",callnum:20}]->(p07),(p06)-[:call { call start:" 1453187371 ",callnum:30}]->(p08),(p06)-[:call { call start:" 1453187371 ",callnum:1}]->(p09),(p06)-[:call { call start:" 1453187371 ",callnum:1}]->(p10),(p06)-[:call { call start:" 1453187371 ",callnum:30}]->(p11),(p06)-[:call { call start:" 1453187371 ",callnum:30}]->(p12),(p09)-[:call { call start:" 1453187371 ",callnum:20}]->(p10),(p10)-[:call { call start:" 1453187371 ",callnum:20}]->(p09),(p13)-[:call { call start:" 1453187371 ",callnum:1}]->(p14)
,
……
返回*
匹配(p08:人{姓名:张武})
创建(p08) - [r:transferMoney] ->(m01:商家{姓名:“companyA”,欺诈状态:true})
返回p08,r,m01
下图显示了所有实体和关系:
2) Code在bookcross.scala中,代码从数据库中提取数据,进行简单的特征工程,调用spark算法,向某人推荐书籍。
用法:
把被预测人做的分数放到一个文件里,上传到hdfs目录。
然后打电话
spark-submit-class bookcrossing-jars/home/Hadoop/jars/MySQL-connector-Java-5 . 1 . 36 . jar-driver-class-path/home/Hadoop/jars/MySQL-connector-Java-5 . 1 . 36 . jar-executor-memory 10g-executor-core 2-driver-memory 6g-total-executor-core 8/home/Hadoop/长春/spark _ aux.jar/tmp/BC/tmp/.预测结果如下:
本周的技术分享到此结束,感谢收看!
1.《图计算 技术专栏 | 大规模图计算应用研究》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《图计算 技术专栏 | 大规模图计算应用研究》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/1495056.html