我正在尝试机器学习算法,并且有一个包含数值和分类数据的相当大的数据集。我按照这个帖子中的方法对分类特征进行了编码:http://www.ritchieng.com/machinelearning-one-hot-encoding/:
我想尝试对整个数据集进行K-means聚类。例如,我不确定如何使用我现在拥有的编码数据数组作为原始数据框架的一部分来运行机器学习算法。我非常希望能看到一个示例。
回答:
我猜你已经对数据进行了独热编码。为了使用K-means聚类,你需要重新调整数据的尺度,因为你的数据中可能有一些数值特征会主导聚类结果。你可以尝试从这里选择几种重新调整器(最著名的有MinMaxScaler和StandardScaler)。
之后,你可以参考这里来了解如何使用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)