pr3*_*338 0 python cluster-analysis machine-learning scikit-learn
这是我第一次尝试使用Python和Sci-Kit Learn进行K-Means聚类,我不知道如何制作我的最终聚类图或如何微调我的K意味着聚类算法.
我的最终目标是找到一组用户类别,描述一些有趣或有用的行为特征.
ATTEMPT 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()
Run Code Online (Sandbox Code Playgroud)
情节:
具体问题:
阅读k-means的局限性.
特别要注意的是
您必须删除所有标识符列
k-means 对规模非常敏感.所有属性都需要根据其值范围,分布和重要性进行仔细调整.预处理至关重要!
k-means假设连续变量.即使是单热编码,对分类数据的使用也是值得怀疑的.它有时候工作"好",但几乎没有工作"好".