首页 文章

使用Scikit-learn,K-means对具有混合数据的数据集进行聚类

提问于
浏览
-3

我正在尝试使用机器学习算法,并且拥有一个包含数字和分类数据的相当大的数据集 . 我在这里关注这篇文章:http://www.ritchieng.com/machinelearning-one-hot-encoding/将分类特征编码为数字:

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

1 回答

  • 1

    我想你有一个热编码的数据 . 那么为了使用K-means聚类,重要的是重新调整数据,因为您可能有一些数字特征将主导您的聚类 . 您可以尝试使用here中的几个rescalers(最着名的是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 预测群集中的新数据和看不见的数据(名称为new_X):

    kmeans.predict(new_X)

相关问题