使用python

时间:2018-07-02 11:55:34

标签: python matplotlib data-visualization plotly k-means

使用大约700,000行的数据集。我已经使用k均值对数据集进行了聚类。使用matplotlib,我尝试将这个结果簇与标签(注释)一起绘制-分别使用第一和第二主成分作为x&y轴。几次绘图创建后,控制台卡住,笔记本电脑挂起。我猜这是因为要执行重复操作以标记/注释图上的点。

random.seed(123)
kmeans = KMeans(n_clusters=2, n_init = 20, max_iter=10)
kmeans.fit(CSVdata)
labels = kmeans.labels_

X_norm = CSVdata
pca = PCA(n_components=2)
transformed = pd.DataFrame(pca.fit_transform(X_norm))
clusterLabels = labels
transformed['newLabel'] = lab

plt.scatter(transformed[clusterLabels==0][0], transformed[clusterLabels==0][1], label='Cluster 0', c='red')
plt.scatter(transformed[clusterLabels==1][0], transformed[clusterLabels==1][1], label='Cluster 1', c='blue')
plt.xlabel("PC1 : %0.2f" %(pca.explained_variance_ratio_[0] * 100) + " %")
plt.ylabel("PC2 : %0.2f" %(pca.explained_variance_ratio_[1] * 100) + " %")
for label, x, y in zip(transformed['newLabel'], transformed[0], transformed[1]):
    plt.annotate(label, xy=(x, y))

plt.legend()
plt.show()

使用相同技术可视化较小的数据集即可。下图是具有10,000行的数据集的外观。我故意将一些数据点标记为“ L”,而另一些则留空。

Clustered dataset (I have labelled/annotated actual data points as L)

在图上标记这么大的数据点是否有其他选择?

我也在python中查看了plotly包,结果不尽人意。

0 个答案:

没有答案