You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

sklearn.neighbors.KernelDensity中atol、rtol默认值为0的含义及疑问

sklearn.neighbors.KernelDensity 中 atol 和 rtol 参数解析

默认值为0的含义

当atol(绝对容差)和rtol(相对容差)都设为0时,KernelDensity会执行精确的核密度计算——也就是会遍历所有训练数据点来计算每个样本的似然值,不会跳过任何数据点,完全没有近似逻辑。

是否使用所有数据点?

是的,此时算法会调用全部训练数据参与计算,没有任何优化性的点过滤。需要注意:如果使用的是algorithm='brute',不管容差参数如何设置都会遍历所有点;如果是树结构算法(ball_tree/kd_tree),当两个容差都为0时,也会退化为精确计算,结果和暴力法完全一致。

非0值的作用

当atol或rtol不为0时,仅在使用algorithm='ball_tree'、algorithm='kd_tree'或algorithm='auto'(自动选择树结构)时生效,此时算法会开启近似核密度估计:

  • 算法会基于树结构快速筛选数据点,当某个点对目标样本的核密度贡献小于 atol + rtol * 当前累计的似然值 时,就会跳过该点,不再计算其贡献
  • 这种近似能大幅提升大数据集下的计算速度,但会引入一定误差:容差设置越大,跳过的点越多,计算越快,但结果的精度损失也可能越大;反之,容差越接近0,结果越接近精确计算,但速度优势越不明显

内容的提问来源于stack exchange,提问作者lglgunlock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:24:23