Как я могу синхронизировать классификацию кластеров K Means Clustering, чтобы можно было оценить точность моей модели? - PullRequest
0 голосов
/ 08 апреля 2020

Я использую K Means Clustering в этом наборе данных и строю графики результатов K Means Clustering и исходного набора данных рядом, чтобы сравнить, насколько хорошим был результат. Я использую matplotlib для построения графика, используя параметр c, чтобы определить цвета для лучшего отображения. В моем наборе данных также есть один столбец классификации, который я тоже использую для классификации. Когда оба графика располагаются рядом, классификация, которую создал K Means, иногда отличается от оригинала, что приводит к одной плохой точности при использовании classification_report. Визуально результат очень хороший, но мне нужно определить для KMeans и моего исходного набора данных одну и ту же классификацию.

Я позволю коду и одному изображению лучше показать, что я имею в виду. Примечание: обратите внимание на цвета.

import seaborn as sns
import matplotlib.pyplot as plt

from sklearn.datasets import make_blobs

data = make_blobs(n_samples=200, n_features=2, centers=4, cluster_std=1.8)
plt.scatter(data[0][:, 0], data[0][:, 1], c=data[1], cmap='rainbow')
plt.show()

from sklearn.cluster import KMeans

kmeans = KMeans(n_clusters=4)
kmeans = kmeans.fit(data[0])

f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.set_title('Kmeans')
ax1.scatter(data[0][:, 0], data[0][:, 1], c=kmeans.labels_, cmap='rainbow')
ax2.set_title('Original')
ax2.scatter(data[0][:, 0], data[0][:, 1], c=data[1], cmap='rainbow')
plt.show()

from sklearn.metrics import classification_report

print(classification_report(data[1], kmeans.labels_))

Difference between some colors that are generating my imprecision

...