如何在python的MeanShift模块中估算带宽的同时选择合适的分位数值?

时间:2015-02-05 02:15:14

标签: python cluster-analysis mean-shift

我正在对数据集执行均值移位聚类。 estimate_bandwidth函数估计适当的带宽以执行均值漂移聚类。

语法:

sklearn.cluster.estimate_bandwidth(X, quantile=0.3, n_samples=None, random_state=0)

我发现估计带宽随着分位数的增加而增加,导致群集数量减少。类似地,分位数的减少会降低带宽,从而降低数量。集群。

所以,似乎没有。簇的数量取决于所选择的分位数值。

如何选择最佳分位数?

1 个答案:

答案 0 :(得分:0)

在KNN中使用分位数(在estimate_bandwidth函数内部使用)来确定带宽。
具体来说:

n = KNN中的样本数=批次中的样本数*分位数

然后,将基于同一簇中样本之间的平均成对距离(由KNN返回)来计算带宽。因此,您可以使用它来弄清楚如何设置带宽。该函数返回的带宽平均将覆盖n个样本,这将严重影响Mean Shift返回的簇数。