KMean 在时间序列数据帧上绘制带有质心的散点图



我正在处理一个熊猫时间序列数据帧,其中包含 2 列:时间戳和增量。
示例如下:

>> 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 

时间戳包含字符串和增量浮点数64。
我正在尝试运行 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(。

示例可视化

最新更新