Я построил некоторые точки данных, используя кластеризацию K-Means.Снимок экрана доступен по адресу "https://imageshack.com/i/pomMJXMkj".. Когда я визуализирую эти точки данных, ясно видно, что многие точки не находятся в их соответствующих кластерах, и эта зеленая точка является одной из них, которая находится далеко от своего центроида и явно оченьрядом с синим центроидом. В соответствии с алгоритмом K-Means точка добавляется в этот кластер с ближайшим центроидом. Но почему это не так?
Код для следующего визуального элемента упомянут ниже иссылка для набора данных: "https://github.com/Vivek-Nimmagadda/Player-Prediction-Using-Python/blob/master/Bowlers/Bowlers.csv":
# Importing the Batsmen Dataset
dataset = pd.read_csv('Bowlers\Bowlers.csv')
X = dataset.iloc[:, [1, 2, 3, 4, 5, 6, 7]].values
# Using Elbow Method to find the optimal number of Clusters
from sklearn.cluster import KMeans
wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, init='k-means++', n_init=10, max_iter=300, random_state=0)
kmeans.fit(X)
wcss.append(kmeans.inertia_)
plt.plot(range(1, 11), wcss)
plt.title('The Elbow Method')
plt.xlabel('Number of Clusters')
plt.ylabel('WCSS')
plt.show()
# Fitting K-Meaens Clustering Algorithm to the Dataset
kmeans = KMeans(n_clusters=4, init='k-means++', n_init=10, max_iter=300, random_state=0)
y_kmeans = kmeans.fit_predict(X)
# Visualising the Clusters
plt.scatter(X[y_kmeans == 0,2], X[y_kmeans == 0,4], s = 100, c = 'blue', label = 'Good Form')
plt.scatter(X[y_kmeans == 1,2], X[y_kmeans == 1,4], s = 100, c = 'purple', label = 'Average Touch')
plt.scatter(X[y_kmeans == 2,2], X[y_kmeans == 2,4], s = 100, c = 'green', label = 'Peek Form')
plt.scatter(X[y_kmeans == 3,2], X[y_kmeans == 3,4], s = 100, c = 'red', label = 'Poor Form')
plt.scatter(kmeans.cluster_centers_[:, 2], kmeans.cluster_centers_[:, 4], s = 150, c = 'cyan', label = 'Centroids')
plt.title('Recent Form of Bowlers Based on their Stats')
plt.xlabel('Wickets')
plt.ylabel('Average')
plt.legend()
plt.show()
Мой ожидаемый результат - точная визуализация всех точек данных в их соответствующих кластерах.Принимая во внимание, что это случайное отображение точек.Может кто-нибудь, пожалуйста, помогите мне исправить эту ошибку?