поэтому я пытаюсь сделать какой-то код для набора данных радужной оболочки и использовать для него KMeans. Все хорошо, но похоже, что у моего кода для центроида есть проблема, которая закончилась этой ошибкой:
plt.scatter(*centroid, c="blue")
TypeError: scatter() got multiple values for argument 'c'
Это это мой код
import pandas as pd
from sklearn.cluster import KMeans
from sklearn import metrics
import numpy as np
from matplotlib import pyplot as plt
direktori = 'iris.data.csv'
names = ['sepal-length','sepal-width','petal-length','petal-width','class']
dataset = pd.read_csv(direktori, names=names)
#ambil variabel untuk cluster
df = np.array(dataset[['sepal-length','sepal-width','petal-length','petal-width']])
kelas = np.array(dataset['class'])
print('\n')
for i in range (2,8):
kmeans = KMeans(n_clusters=i)
kmeans.fit(df)
label = kmeans.labels_
#evalauasi menggunakan FMI Index
#ambil label asli dari data
label_asli = kelas
label_prediksi = label
FMI = metrics.fowlkes_mallows_score(label_asli, label_prediksi)
print("FMI values with n_clusters = ", i, "= ", FMI)
print('\n')
for i in range (2,8):
kmeans = KMeans(n_clusters=i)
kmeans.fit(df)
centroids= kmeans.cluster_centers_
label = kmeans.labels_
labels= kmeans.predict(df)
CHIndex = metrics.calinski_harabasz_score(df, label)
print("CH index with n_clusters = ", i, " = ", CHIndex)
#menggunakan sepal-length dan sepal-width sebagai bahan untuk visualisasi
fig = plt.figure(figsize=(5,5))
plt.scatter(df[:, 0], df[:, 1], c=labels, alpha=0.5, edgecolor='k', cmap="viridis")
#Scatter fuction that caused the error
for idx, centroid in enumerate(centroids):
plt.scatter(*centroid, c="blue")
plt.xlim(0, 8.5)
plt.ylim(0, 8.5)
plt.title('Kmeans Visualization for n_clusters = %i' %i)
plt.xlabel('sepal-length')
plt.ylabel('sepal-width')
plt.show()
есть ли часть, которую я должен исправить? пожалуйста, дайте мне подробную информацию о том, какую часть я должен изменить с помощью новой строки кода.