【问题标题】:Clustering analysis in python: ValueError: x and y must be the same sizepython中的聚类分析:ValueError: x and y must be the same size
【发布时间】:2018-07-28 03:57:24
【问题描述】:

我尝试了下面的代码,但是在执行时,它显示了以下错误:

(ValueError: x 和 y 的大小必须相同)

Data

代码:

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans


df1=pd.read_excel('F:/Test PCA/Week-7-MachineLearning/weather_V2.xlsx',sheetname='Sheet1', header=0,)

df=df1.dropna();

del df['rain_accumulation']; del df['rain_duration']
features=['air_pressure', 'air_temp', 'avg_wind_direction', 'avg_wind_speed', 'max_wind_direction',
    'max_wind_speed','relative_humidity']

select_df=df[features]; #print select_df.air_pressure

x=StandardScaler().fit_transform(select_df)

Kmeans=KMeans(n_clusters=12)
Model=Kmeans.fit(x);  #print Model
y_kmeans = Kmeans.predict(x)

data_labels=Kmeans.labels_;
centers=Model.cluster_centers_

plt.scatter(x[:, 0], x[:, 1], c=y_kmeans, s=50, cmap='viridis')
plt.scatter(centers[:0], centers[:1], color ='k')
plt.show()

【问题讨论】:

  • 我没有在您的代码中看到 y 并提供详细的回溯。
  • @AkshayNevrekar: x[:, 1] 是您在 plt.scatter 中看到的 Y。

标签: python matplotlib scikit-learn


【解决方案1】:

您在这一行中漏掉了逗号:

plt.scatter(centers[:0], centers[:1], color ='k')

所以散点图被不同大小的数组弄糊涂了:

In [34]: centers[:0].shape
Out[34]: (0, 7)

In [35]: centers[:1].shape
Out[35]: (1, 7)

应该是:

plt.scatter(centers[:, 0], centers[:, 1], color ='k', s=100)

结果:

【讨论】:

  • 非常感谢,MaxU。这很有帮助。
  • @Vanna,很高兴我能帮上忙 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
  • 1970-01-01
相关资源
最近更新 更多