python:ValueError:x和y中的聚类分析必须具有相同的大小
我尝试了以下代码,但在执行时,它显示以下错误: (ValueError:x和y的大小必须相同) 代码:python:ValueError:x和y中的聚类分析必须具有相同的大小,python,matplotlib,scikit-learn,Python,Matplotlib,Scikit Learn,我尝试了以下代码,但在执行时,它显示以下错误: (ValueError:x和y的大小必须相同) 代码: 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/weath
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()
这行中缺少逗号:
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)
结果:
这行中缺少逗号:
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)
结果:
我在您的代码中没有看到y并提供详细的回溯。@AkshayNevrekar:x[:,1]是您在plt.scatter中看到的y。我在您的代码中没有看到y并提供详细的回溯。@AkshayNevrekar:x[:,1]是您在plt.scatter中看到的y。非常感谢,MaxU。这帮了大忙。@Vanna,很高兴我能帮上忙:)非常感谢,MaxU。这帮了大忙。@Vanna,很高兴我能帮上忙:)