python - 绘制稀疏矩阵的 kmeans 簇
问题描述
我有一个 python 脚本,它对 svmlight 格式的数据文件进行聚类。我使用该函数sklearn.datasets.load_svmlight_file
从数据文件中加载数据。我知道这个函数返回一个稀疏矩阵。我需要散点图,请任何人帮助我。这就是我所做的:
import sklearn.datasets
import sys
from sklearn.cluster import KMeans
dataFilename = sys.argv[1]
X, y = sklearn.datasets.load_svmlight_file(dataFilename)
kmeans = KMeans(n_clusters = 3)
kmeans.fit(X)
labels = kmeans.labels_
print(labels)
centroids = kmeans.cluster_centers_
解决方案
如果没有数据集,我会建议以下内容:
由于
load_svmlight_file()
返回一个稀疏矩阵,因此在拟合模型之前使用转换X
为 NumPy 数组。samples = X.toarray()
使用以下方法绘制数据集的两个特征(例如):
plt.scatter(samples[:,0], samples[:,1], c=labels)
. 这会根据它们的预测标签对集群进行着色。按照这个
plt.scatter(centroids[:,0], centroids[:,1], marker='D')
来查看带有菱形的质心的位置。
请注意,它表示一个数组,其中包含数据集第 th 个特征的samples[:,n]
样本值。n
我希望这有帮助。如果没有,请告诉我。
推荐阅读
- c# - 将 Moq 与 Xunit 一起使用 - 单元测试 .net 核心 API
- c# - 如何使用 C# 驱动程序过滤 RethinkDB 中的数据?
- sql - 获取 SQL Server 中 UTF-8 编码字符串的 MD5 哈希值
- reactjs - React 如何使用私有路由处理联合登录重定向
- facebook-graph-api - Facebook Marketin API => 如何获取应用程序自定义事件的统计信息?
- java - 我可以在抽象类中使用 String 变量而不是 int
- ffmpeg - 无法运行为 puli 运行 supervisord 的最后一步
- python - Python 握手支持
- flask - 覆盖 prometheus flask exporter 默认路径参数
- flutter - 构建 Flutter 项目时找不到 firebase_core FlutterFire 插件错误