【问题标题】:Visualization of K-Means Clustering of multiple columns多列 K-Means 聚类的可视化
【发布时间】:2022-06-16 03:38:36
【问题描述】:

数据集文件:google drive link

社区您好,我需要有关如何在此用例上应用 KNN 集群的帮助。

我有一个由(27884 ROWS, 8933 Columns)组成的数据集

这是一个数据集的小预览

user_iD b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11
1 1 7 2 3 8 0 4 0 6 0 5
2 7 8 1 2 4 6 5 9 10 3 0
3 0 0 0 0 1 5 2 3 4 0 6
4 1 7 2 3 8 0 5 0 6 0 4
5 0 4 7 0 6 1 5 3 0 0 2
6 1 0 2 3 0 5 4 0 0 6 7

这里的用户 ID 列代表:STUDENTS b1-b11栏:它们代表书籍章节和每个学生的顺序,他/她首先学习了哪个章节,然后是第二章,然后是第三章,依此类推。 0 条目表明该学生没有学习该特定章节。

这只是大数据集的一个小预览。 共有 27884 个用户和 8932 个章节,表示为 (b1--b8932)

这是完整的数据集形状信息

我正在应用 KMEANS 聚类。如何使用所有列可视化所有集群

正如我所说,有 27844 个用户和 8932 个其他列 我只使用 user_iD & b1 列就实现了。如何一次获取所有列?

到目前为止我已经尝试过什么

#Build and train the model
from sklearn.cluster import KMeans
model = KMeans(n_clusters=5)
model.fit(df3)

#See the predictions
model.labels_
model.cluster_centers_

#PLot the predictions against the original data set
fig = plt.figure(figsize=(6, 6))
#ax = fig.add_subplot(111)
plt.scatter(df3['user_iD'], df3['b1'],cmap='rainbow',
           linewidths=1, alpha=.7,
           edgecolor='k'
           )
plt.show()

这给了我基于单个列的聚类可视化。

【问题讨论】:

    标签: python visualization k-means


    【解决方案1】:

    好吧,如果您有超过 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()
    

    【讨论】:

      猜你喜欢
      • 2019-12-18
      • 2015-04-11
      • 1970-01-01
      • 2011-08-13
      • 2013-08-08
      • 2013-02-14
      • 2018-01-14
      • 2018-10-02
      • 2014-04-13
      相关资源
      最近更新 更多