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

K-means clustering on data set with mixed data using Scikit-learn

我正在试验机器学习算法,并且有一个包含数值数据和分类数据的相当大的数据集。我在此处遵循此 post:http://www.ritchieng.com/machinelearning-one-hot-encoding/ 将分类特征编码为数字:

例如,我想尝试对整个数据集进行 K 均值聚类。我不确定如何使用我现在拥有的这个编码数据数组作为原始数据框的一部分,以便 运行 机器学习算法。我真的很感激一个例子。

我想你有 one-hot-encoded 你的数据。然后,为了使用 K-means 聚类,重新缩放数据很重要,因为您可能有一些数值特征将支配您的聚类。您可以尝试 here 中的几个缩放器(最著名的是 MinMaxScaler 和 StandardScaler)。

之后你可以参考here看看如何在sklearn中使用KMeans。一般来说,步骤如下:

您导入 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)