数据集文件:谷歌驱动链接
Hello Community,我需要关于如何在这个用例上应用KNN集群的帮助。
我有一个由(27884 ROWS, 8933 Columns)
组成的数据集
以下是数据集的预览
user_iD | b1 | b2 | b3 | b4 | >b5b6b7>2b8 | >b9<10>b11|||||
---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 7 | 2 | 3 | 80 | 40|||||
2 | 7 | 8<1><2>>4 | 6 | 5 | 9 | >10 | ||||
3 | 0 | 0 | 1 | 5 | 234 | 06 | ||||
4 | 1 | 7 | 2 | 38 | 05060 | 4 | ||||
5 | 0 | 4 | 7 | >0 | 6 | <1>53 | 00 | <2>|||
6 | 1 | 02 | 3 | 0 | 5 | 4 | 00 | 6 | 7 |
在K之后意味着您的数据集中还有一列
df["kmeans_cluster"] = model.labels_
要可视化数据点,必须选择2或3个轴(用于二维和三维图形(。然后,可以将kmeans_cluster
用于点的颜色,将user_iD
用于点的标签。
根据您的需要,您可以使用:
- b1和b2作为轴:看看这两本书如何影响Kmeans结果
- 前2或3个PCA组件(参见其他答案(
t-sne
或Umap
降维算法的结果
以下是一些可以使用的代码片段:link1、link2
旁注:在应用Kmeans之前,您可能需要删除user_id
列。
如果列数超过3列,则不能直接执行此操作。但是,您可以应用主成分分析来减少2列中的空间,并将其可视化。
pca_num_components = 2
reduced_data = PCA(n_components=pca_num_components).fit_transform(df3.iloc[:,1:12])
results = pd.DataFrame(reduced_data,columns=['pca1','pca2'])
sns.scatterplot(x="pca1", y="pca2", hue=df3['clusters'], data=results)
plt.title('K-means Clustering with 2 dimensions')
plt.show()