用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。