sklearn MeanShift不同的预测输出



为什么我得到不同的输出行

print ms.fit_predict(val), p_all[idx]

ms.fit_predict(val)的输出都是0。

<>之前导入numpy为np从sklearn。cluster import MeanShift, estimate_bandwidthX = 100*np.random.random_sample((500,15))-100X = np。阵列(X, dtype = np.float)bandwidth = estimate_bandwidth(X, quantile=0.01)ms = MeanShift(bandwidth=bandwidth, bin_播播=True)ms.fit (X)p_all = ms.fit_predict(X)对于idx, val在enumerate(X)中:打印瓦尔打印X [idx]打印ms.fit_predict(val), p_all[idx]

您正在重新拟合循环内的单个数据点。p_allX中所有数据拟合的聚类分配。循环运行后,如果打印出ms.cluster_centers_,它将与val相同,因为它只适合val。因此,将只有一个集群,其索引为0

我猜你对MeanShift的接口感到困惑。它不能在线改装。每次调用fit()fit_predict()时,它只适合您传递给它的数据,而忽略旧的解决方案。

我建议看一下sklearn的MeanShift文档

相关内容

  • 没有找到相关文章

最新更新