[Python] Le résultat du clustering par K-means est réduit en dimension par PCA et tracé sur un diagramme de dispersion.

Ce n'était pas probable, alors j'ai écrit un article. Supposons qu'il y ait 6 données avec des caractéristiques à 4 dimensions.

sample.csv


1,2,3,4
1,2,3,5
1,2,4,5
4,3,2,1
5,3,2,1
5,4,2,1

Après avoir regroupé cela par K-means, la dimension est réduite par PCA et tracée sur le diagramme de dispersion. La documentation de K-means est ici, la documentation de PCA est [ici](http: // scikit-learn) .org / stable / modules / generated / sklearn.decomposition.PCA.html), documentation pyplot ici.

sample.py


# -*- coding: UTF-8 -*-
import numpy as np
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

# sample.Charger csv
users = np.loadtxt('./sample.csv', delimiter=",")

# K-Clustering au moyen
model = KMeans(n_clusters=2).fit(users)

#Réduction de dimension avec PCA
pca = PCA(n_components=2)
users_r = pca.fit_transform(users)

#Tracez les résultats sur un nuage de points
plt.figure()
for (i, label) in enumerate(model.labels_):
    if label == 0:
        plt.scatter(users_r[i, 0], users_r[i, 1], c='red')
    elif label == 1:
        plt.scatter(users_r[i, 0], users_r[i, 1], c='blue')
plt.show()

Le diagramme de dispersion suivant est obtenu. figure_1.png

Recommended Posts

[Python] Le résultat du clustering par K-means est réduit en dimension par PCA et tracé sur un diagramme de dispersion.
Remarques sur la coloration par valeur dans le diagramme de dispersion matplotlib
Python a + = b et a = a + b sont différents
Text mining: distribution de densité de probabilité sur hypersphère et clustering de texte avec KMeans
Les modules et packages en Python sont des "espaces de noms"
Un mémo contenant Python2.7 et Python3 dans CentOS
Créer un diagramme de dispersion elliptique en Python sans utiliser une distribution normale multivariée
Dessinez une ligne de pliage / diagramme de dispersion avec python matplotlib pour fichier CSV (2 colonnes)
[Python] Tracer les données par préfecture sur une carte (nombre de voitures possédées dans tout le pays)