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

标签 python cluster-analysis mean-shift

我正在对数据集执行均值平移聚类。 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/

相关文章:

cluster-analysis - 光学可达性图

artificial-intelligence - 使用 AI 技术逆向工程文件格式

python - Scikit学习: Applying Mean Shift on a multi-dimensional dataset

python - 从文件开头的偏移量开始并解压 4 字节字

python - 从两个数据框创建交互项

python - 运行 import tensorflow 后的非法指令(核心转储)

python - 根据文本与 LDA 主题/特征簇的相似性对文本进行分组

python-2.7 - pyrMeanShiftFiltering中的颜色窗口半径是什么意思?

c++ - 如何在 C++ 中使用 OpenCV 检测多个对象?

python - 两个线程,一个对象