Scikit-learn KMeans 聚类 - 适合具有 X 特征的聚类,预测具有 X-1 特征的聚类成员?

Scikit-learn KMeans clustering - fit cluster with X features, predict cluster membership with X-1 features?

我目前正在尝试使用 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' 字段外,这几乎是一样的)- 我想使用除 'count' 之外的所有功能来确定集群成员资格,然后将 'count' 分配给测试集中的每一行到分配的集群中心的 'count' 相关坐标。

有什么想法可以使用 KMeans 集群的标准函数来简单地做到这一点吗?我不能只调用 'k_means.predict',因为它会因功能编号不匹配而失败。

我能想到的最简单的方法是使用已训练的聚类提供的聚类中心构建一个 k_means 聚类对象。但我不知道该怎么做。是否可以通过为其提供已定义的簇质心来创建新的 cluster.KMeans 对象?

  1. 找到最近的聚类中心
  2. 使用中心的缺失值

如果您坚持 k-means 原则,您的最佳预测值就是分配给中心的值;除非你为每个集群独立建立回归模型。

您可以先使用 K-Means 计算所有质心。然后计算从每个点到所有质心的 sklearn.metrics 的欧几里德距离(除了那些你想排除的)。最后,获得最小化每个点的距离(np.argmin 沿第二轴)的集群。