繁体   English   中英

时间序列数据框上带有质心的 KMeans 散点图

[英]KMeans scatter plot with centroids on timeseries data frame

我正在处理包含 2 列的 Pandas 时间序列数据框:时间戳和增量。
下面是一个例子:

>> df.head() 
   timestamp             delta 
0  2016-07-30 00:05:00     0.0 
1  2016-07-30 00:10:00  4265.0 
2  2016-07-30 00:15:00  4568.0 
3  2016-07-30 00:20:00  5857.0 
4  2016-07-30 00:25:00  3847.0 

时间戳包含字符串和增量 float64。
我正在尝试运行 KMeans (sklearn) 并绘制(使用 matplotlib)带有点和相对质心的散点图。

我的代码如下:

delta = df['delta'].values
delta = delta.reshape(-1, 1)
timestamp = df['timestamp'].values

km = KMeans(n_clusters=3, random_state=0)
km.fit(delta)
km.predict(delta)

plt.scatter(timestamp, delta, c=km.labels_)
plt.scatter(km.cluster_centers_[:, 0], km.cluster_centers_[:, 1], c='red', marker='x')
plt.show()

此代码返回以下错误:

索引错误:索引 1 超出轴 1 的范围,大小为 1

在这一行:

plt.scatter(km.cluster_centers_[:, 0], km.cluster_centers_[:, 1], c='red', marker='x')

如果我在没有错误的情况下运行代码,则正确绘制散点图。
我试图将时间戳转换为 float64 但没有成功。

有人可以帮我解决这个问题吗?

错误的原因是形状是[3, 1]。

一维有 3 个簇质心。 将第一个质心和第二个质心聚类绘制为 (x,y) 对是没有意义的。 因为此图中的所有质心都在 Y 轴上(因为 delta 在 Y 上)。 所以你必须绘制 (0, KMC1), (0, KMC2), (0, KMC3)。

示例性可视化

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM