使用 Scikit-Learn 生成高维数据集

Generating high dimensional datasets with Scikit-Learn

我正在使用 Mean Shift 聚类算法,该算法基于数据集的核密度估计。我想生成一个大的、高维的数据集,我认为 Scikit-Learn 函数 make_blobs 会很合适。但是当我尝试生成一个 100 万个点的 8 维数据集时,我最终几乎每个点都被视为一个单独的集群。

我正在生成标准偏差为 1 的斑点,然后将 Mean Shift 的带宽设置为相同的值(我认为这是有道理的,对吧?)。对于二维数据集,这产生了很好的结果,但对于更高的维度,我认为我 运行 陷入维度的诅咒,因为点之间的距离变得太大而无法进行有意义的聚类。

有人 tips/tricks 了解如何获得适合(类似)Mean Shift 聚类的优质高维数据集吗? (还是我哪里做错了?(这当然是一个很好的可能性))

聚类的标准差不是 1。

你有 8 个维度,每个维度的 stddev 为 1,所以你的总标准差为 sqrt(8) 或类似值。

由于带宽问题,核密度估计在高维数据中效果不佳。