Cet article décrit la méthode K-means (clustering de données) et l'analyse des composants principaux qui peuvent être utilisées efficacement lors de l'analyse de données à l'aide des pandas de python. Afin de comprendre le clustering, il est bon de connaître à l'avance la moyenne, l'écart, la normalisation, etc. Ce serait bien si vous aviez les connaissances jusqu'au deuxième chapitre du livre, "Vous pouvez apprendre des statistiques pendant 4 ans à l'université en 10 heures." J'ai importé des pandas avec le nom pd à l'avance.
Algorithme de classification en k clusters
Technique pour réduire le nombre de dimensions (Comme il est difficile de sortir des données contenant 3 variables ou plus sur un plan, la réduction du nombre de dimensions permet de tracer sur un plan d'une manière facile à comprendre.)
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
Effectuer la standardisation à l'aide de fit_transform à partir de la bibliothèque chargée
Hypothèse: lire / éditer les données à analyser avec des pandas, etc. à l'avance, créer avec les variables suivantes (Les données suivantes stockent des données numériques telles que moyenne, médiane, max, min) Nom de la variable de données: an_data
sc = StandardScaler()
clustering_sc = sc.fit_transform(an_data)
Si vous définissez une valeur sur random_state, qui est une option de KMeans, vous pouvez obtenir le même résultat en spécifiant l'option avec la même valeur à partir de la prochaine fois. (La valeur par défaut est random_state = None, qui est traitée avec un nombre aléatoire différent à chaque fois)
kmeans = KMeans(n_cluster=<Nombre de clusters>, random_state=0)
clusters = kmeans.fit(clustering_sc)
Sortie des résultats du clustering dans une table
an_data["result_clustering"] = clusters.labels_
an_data.head()
hoge = clustering_sc
pca = PCA(n_components=2) #Spécifiez 2 pour le nombre de cotes à sortir dans un plan bidimensionnel
pca.fit(hoge)
hoge_pca = pca.transform(hoge)
pca_data = pd.DataFrame(hoge_pca)
Préparation de l'affichage graphique
import matplotlib as plt
%matplotlib inline #Pour l'affichage graphique avec jupyter
Puisqu'il a été groupé, essayez de le générer sous forme de diagramme de dispersion pour chaque étiquette de cluster.
for i in an_data["result_clustering"].unique():
tmp = pca_data.loc[pca_data["result_clustering"] == i]
plt.scatter(tmp[0], tmp[1], label=i)
plt.legend()
Recommended Posts