Я использую 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_))