import matplotlib.pyplot as pltimport seaborn as snsimport numpy as npimport warningsimport graphvizwarnings.filterwarnings('ignore')%matplotlib inlineimport osfrom sklearn.cluster import KMeans#Importing the datasetDiabetes2 = pd.read_csv('C:\\Users\\PPP\\Desktop\\Python_Practice\\Datasets\\Diabetes\\diabetic_data.csv', index_col=False)#Split into input and output featuresy = Diabetes2["readmittedFL"]X = Diabetes2[["time_in_hospital","num_lab_procedures","num_procedures","num_medications", "number_outpatient","number_emergency","number_inpatient","number_diagnoses"]]X.head()y.head()#Select the annual income and the spending score columns KMeans = KMeans()X_array=X.iloc[0:8:1].valuesy_kmeans = KMeans.predict(X_array)plt.scatter(X_array[:, 0], X_array[:, 1], c=y_kmeans, s=50, cmap='viridis')
我刚开始练习KMeans,就遇到了这个错误。我无法理解哪里出了问题。
当我运行命令 y_kmeans = KMeans.predict(X_array)
时,显示了一个错误 TypeError: predict() 缺少一个必需的位置参数: X
我该如何解决这个错误?
回答:
你需要使用 fit_predict
而不是 predict
- fit_predict : 训练并预测你的训练点聚类
- Predict: 用于在获得不在训练数据中的新数据点时进行推断
此外,你没有通过 n_clusters
参数指定聚类数量,它将采用默认值8
更多信息请查看这个 链接