【问题标题】:How to choose appropriate quantile value while estimating bandwidth in MeanShift module of python?在python的MeanShift模块中估计带宽时如何选择合适的分位数?
【发布时间】:2015-04-04 18:47:45
【问题描述】:

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

语法:

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

我发现估计的带宽随着分位数的增加而增加,从而导致集群数量减少。同样,分位数的减少会降低带宽,因此不会增加。集群。

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

如何选择最佳分位数?

【问题讨论】:

  • 运气和经验。很遗憾。但究竟什么是“最佳”?
  • “最优”在某种意义上说集群是稳定的。
  • 那么从这个意义上说,无穷大是最优的。

标签: python cluster-analysis mean-shift


【解决方案1】:

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

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

然后将根据同一簇中样本之间的平均成对距离(由 KNN 返回)计算带宽。所以你可以用它来弄清楚如何设置带宽。此函数返回的带宽平均会覆盖 n 个样本,这将极大地影响 Mean Shift 将返回的簇数。

【讨论】:

    猜你喜欢
    • 2021-09-24
    • 2019-01-15
    • 2020-06-21
    • 2015-10-07
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多