当我只是获取行集群时,如何优化K意味着集群?
问题描述:
这是我第一次尝试使用Python和Sci-Kit Learn进行K-Means聚类,并且我不知道如何对最终聚类图做出什么或者如何微调我的K均值聚类算法。当我只是获取行集群时,如何优化K意味着集群?
我的最终目标是找到划分一些有趣或有用的行为特征的用户类别的聚类。
未遂1:
输入:性别,年龄范围,国家(全一热编码,因为数据是分类),和帐户年龄(以周龄数值)
代码:
# Convert DataFrame to matrix
mat2 = all_dummy.as_matrix()
# Using sklearn
km2 = sklearn.cluster.KMeans(n_clusters=6)
km2.fit(mat2)
# Get cluster assignment labels
labels2 = km2.labels_
# Format results as a DataFrame
results2 = pd.DataFrame([all_dummy.index,labels2]).T
plot_x2 = results2[0].tolist()
plot_y2 = results2[1].tolist()
pyplot.scatter(plot_x2,plot_y2)
pyplot.show()
简介:
具体的问题:
- 这是什么图形的X轴和Y轴?
- 这张图甚至告诉我什么?
- 为什么只有3个集群出现时,我把6个集群作为输入? (通过第一条评论和更新的代码和图形回答)
- 如果我不知道我在找什么样的关系是什么,我该如何微调这个图表来告诉我更多,并向我展示一种有用的关系?
答
阅读k-means的局限性。
特别是,要知道,
你必须删除所有标识列
K-均值为规模非常敏感。所有属性都需要根据其值范围,分布和重要性仔细缩放。预处理至关重要!
k-均值假设连续变量。对分类数据的使用,即使是单热编码,也是有问题的。它有时工作“好”,但几乎没有工作过“好”。