注意
RAFT 中的向量搜索和聚类算法正在迁移到一个名为 cuVS 的新库,该库专门用于向量搜索。在迁移过程中,我们将继续支持 RAFT 中的向量搜索算法,但在 RAPIDS 24.06 (六月) 发布后将不再更新它们。我们计划在 RAPIDS 24.10 (十月) 发布之前完成迁移,并在 24.12 (十二月) 发布中将它们从 RAFT 中完全移除。
概率与信息论#
列联矩阵#
#include <raft/stats/contingency_matrix.cuh>
namespace raft::stats
-
template<typename value_t, typename idx_t>
void get_input_class_cardinality(raft::resources const &handle, raft::device_vector_view<const value_t, idx_t> groundTruth, raft::host_scalar_view<value_t> minLabel, raft::host_scalar_view<value_t> maxLabel)# 使用此函数分配输出矩阵的大小,矩阵大小 = (maxLabel - minLabel + 1)^2 * sizeof(int)
- 模板参数:
**value_t** – 标签类型
**idx_t** – 矩阵范围的索引类型。
- 参数:
**handle** – **[in]** RAFT 句柄。
**groundTruth** – **[in]** 地面实况的设备一维数组(行数)
**minLabel** – **[out]** 输入数组中计算得到的最小值
**maxLabel** – **[out]** 输入数组中计算得到的最大值
-
template<typename value_t, typename out_t, typename idx_t, typename layout_t, typename opt_min_label_t, typename opt_max_label_t>
void contingency_matrix(raft::resources const &handle, raft::device_vector_view<const value_t, idx_t> ground_truth, raft::device_vector_view<const value_t, idx_t> predicted_label, raft::device_matrix_view<out_t, idx_t, layout_t> out_mat, opt_min_label_t &&opt_min_label, opt_max_label_t &&opt_max_label)# 根据输入的地面实况和预测标签构建列联矩阵。用户应调用函数 getInputClassCardinality 来查找并分配输出内存。类似地,工作空间需求应使用函数 getContingencyMatrixWorkspaceSize 进行检查
- 模板参数:
**value_t** – 标签类型
**out_t** – 输出矩阵类型
**idx_t** – 矩阵范围的索引类型。
**layout_t** – 输入数据的布局类型。
**opt_min_label_t** – std::optional<value_t> `
opt_min_label
`**opt_max_label_t** – std::optional<value_t> `
opt_max_label
`
- 参数:
**handle** – **[in]** RAFT 句柄。
**ground_truth** – **[in]** 地面实况的设备一维数组(行数)
**predicted_label** – **[in]** 预测的设备一维数组(列数)
**out_mat** – **[out]** 列联矩阵的输出缓冲区
**opt_min_label** – **[in]** std::optional,输入地面实况数组中的最小值
**opt_max_label** – **[in]** std::optional,输入地面实况数组中的最大值
熵#
#include <raft/stats/entropy.cuh>
namespace raft::stats
-
template<typename value_t, typename idx_t>
double entropy(raft::resources const &handle, raft::device_vector_view<const value_t, idx_t> cluster_array, const value_t lower_label_range, const value_t upper_label_range)# 计算熵的函数 更多关于熵的信息
- 模板参数:
**value_t** – 数据类型
**idx_t** – 索引类型
- 参数:
**handle** – **[in]** RAFT 句柄
**cluster_array** – **[in]** value_t 类型的类别数组
**lower_label_range** – **[in]** 标签范围的下界
**upper_label_range** – **[in]** 标签范围的上界
- 返回值:
熵得分
KL 散度#
#include <raft/stats/kl_divergence.cuh>
namespace raft::stats
-
template<typename value_t, typename idx_t>
value_t kl_divergence(raft::resources const &handle, raft::device_vector_view<const value_t, idx_t> modelPDF, raft::device_vector_view<const value_t, idx_t> candidatePDF)# 计算 KL 散度的函数 更多关于 KL 散度的信息
- 模板参数:
**value_t** – 输入数组的数据类型
**idx_t** – 索引类型
- 参数:
**handle** – **[in]** RAFT 句柄
**modelPDF** – **[in]** value_t 类型的模型概率密度函数数组
**candidatePDF** – **[in]** value_t 类型的候选概率密度函数数组
- 返回值:
KL 散度值
互信息#
#include <raft/stats/mutual_info_score.cuh>
namespace raft::stats
-
template<typename value_t, typename idx_t>
double mutual_info_score(raft::resources const &handle, raft::device_vector_view<const value_t, idx_t> first_cluster_array, raft::device_vector_view<const value_t, idx_t> second_cluster_array, value_t lower_label_range, value_t upper_label_range)# 计算两个聚类之间互信息的函数 更多关于互信息的信息
- 模板参数:
**value_t** – 数据类型
**idx_t** – 索引类型
- 参数:
**handle** – **[in]** RAFT 句柄
**first_cluster_array** – **[in]** value_t 类型的第一个类别数组
**second_cluster_array** – **[in]** value_t 类型的第二个类别数组
**lower_label_range** – **[in]** 标签范围的下界
**upper_label_range** – **[in]** 标签范围的上界
- 返回值:
互信息得分