python中的聚类分析:ValueError:x和y必须大小相同

时间:2018-02-17 10:30:40

标签: python matplotlib scikit-learn

我尝试以下代码,但在执行时,它会显示以下错误:

  

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

1 个答案:

答案 0 :(得分:2)

你错过了这一行中的逗号:

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)

结果:

enter image description here