Python 3.x PythonKmeans值错误
我正在尝试将一个pandas数据帧传递给sklearn包的kmeans算法。dataframe有一个日期索引,有52个日期(每周一个),列是不同的文章。列值是相应周的销售数量。为了更好地计算,我计算了百分比变化,结果如下:Python 3.x PythonKmeans值错误,python-3.x,pandas,scikit-learn,Python 3.x,Pandas,Scikit Learn,我正在尝试将一个pandas数据帧传递给sklearn包的kmeans算法。dataframe有一个日期索引,有52个日期(每周一个),列是不同的文章。列值是相应周的销售数量。为了更好地计算,我计算了百分比变化,结果如下: ARTICLE 47070868 489070875 29470899 99070943 \ DATE
ARTICLE 47070868 489070875 29470899 99070943 \
DATE
2017-01-02 0.000000 0.000000 0.000000 0.000000
2017-01-09 -0.015625 -0.074928 -0.083333 0.230769
2017-01-16 0.232804 0.007788 0.284091 0.062500
2017-01-23 0.051502 0.174652 0.011799 0.117647
2017-01-30 0.200000 -0.082895 0.008746 0.807018
2017-02-06 0.057823 0.040172 -0.020231 -0.411003
2017-02-13 0.000000 -0.037241 -0.014749 -0.087912
2017-02-20 0.125402 0.259312 0.218563 0.138554
2017-02-27 -0.265714 -0.271900 -0.233415 -0.343915
2017-03-06 0.470817 0.293750 0.448718 0.661290
2017-03-13 0.002646 0.013285 -0.057522 -0.048544
数据帧有52行和8753列。如果将数据帧传递给kmeans算法,则会出现以下错误:
ValueError:x和y必须具有相同的第一维度,但具有形状(52,)和(8753,)
代码如下:
kmeans = KMeans(n_clusters=3, random_state=0).fit(data_pct_change)
print(kmeans.labels_)
np.savetxt('log_sebastian2017.txt', kmeans.labels_, newline="\n")
for i, cluster_center in enumerate(kmeans.cluster_centers_):
plp.plot(data_pct_change.index, cluster_center, label='Center {0}'.format(i))
plp.legend(loc='best')
plp.show()
尝试绘图时,会在循环中抛出错误。如果我执行此代码:
kmeans = KMeans(n_clusters=3, random_state=0).fit(data_pct_change)
print(kmeans.labels_)
np.savetxt('log_sebastian2017.txt', kmeans.labels_, newline="\n")
for i, cluster_center in enumerate(kmeans.cluster_centers_):
plp.plot(cluster_center, label='Center {0}'.format(i))
plp.legend(loc='best')
plp.show()
它工作正常,但x轴和y轴的比例不正确,它在x轴上从0到大约8700(可能是8753,列数),在y轴上从0到10000(这也是错误的,数据帧中的最大百分比变化是17,6)
我做错了什么?此外,生成的标签数量也是错误的(在这两种情况下,算法为kmean.labels\uuu
打印长度为52的数组,但应为8573)
有人能帮我正确地进行聚类吗?对于kmeans来说,我的数据帧是否是错误的?数据\u pct\u change是否与您上面描述的原始数据(52x8753数据帧)具有类似的结构?如果没有,如何预处理数据?如果是,您是否正在尝试将具有类似销售额的周进行分组?听起来有点不寻常。无论如何,考虑提供完整的代码和数据集,以便其他人可以复制这个问题并帮助您描述数据是DataApPCtx更改的一个轴。