代码之家  ›  专栏  ›  技术社区  ›  moirK

基于Scikit学习的混合数据集K均值聚类

  •  -2
  • moirK  · 技术社区  · 6 年前

    我正在试验机器学习算法,有一个相当大的数据集,包含数字和分类数据。我在这里发布了以下帖子: http://www.ritchieng.com/machinelearning-one-hot-encoding/ 将分类特征编码为数字:

    例如,我想尝试对整个数据集进行K-means聚类。我不知道如何使用我现在拥有的这个编码数据数组作为原始数据帧的一部分来运行机器学习算法。我真的很想举个例子。

    1 回复  |  直到 6 年前
        1
  •  2
  •   ekoulier    6 年前

    我想你有一个热编码你的数据。为了使用K-means聚类,重新缩放数据很重要,因为您可能有一些数字特征将主导聚类。您可以尝试从 here (最著名的是MinMaxScaler和StandardScaler)。

    之后,您可以参考 here 了解如何将KMeans与sklearn结合使用。一般而言,步骤如下:

    导入KMeans:

    from sklearn.cluster import KMeans

    您实例化了一个KMeans对象,至少指定了集群的数量,这里我任意放置了8个:

    kmeans = KMeans(n_clusters = 8)

    然后用数据拟合对象(此处我的数据名为X):

    kmeans.fit(X)

    之后,您可以使用 .labels_ :

    kmeans.labels_

    您还可以使用 .predict :

    kmeans.predict(new_X)