[PYTHON] Clustering avec scikit-learn (2)

Importance et objectif du clustering

Hier, j'ai expliqué les grandes lignes du clustering et le flux du clustering réel à l'aide de scikit-learn.

Clustering par scikit-learn (1)

Revenons aux bases et explorons ce qu'est le clustering en premier lieu.

Dans de nombreux algorithmes d'apprentissage automatique, les caractéristiques (éléments) sont représentées par des vecteurs. En algèbre linéaire, l'ensemble dans lequel la somme et le produit scalaire sont définis en interne s'appelle l'espace vectoriel, et ses éléments sont appelés le vecteur.

Grosso modo, le regroupement est une méthode permettant de calculer la similitude des quantités d'entités et de regrouper les mêmes.

Que les données originales soient du texte ou des images, lorsque le motif est reconnu et réduit à la quantité de caractéristiques, il devient possible de regrouper sans donner les données pour être un enseignant.

Par exemple, il peut être appliqué à diverses technologies telles que la collecte d'un nombre non spécifié de réponses au questionnaire entre des personnes similaires et l'extraction de la partie couleur de peau d'une image.

Calcul de la similitude

En lisant jusqu'ici, vous devriez avoir compris que la clé du clustering est de savoir comment trouver la similitude des ensembles.

Je vais vous expliquer le code avec le didacticiel scikit-learn. Clustering


labels_true = [0, 0, 0, 1, 1, 1]
labels_pred = [0, 0, 1, 1, 2, 2]
print ( metrics.adjusted_mutual_info_score(labels_true, labels_pred) )
# => 0.225042310598

labels_true = [0, 1, 2, 0, 3, 4, 5, 1]
labels_pred = [1, 1, 0, 0, 2, 2, 2, 2]
print ( metrics.adjusted_mutual_info_score(labels_true, labels_pred) )
# => -0.105263430575

labels_true = [0, 0, 0, 1, 1, 1]
labels_pred = [0, 0, 1, 1, 2, 2]

print ( metrics.homogeneity_score(labels_true, labels_pred) )
# => 0.666666666667

print ( metrics.completeness_score(labels_true, labels_pred) )
# => 0.420619835714

Comme vous pouvez le voir, scikit-learn peut trouver diverses similitudes.

Clustering

Essayons de regrouper avec le code d'hier. Puisque scikit-learn a un jeu de données, utilisez-le tel quel. Tout d'abord, préparez l'ensemble de données.


from sklearn import metrics
from sklearn.metrics import pairwise_distances
from sklearn import datasets

dataset = datasets.load_iris()
X = dataset.data
y = dataset.target

#Jetez un œil au contenu
print (X)
print (y)

Regroupons-nous avec le code d'hier.


import numpy as np
from sklearn.cluster import KMeans

kmeans_model = KMeans(n_clusters=3, random_state=1).fit(X)
labels = kmeans_model.labels_

#Essayez de calculer la distance euclidienne
print ( metrics.silhouette_score(X, labels, metric='euclidean') )

#Clustering à l'aide du code d'hier
clusters = make_cluster(X)

#Exporter le résultat dans un fichier
write_cluster(clusters, 'out.txt')

#Jetez un œil au contenu du clustering généré
print ( clusters )

Considération

En utilisant une puissante bibliothèque de clustering, on peut dire que le regroupement peut être facilement effectué et qu'il peut être appliqué à divers champs une fois que l'identité de la cible est extraite par reconnaissance de formes.

Recommended Posts

Clustering avec scikit-learn (2)
Clustering avec scikit-learn + DBSCAN
DBSCAN (clustering) avec scikit-learn
Isomap avec Scikit-learn
Clustering avec python-louvain
DBSCAN avec scikit-learn
PCA avec Scikit-learn
kmeans ++ avec scikit-learn
Regrouper les écoles représentatives à l'été 2016 avec scikit-learn
Validation croisée avec scikit-learn
SVM multi-classes avec scikit-learn
Apprentissage Scikit-Learn avec la chimioinfomatique
Installez scikit.learn avec pip
Calculer tf-idf avec scikit-learn
Essayez d'utiliser scikit-learn (1) - Clustering K par méthode moyenne
Réseau de neurones avec Python (scikit-learn)
J'ai essayé le clustering avec PyCaret
[Python] Régression linéaire avec scicit-learn
Clustering embarqué profond avec Chainer 2.0
Régression linéaire robuste avec scikit-learn
Recherche en grille d'hyper paramètres avec Scikit-learn
Créer un arbre déterminé avec scikit-learn
Segmentation d'image avec scikit-image et scikit-learn
Segmentation et regroupement de photos avec DBSCAN
Identifiez les valeurs aberrantes avec le classificateur de forêt aléatoire de scikit-learn
Cartes propres laplaciennes avec Scikit-learn (notes personnelles)
Factorisation matricielle non négative (NMF) avec scikit-learn
SVM essayant l'apprentissage automatique avec scikit-learn
Scikit-learn DecisionTreeClassifier avec des valeurs de type datetime
100 traitement du langage knock-97 (en utilisant scicit-learn): clustering k-means
Affinons les hyper paramètres du modèle avec scikit-learn!
Scikit-learn revisité
[Scikit-learn] J'ai joué avec la courbe ROC
Classification multi-étiquettes par forêt aléatoire avec scikit-learn
Implémentez un estimateur auto-créé minimal avec scikit-learn
Remplissez les valeurs manquantes avec Scikit-learn impute
Clustering des livres d'Aozora Bunko avec Doc2Vec
Visualisez l'arbre de décision scikit-learn avec Treemap de Plotly
Modèle de régression multivariée avec scikit-learn - J'ai essayé de comparer et de vérifier SVR