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

如何为带关联值的二维数据点生成KDE分布与对应值分布?

问题:带关联值的X-Y坐标KDE估计

问题背景

现有数据结构如下:

  • x轴数值:1, 2, 3, ...
  • y轴数值:5, 8, 10, ...
  • 坐标点关联值:98, 35, 15, ...

目前仅能对X-Y坐标对应用KDE估计点的分布,但无法将坐标点关联值纳入计算。需求是同时得到两个输出通道:

  • 通道1:X-Y坐标对的二维分布
  • 通道2:同一X-Y网格上的关联值估计分布

尝试的3D KDE实现

为了纳入关联值,尝试实现了3D KDE函数,但输出的gg为N×N×M的3D数组,每个X-Y点对应一个关联值维度的分布,维度过大需要压缩:

def kde3D(x, y, z, bandwidth, xbins=60j, ybins=60j, zbins=180j, ** kwargs):
    """构建3D核密度估计(KDE)"""

    # 创建采样点网格(默认60x60x180)
    xx, yy, zz = np.mgrid[0:60:xbins,
                 0:60:ybins,
                 -180:180:zbins]

    xy_sample = np.vstack([yy.ravel(), xx.ravel(),zz.ravel()]).T
    xy_train = np.vstack([y, x, z]).T

    kde_skl = KernelDensity(bandwidth=bandwidth, ** kwargs)
    kde_skl.fit(xy_train)

    # score_samples()返回样本的对数似然,取指数得到概率密度
    gamma = np.exp(kde_skl.score_samples(xy_sample))
    gg = np.reshape(gamma, xx.shape)

    return xx, yy, zz ,gg 

最终解决方法

通过np.argmax和np.max对3D输出gg进行压缩,得到符合需求的N×N二维双通道结果:

  • 通道1(X-Y分布):使用np.max(gg, axis=2),获取每个X-Y点对应的最大概率密度值
  • 通道2(关联值估计):使用np.argmax(gg, axis=2),获取对应最大概率的关联值位置,映射为实际关联值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:06:26