文件 | |
文件 | quantiles.hpp |
std::unique_ptr<列> cudf::percentile_approx | ( | tdigest::tdigest_column_view const & | input, |
column_view const & | percentiles, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
计算输入 tdigest 列的近似百分位数。
tdigest 列 (https://arxiv.org/pdf/1902.04023.pdf) 是由 TDIGEST 和 MERGE_TDIGEST 聚合专门产生的。这些列代表了非常大的输入数据集的压缩表示,可以查询其分位数信息。
生成一个 LIST 列,其中每行 i
表示查询 input
行 i
中对应 tdigest 的输出。每个输出列表的长度是 percentages
中指定的百分比数量。
input | tdigest 输入数据。每行一个 tdigest |
percentiles | 期望的百分位数,范围在 [0, 1] |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
mr | 用于分配返回列的设备内存的设备内存资源 |
cudf::logic_error | 如果 input 不是有效的 tdigest 列。 |
cudf::logic_error | 如果 percentiles 不是 FLOAT64 列。 |
std::unique_ptr<列> cudf::quantile | ( | column_view const & | input, |
std::vector< double > const & | q, | ||
interpolation | interp = interpolation::LINEAR , |
||
column_view const & | ordered_indices = {} , |
||
bool | exact = true , |
||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
计算插值分位数。
使用 interp
中指定的插值策略,通过插值分位数所在的值之间来计算指定的分位数。
[in] | input | 用于计算分位数值的列 |
[in] | q | 指定的分位数,范围在 [0, 1] |
[in] | interp | 用于在指定分位数相邻的值之间进行选择的策略。 |
[in] | ordered_indices | 包含 input 的排序顺序的列。如果该列为空,则所有 input 值按现有顺序使用。索引必须在 [0, input.size() ) 范围内,但不要求是唯一的。未被该列索引的值将被忽略。 |
[in] | exact | 如果为 true,返回 double 类型。如果为 false,返回与输入相同的类型。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA 流 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源 |
std::unique_ptr<表> cudf::quantiles | ( | table_view const & | input, |
std::vector< double > const & | q, | ||
interpolation | interp = interpolation::NEAREST , |
||
cudf::sorted | is_input_sorted = sorted::NO , |
||
std::vector< order > const & | column_order = {} , |
||
std::vector< null_order > const & | null_precedence = {} , |
||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
返回输入表中对应于请求分位数的行。
分位数是将数据集的范围划分为连续区间的分割点。例如:四分位数是将数据集划分为四个大小相等组的三个分割点。参见 https://en.wikipedia.org/wiki/Quantile
用于收集行的索引是通过在期望分位数两侧的索引之间进行插值计算的。由于某些列可能不是算术类型,行之间的插值仅限于非算术策略。
非算术插值策略包括 HIGHER、LOWER 和 NEAREST。
分位数 <= 0
对应于第 0
行(第一行)。分位数 >= 1
对应于第 input.size() - 1
行(最后一行)。
input | 用于计算分位数行的表 |
q | 指定的分位数,范围在 [0, 1] |
interp | 用于在期望分位数两侧的两行之间进行选择的策略。 |
is_input_sorted | 指示输入是否已经预先排序 |
column_order | 每列期望的排序顺序 |
null_precedence | null 与其他元素比较时期望的顺序 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
mr | 用于分配返回表的设备内存的设备内存资源 |
cudf::logic_error | 如果 interp 是算术插值策略 |
cudf::logic_error | 如果 input 为空 |