【发布时间】:2019-12-21 04:33:51
【问题描述】:
我正在使用 tSNE 来研究两组高维数据之间的差异。我连接所有数据,运行 tSNE,同时跟踪属于每个组的数据索引。然后,我对 2 组 tSNE 结果进行核密度估计。接下来,我在一个规则的网格上评估这 2 个 KDE,并最终得出结果的差异。
最终的差异数据是一个点网格,其中第 1 组中密度较高的区域为正值,第 2 组中较高密度的区域为负值。
我想做的是从负区域和正区域创建 2 个新模型,并从每个区域采样新点。我需要从密度图中生成样本。如何“逆转”从数据点生成密度图的过程?
以下是给出差异图的相关代码摘录,以及该图的示例。
kde1 = gaussian_kde(
np.vstack(
[
tsne_results1[:, 0],
tsne_results1[:, 1]
]
)
)
kde2 = gaussian_kde(
np.vstack(
[
tsne_results2[:, 0],
tsne_results2[:, 1]
]
)
)
# evaluate on a regular grid
xgrid = np.linspace(x_min, x_max, 250)
ygrid = np.linspace(y_min, y_max, 250)
Xgrid, Ygrid = np.meshgrid(xgrid, ygrid)
xy_grid = np.vstack([Xgrid.ravel(), Ygrid.ravel()])
z1 = kde1.evaluate(xy_grid)
z2 = kde2.evaluate(xy_grid)
z = z2 - z1
【问题讨论】:
标签: python scipy data-science kernel-density