关于用 K 表示聚类的问题

数据挖掘 聚类 scikit-学习 k-均值
2022-02-18 15:02:36

我已经使用 K 方法对我的数据进行聚类。在使用 K 均值之前,我在我的数据上使用了 StandardScaler 来标准化数据。现在,我想知道如何显示原始数据的集群。Scikit-learn 在标准化数据上给出了标签,但我想在原始数据上加上标签,并在图表上显示原始数据的集群。

3个回答

StandardScaler 从每个变量中减去平均值,然后将其除以标准差。这是一个常见的预处理步骤,当然对于 k-means 而言,因为该算法严重依赖于数据的缩放。

如果我理解正确,您希望可视化原始数据并通过这样做来使用 k-means 中的标签。您可以将标签添加到原始数据(假设记录的顺序没有改变):

original_with_label = numpy.concatenate(original, labels, axis = 1)

或者您可以将数据转换回其原始比例:

transformed_back_to_original = scalar_fit.inverse_transform(transformed_data)

我认为是一个非常好的教程供您考虑。

最后,作者向您展示了如何将索引映射回集群 ID。

details = [(name,cluster) for name, cluster in zip(returns.index,idx)]

for detail in details:
    print(detail)

选项1:

保留和访问原始数据(例如按索引) - 重新计算方法。

选项 2:

应用逆变换。StandardScaler 是一种线性变换,因此它是可逆的,但会损失一些精度。