当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cugraph.link_prediction.wjaccard.jaccard_w用法及代码示例


用法:

cugraph.link_prediction.wjaccard.jaccard_w(input_graph, weights, vertex_pair=None)

计算由边连接的每对顶点之间或用户指定的任意顶点对之间的加权 Jaccard 相似度。 Jaccard 相似度定义为两个集合之间的交集体积除以它们并集的体积之比。在图的上下文中,顶点的邻域被视为一个集合。每条边的 Jaccard 相似度权重表示基于相邻顶点的相对相似度的顶点之间的连接强度。如果指定了第一个但没有指定第二个,反之亦然,将抛出异常。

参数

input_graphcugraph.Graph

cuGraph 图形实例,应包含作为边列表的连接信息(此算法不使用边权重)。如果不存在邻接列表,则将计算该邻接列表。

weightscudf.DataFrame

指定要用于每个顶点的权重。顶点应由multi-column 顶点的多列表示。

权重[‘vertex’]cudf.Series

包含顶点标识符

权重[‘weight’]cudf.Series

包含顶点的权重

vertex_paircudf.DataFrame,可选(默认=无)

一个 GPU 数据帧,由代表顶点对的两列组成。如果提供,则为给定的顶点对计算 Jaccard 系数,否则,为所有顶点对计算它。

返回

dfcudf.DataFrame

GPU 数据帧大小为 E(默认)或包含 Jaccard 权重的给定对(第一、第二)的大小。排序是相对于邻接列表的,或者是由指定的顶点对给出的。

df[‘source’]cudf.Series

源顶点 ID

df[‘destination’]cudf.Series

目标顶点 ID

df[‘jaccard_coeff’]cudf.Series

计算的源顶点和目标顶点之间的加权 Jaccard 系数。

例子

>>> import random
>>> M = cudf.read_csv(datasets_path / 'karate.csv', delimiter=' ',
...                   dtype=['int32', 'int32', 'float32'], header=None)
>>> G = cugraph.Graph()
>>> G.from_cudf_edgelist(M, source='0', destination='1')
>>> # Create a dataframe containing the vertices with their
>>> # corresponding weight
>>> weights = cudf.DataFrame()
>>> # Sample 10 random vertices from the graph and drop duplicates if
>>> # there are any to avoid duplicates vertices with different weight
>>> # value in the 'weights' dataframe
>>> weights['vertex'] = G.nodes().sample(n=10).drop_duplicates()
>>> # Reset the indices and drop the index column
>>> weights.reset_index(inplace=True, drop=True)
>>> # Create a weight column with random weights
>>> weights['weight'] = [random.random() for w in range(
...                      len(weights['vertex']))]
>>> df = cugraph.jaccard_w(G, weights)

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cugraph.link_prediction.wjaccard.jaccard_w。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。