标签传播算法_基于scala优化spark.graphx里的标签传播(LPA)算法(考虑好坏样本,标签权重)...

047551c70dc7347e77ff9dab3851604a.png

最近工作中需要使用到标签传播算法,发现spark自带的lpa算法不是很贴合业务场景,改了一下在这里做一个总结。

背景:

面向千万到亿级别的主体对象,用spark.graphx里的图网络表示。因为已经有了一部分坏样本,需要根据图网络对剩下的样本进行标记,达到查缺补漏的作用。

业务需要:

  1. 实际场景需要使用坏标签对已有的好标签进行标注,原算法是使用VertexId打标注;
  2. 实际场景中坏标签应该需要被固定,它不会被其他好标签影响,原算法不考虑固定标签;
  3. 实际场景边的权重需要被考虑进去,原算法中边的权重全部为1;
源代码:
https://github.com/apache/spark/blob/master/graphx/src/main/scala/org/apache/spark/graphx/lib/LabelPropagation.scala​github.com

更改后:

  1. 指定输入Graph[String,Double]类型,规定主体的属性为String,边的属性为Double;
  2. run函数增加参数keepLabel:Array[VertexId],将需要固定标签的id传进入;
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值