社区#

三角形计数#

cugraph_error_code_t cugraph_triangle_count(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *start, bool_t do_expensive_check, cugraph_triangle_count_result_t **result, cugraph_error_t **error)#

三角形计数。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 图的指针。注意:如果存储需要转置,图可能会被修改

  • start[in] 要计算三角形的顶点设备数组。如果为 NULL,则处理图中的所有顶点

  • do_expensive_check[in] 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)

  • result[out] triangle_count 调用的输出

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误码不是 CUGRAPH_SUCCESS,将填充此对象

返回:

错误码

Louvain#

cugraph_error_code_t cugraph_louvain(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t max_level, double threshold, double resolution, bool_t do_expensive_check, cugraph_hierarchical_clustering_result_t **result, cugraph_error_t **error)#

计算 Louvain。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 图的指针。注意:如果存储需要转置,图可能会被修改

  • max_level[in] 层级结构中的最大层数

  • threshold[in] 阈值参数,定义层级结构中每个级别的收敛性

  • resolution[in] 模块度公式中的分辨率参数(gamma)。这会改变社区的大小。更高的分辨率会产生更多更小的社区,更低的分辨率会产生更少更大的社区。

  • do_expensive_check[in] 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)

  • result[out] Louvain 调用的输出

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误码不是 CUGRAPH_SUCCESS,将填充此对象

返回:

错误码

Leiden#

cugraph_error_code_t cugraph_leiden(const cugraph_resource_handle_t *handle, cugraph_rng_state_t *rng_state, cugraph_graph_t *graph, size_t max_level, double resolution, double theta, bool_t do_expensive_check, cugraph_hierarchical_clustering_result_t **result, cugraph_error_t **error)#

计算 Leiden。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 图的指针。注意:如果存储需要转置,图可能会被修改

  • rng_state[inout] 随机数生成器的状态,每次调用都会更新

  • max_level[in] 层级结构中的最大层数

  • resolution[in] 模块度公式中的分辨率参数(gamma)。这会改变社区的大小。更高的分辨率会产生更多更小的社区,更低的分辨率会产生更少更大的社区。

  • theta[in] (可选)用于在 Leiden 细化阶段缩放模块度增益的参数值。用于计算加入随机 Leiden 社区的概率。在 Leiden 算法中称为 theta。

  • do_expensive_check[in] 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)

  • result[out] Leiden 调用的输出

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误码不是 CUGRAPH_SUCCESS,将填充此对象

返回:

错误码

ECG#

cugraph_error_code_t cugraph_ecg(const cugraph_resource_handle_t *handle, cugraph_rng_state_t *rng_state, cugraph_graph_t *graph, double min_weight, size_t ensemble_size, size_t max_level, double threshold, double resolution, bool_t do_expensive_check, cugraph_hierarchical_clustering_result_t **result, cugraph_error_t **error)#

计算 ECG 聚类。

参数:
  • handle[in] 访问资源的句柄

  • rng_state[inout] 随机数生成器的状态,每次调用都会更新

  • graph[in] 图的指针。注意:如果存储需要转置,图可能会被修改

  • min_weight[in] 最终图中的最小边权重

  • ensemble_size[in] 要运行的 Louvain 迭代次数

  • max_level[in] 最终 Louvain 的层级结构中的最大层数

  • threshold[in] 阈值参数,定义最终 Louvain 的层级结构中每个级别的收敛性

  • resolution[in] 模块度公式中的分辨率参数(gamma)。这会改变社区的大小。更高的分辨率会产生更多更小的社区,更低的分辨率会产生更少更大的社区。

  • do_expensive_check[in] 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)

  • result[out] Louvain 调用的输出

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误码不是 CUGRAPH_SUCCESS,将填充此对象

返回:

错误码

提取 Egonet#

cugraph_error_code_t cugraph_extract_ego(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *source_vertices, size_t radius, bool_t do_expensive_check, cugraph_induced_subgraph_result_t **result, cugraph_error_t **error)#

提取 ego 图。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 图的指针。注意:如果存储需要转置,图可能会被修改

  • source_vertices[in] 要提取 egonet 的顶点设备数组。

  • radius[in] 从每个源顶点出发的跳数

  • do_expensive_check[in] 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)

  • result[out] 包含提取的子图的不透明对象

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误码不是 CUGRAPH_SUCCESS,将填充此对象

返回:

错误码

平衡割#

cugraph_error_code_t cugraph_balanced_cut_clustering(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, size_t n_eigenvectors, double evs_tolerance, int evs_max_iterations, double k_means_tolerance, int k_means_max_iterations, bool_t do_expensive_check, cugraph_clustering_result_t **result, cugraph_error_t **error)#

平衡割聚类。

注意:这当前封装了旧版平衡割聚类实现,并且仅在单 GPU 实现中可用。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 图的指针。注意:如果存储需要转置,图可能会被修改

  • n_clusters[in] 期望的簇数量

  • n_eigenvectors[in] 要使用的特征向量数量

  • evs_tolerance[in] 特征值求解器使用的容差

  • evs_max_iterations[in] 特征值求解器的最大迭代次数

  • k_means_tolerance[in] k-means 求解器使用的容差

  • k_means_max_iterations[in] k-means 求解器的最大迭代次数

  • do_expensive_check[in] 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)

  • result[out] 包含聚类结果的不透明对象

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误码不是 CUGRAPH_SUCCESS,将填充此对象

返回:

错误码

谱聚类 - 模块度最大化#

cugraph_error_code_t cugraph_spectral_modularity_maximization(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, size_t n_eigenvectors, double evs_tolerance, int evs_max_iterations, double k_means_tolerance, int k_means_max_iterations, bool_t do_expensive_check, cugraph_clustering_result_t **result, cugraph_error_t **error)#

谱聚类。

注意:这当前封装了旧版谱聚类实现,并且仅在单 GPU 实现中可用。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 图的指针。注意:如果存储需要转置,图可能会被修改

  • n_clusters[in] 期望的簇数量

  • n_eigenvectors[in] 要使用的特征向量数量

  • evs_tolerance[in] 特征值求解器使用的容差

  • evs_max_iterations[in] 特征值求解器的最大迭代次数

  • k_means_tolerance[in] k-means 求解器使用的容差

  • k_means_max_iterations[in] k-means 求解器的最大迭代次数

  • do_expensive_check[in] 一个标志,用于对输入参数运行昂贵的检查(如果设置为 true)

  • result[out] 包含聚类结果的不透明对象

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误码不是 CUGRAPH_SUCCESS,将填充此对象

返回:

错误码

cugraph_error_code_t cugraph_analyze_clustering_modularity(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, const cugraph_type_erased_device_array_view_t *vertices, const cugraph_type_erased_device_array_view_t *clusters, double *score, cugraph_error_t **error)#

计算指定聚类的模块度。

注意:这当前封装了旧版谱模块度实现,并且仅在单 GPU 实现中可用。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 图的指针。注意:如果存储需要转置,图可能会被修改

  • n_clusters[in] 期望的簇数量

  • vertices[in] 聚类结果中的顶点 ID

  • clusters[in] 聚类结果中的簇 ID

  • score[out] 此聚类的模块度分数

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误码不是 CUGRAPH_SUCCESS,将填充此对象

返回:

错误码

谱聚类 - 边割#

cugraph_error_code_t cugraph_analyze_clustering_edge_cut(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, const cugraph_type_erased_device_array_view_t *vertices, const cugraph_type_erased_device_array_view_t *clusters, double *score, cugraph_error_t **error)#

计算指定聚类的边割。

注意:这当前封装了旧版谱边割实现,并且仅在单 GPU 实现中可用。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 图的指针。注意:如果存储需要转置,图可能会被修改

  • n_clusters[in] 期望的簇数量

  • vertices[in] 聚类结果中的顶点 ID

  • clusters[in] 聚类结果中的簇 ID

  • score[out] 此聚类的边割分数

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误码不是 CUGRAPH_SUCCESS,将填充此对象

返回:

错误码

cugraph_error_code_t cugraph_analyze_clustering_ratio_cut(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, const cugraph_type_erased_device_array_view_t *vertices, const cugraph_type_erased_device_array_view_t *clusters, double *score, cugraph_error_t **error)#

计算指定聚类的比率割。

注意:这当前封装了旧版谱比率割实现,并且仅在单 GPU 实现中可用。

参数:
  • handle[in] 访问资源的句柄

  • graph[in] 图的指针。注意:如果存储需要转置,图可能会被修改

  • n_clusters[in] 期望的簇数量

  • vertices[in] 聚类结果中的顶点 ID

  • clusters[in] 聚类结果中的簇 ID

  • score[out] 此聚类的比率割分数

  • error[out] 指向存储任何错误详细信息的错误对象的指针。如果错误码不是 CUGRAPH_SUCCESS,将填充此对象

返回:

错误码

社区支持函数#

cugraph_type_erased_device_array_view_t *cugraph_triangle_count_result_get_vertices(cugraph_triangle_count_result_t *result)#

获取三角形计数顶点。

cugraph_type_erased_device_array_view_t *cugraph_triangle_count_result_get_counts(cugraph_triangle_count_result_t *result)#

获取三角形计数结果。

void cugraph_triangle_count_result_free(cugraph_triangle_count_result_t *result)#

释放三角形计数结果。

参数:

result[in] 采样算法的结果

cugraph_type_erased_device_array_view_t *cugraph_hierarchical_clustering_result_get_vertices(cugraph_hierarchical_clustering_result_t *result)#

获取分层聚类顶点。

cugraph_type_erased_device_array_view_t *cugraph_hierarchical_clustering_result_get_clusters(cugraph_hierarchical_clustering_result_t *result)#

获取分层聚类簇。

double cugraph_hierarchical_clustering_result_get_modularity(cugraph_hierarchical_clustering_result_t *result)#

获取模块度。

void cugraph_hierarchical_clustering_result_free(cugraph_hierarchical_clustering_result_t *result)#

释放分层聚类结果。

参数:

result[in] 采样算法的结果