该文档涉及的组件

Risk Alike构图(RiskAlikeBuildGraphBatchOp)

Java 类名:com.alibaba.alink.operator.batch.graph.RiskAlikeBuildGraphBatchOp

Python 类名:RiskAlikeBuildGraphBatchOp

功能介绍

Risk Alike构图

参数说明

名称 中文名称 描述 类型 是否必须? 取值范围 默认值
edgeSourceCol 边表中起点所在列 边表中起点所在列 String ✓
edgeTargetCol 边表中终点所在列 边表中终点所在列 String ✓
vertexCol 输入点表中点所在列 输入点表中点所在列 String ✓
edgeWeightCol 边权重列 表示边权重的列 String null
expandDegree 扩散度数 从黑种子节点出发,在输入的边表上进行扩散的度数 Integer 2

代码示例

Java 代码

import com.alibaba.alink.operator.batch.BatchOperator;
import com.alibaba.alink.operator.batch.source.MemSourceBatchOp;
import com.alibaba.alink.testutil.AlinkTestBase;
import org.apache.flink.types.Row;
import org.junit.Test;

public class RiskAlikeBuildGraphBatchOpTest extends AlinkTestBase {

	@Test
	public void test() throws Exception {
		Row[] edges = new Row[] {
			Row.of(1L, 2L, 1D),
			Row.of(1L, 3L, 1D),
			Row.of(1L, 4L, 1D),
			Row.of(2L, 3L, 1D),
			Row.of(2L, 4L, 1D),
			Row.of(3L, 4L, 1D),
			Row.of(4L, 5L, 1D),
			Row.of(5L, 6L, 1D),
			Row.of(5L, 7L, 1D),
			Row.of(5L, 8L, 1D),
			Row.of(6L, 7L, 1D),
			Row.of(6L, 8L, 1D),
			Row.of(7L, 8L, 1D)
		};

		BatchOperator edgeData = new MemSourceBatchOp(edges, new String[] {"source", "target", "weight"});

		Row[] vertex = new Row[]{Row.of(1L)};
		BatchOperator vertexData = new MemSourceBatchOp(vertex, new String[] {"vertex"});

		RiskAlikeBuildGraphBatchOp louvainBatchOp = new RiskAlikeBuildGraphBatchOp()
			.setEdgeSourceCol("source")
			.setEdgeTargetCol("target")
			.setEdgeWeightCol("weight")
			.setVertexCol("vertex")
			.setExpandDegree(1)
			.linkFrom(vertexData, edgeData);
		louvainBatchOp.lazyPrint();
		louvainBatchOp.getSideOutput(0).print();
	}
}

输出结果

user_id is_black
1 true
5 false
6 false
2 true
3 true
4 true
7 false
8 false
user_id user_id_b prediction_score left_tag right_tag
5 6 1.0000 false false
4 5 1.0000 true false
2 3 1.0000 true true
2 4 1.0000 true true
3 4 1.0000 true true
7 8 1.0000 false false
1 2 1.0000 true true
1 3 1.0000 true true
1 4 1.0000 true true
5 7 1.0000 false false
5 8 1.0000 false false
6 7 1.0000 false false
6 8 1.0000 false false