我正在对数据集执行均值平移聚类。 estimate_bandwidth函数估计执行均值漂移聚类的适当带宽。
语法:
sklearn.cluster.estimate_bandwidth(X, quantile=0.3, n_samples=None, random_state=0)
我发现估计的带宽随着分位数的增加而增加,从而导致簇数量减少。类似地,分位数的减少会减少带宽,从而导致更高的数量。簇数。
所以,看来不行。簇的数量取决于所选的分位数值。
如何选择最佳分位数?
最佳答案
KNN 中使用分位数(在estimate_bandwidth 函数内部使用)来确定带宽。
具体来说:
n = KNN 中的样本数 = 批处理中的样本数 * 分位数
然后将根据同一簇中样本之间的平均成对距离(由 KNN 返回)计算带宽。所以你可以用它来弄清楚如何设置带宽。该函数返回的带宽平均将覆盖 n 个样本,这将强烈影响 Mean Shift 将返回的簇的数量。
关于python - python的MeanShift模块中估计带宽时如何选择合适的分位数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28335070/