作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我第一次尝试使用 Python 和 Sci-Kit Learn 进行 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()
剧情:
具体问题:
最佳答案
了解 k 均值的局限性。
特别要注意的是
您必须删除所有标识符列
k-means 对尺度非常敏感。所有属性都需要根据其值范围、分布和重要性进行仔细调整。预处理至关重要!
k-means 假设变量是连续的。即使是单热编码的,对分类数据的使用也是值得怀疑的。它有时工作得“还不错”,但几乎从来没有工作过“好”。
关于python - 当我只在行中获得聚类时,如何微调 K 均值聚类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41325117/
我是一名优秀的程序员,十分优秀!