
Я хочу идентифицировать кластеры с помощью этого многомерного набора данных, поэтому я попробовал алгоритм кластеризации k-средних с помощью следующего кода:
Код: Выделить всё
clustering_kmeans = KMeans(n_clusters=2, precompute_distances="auto", n_jobs=-1)
data['clusters'] = clustering_kmeans.fit_predict(data)
Код: Выделить всё
reduced_data = PCA(n_components=2).fit_transform(data)
results = pd.DataFrame(reduced_data,columns=['pca1','pca2'])
sns.scatterplot(x="pca1", y="pca2", hue=kmeans['clusters'], data=results)
plt.title('K-means Clustering with 2 dimensions')
plt.show()
[img]https://i .sstatic.net/odyR3.png[/img]
Итак, у меня есть следующие вопросы:
- Однако этот график PCA выглядит очень странно, поскольку весь набор данных разделен на два угла графика. Это вообще правильно или я что-то неправильно закодировал?
- Есть ли другой алгоритм кластеризации многомерных данных? Я смотрю на это, но не могу найти подходящий алгоритм для кластеризации многомерных данных... Как мне вообще реализовать, например. Иерархическая кластеризация Уорда в Python для моего набора данных?
- Почему мне следует использовать PCA для уменьшения размерности? Могу ли я также использовать SNE? Так лучше?
Подробнее здесь: https://stackoverflow.com/questions/696 ... ional-data
Мобильная версия