我目前正在尝试使用KMeans群集解决某种回归任务(预测' count'字段的值)。这个想法很简单:
在我的测试数据集上安装一个群集:
k_means = cluster.KMeans(n_clusters=4, n_init = 20, init='random')
k_means.fit(df[['DistanceToMidnight','season','DayType','weather','temp','atemp','humidity','windspeed','count']])
*请注意我确实使用了' count'在聚类中。
然后我想使用我的测试集(除非它没有'计算'字段,它们大致相同) - 我想使用所有功能来确定集群成员资格除了'算'然后分配' count'将测试集中的每一行设置为指定集群中心的“计数”相关坐标。
如何使用KMeans群集的标准功能简单地完成此操作?我不能打电话给k_means.predict'因为功能编号不匹配会导致失败。
我能想到的最简单的方法是使用已经训练过的聚类中提供的聚类中心构建一个k_means聚类对象。但我不知道该怎么做。是否可以通过为其提供已定义的集群质心来创建新的cluster.KMeans对象?
答案 0 :(得分:1)
如果您坚持k-means原则,您的最佳预测值是分配给中心的值;除非你,例如为每个集群独立构建回归模型。
答案 1 :(得分:1)
您可以先使用K-Means计算所有质心。然后计算从sklearn.metrics
的每个点到所有质心的欧氏距离(除了您要排除的那些)。最后,获得最小化每个点的距离(np.argmin
沿第二轴)的聚类。