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.
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.
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 )
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