用法:
cugraph.link_prediction.jaccard.jaccard(input_graph, vertex_pair=None)
计算由边连接的每对顶点之间或用户指定的任意顶点对之间的 Jaccard 相似度。 Jaccard 相似度定义为两个集合之间的交集体积除以它们并集的体积之比。在图的上下文中,顶点的邻域被视为一个集合。每条边的 Jaccard 相似度权重表示基于相邻顶点的相对相似度的顶点之间的连接强度。如果指定了第一个但没有指定第二个,反之亦然,将抛出异常。
注意:如果未指定vertex_pair 参数,则 cugraph.jaccard 的行为与 networkx.jaccard_coefficient 的行为不同。
cugraph.jaccard,在没有指定顶点对列表的情况下,将使用图形的边来构造顶点对列表,并将返回这些顶点对的 jaccard 系数。
networkx.jaccard_coefficient,在没有指定的顶点对列表的情况下,将返回一个上三角密集矩阵,不包括对角线以及由图中边直接连接的顶点对,jaccard 系数。从技术上讲,networkx 在这个上三角矩阵中返回一个惰性迭代器,其中在取消引用迭代器时计算实际的 jaccard 系数。如果图中的顶点数量很大(100,000 个顶点将在该迭代器中产生 49 亿个值),则计算结果的密集矩阵是不可行的。
如果您的图表足够小(或者您有足够的内存和耐心),您可以通过执行以下操作获得作为 networkx 解决方案一部分的有趣(非零)值:
>>> gdf = cudf.read_csv(datasets_path / 'karate.csv', delimiter=' ', ... dtype=['int32', 'int32', 'float32'], header=None) >>> G = cugraph.Graph() >>> G.from_cudf_edgelist(gdf, source='0', destination='1') >>> pairs = G.get_two_hop_neighbors() >>> df = cugraph.jaccard(G, pairs)
但请记住,cugraph 将使用您请求的整个解决方案填充数据帧,因此您需要足够的内存来存储 2 跳邻域数据帧。
- graph:cugraph.Graph
cuGraph 图形实例,应包含作为边列表的连接信息(此算法不使用边权重)。该图应该是无向的,其中无向边由两个方向的有向边表示。如果不存在邻接列表,则将计算该邻接列表。
- vertex_pair:cudf.DataFrame,可选(默认=无)
一个 GPU 数据帧,由代表顶点对的两列组成。如果提供,则为给定的顶点对计算 Jaccard 系数。如果未提供 vertex_pair,则当前实现计算图中所有相邻顶点的 jaccard 系数。
- df:cudf.DataFrame
GPU 数据帧大小为 E(默认)或包含 Jaccard 权重的给定对(第一、第二)的大小。排序是相对于邻接列表的,或者是由指定的顶点对给出的。
- df[‘source’]:cudf.Series
源顶点 ID(如果指定,将与第一个相同)
- df[‘destination’]:cudf.Series
目标顶点 ID(如果指定,将与第二个相同)
- df[‘jaccard_coeff’]:cudf.Series
计算的源顶点和目标顶点之间的 Jaccard 系数
参数:
返回:
例子:
>>> gdf = cudf.read_csv(datasets_path / 'karate.csv', delimiter=' ', ... dtype=['int32', 'int32', 'float32'], header=None) >>> G = cugraph.Graph() >>> G.from_cudf_edgelist(gdf, source='0', destination='1') >>> df = cugraph.jaccard(G)
相关用法
- Python cugraph.link_prediction.jaccard.jaccard_coefficient用法及代码示例
- Python cugraph.link_prediction.wjaccard.jaccard_w用法及代码示例
- Python cugraph.link_prediction.woverlap.overlap_w用法及代码示例
- Python cugraph.link_prediction.overlap.overlap用法及代码示例
- Python cugraph.link_analysis.pagerank.pagerank用法及代码示例
- Python cugraph.link_analysis.hits.hits用法及代码示例
- Python cugraph.linear_assignment.hungarian用法及代码示例
- Python cugraph.community.spectral_clustering.spectralBalancedCutClustering用法及代码示例
- Python cugraph.community.ecg.ecg用法及代码示例
- Python cugraph.Graph.from_cudf_adjlist用法及代码示例
- Python cugraph.community.louvain.louvain用法及代码示例
- Python cugraph.tree.minimum_spanning_tree.maximum_spanning_tree用法及代码示例
- Python cugraph.centrality.betweenness_centrality.betweenness_centrality用法及代码示例
- Python cugraph.dask.community.louvain.louvain用法及代码示例
- Python cugraph.traversal.bfs.bfs用法及代码示例
- Python cugraph.community.egonet.batched_ego_graphs用法及代码示例
- Python cugraph.tree.minimum_spanning_tree.minimum_spanning_tree用法及代码示例
- Python cugraph.Graph.from_cudf_edgelist用法及代码示例
- Python cugraph.centrality.betweenness_centrality.edge_betweenness_centrality用法及代码示例
- Python cugraph.components.connectivity.strongly_connected_components用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cugraph.link_prediction.jaccard.jaccard。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。