Comment évaluer un modèle d'apprentissage sans surveillance avec des k-means

Après que vous avez choisi votre nombre de grappes pour l'analyse prédictive et avez mis en place l'algorithme pour remplir les clusters, vous avez un modèle prédictif. Vous pouvez faire des prédictions basées sur les nouvelles données entrantes en appelant le prédire fonction de l'instance de K-means et passant dans un tableau d'observations. Il ressemble à ceci:

>>> # Pour appeler la fonction prédire avec une seule observation >>> kmeans.predict ([5.1, 3.5, 1.4, 0.2]) Array ([1])

Quand le prédire fonction trouve le centre de l'amas que l'observation est plus proche de, il affiche l'indice de l'ensemble de ce centre de l'amas. Tableaux de Python sont indexés à 0 (ce qui est, le premier élément commence à 0). Observations plus proches d'un centre de l'amas seront regroupés dans ce cluster.

Dans cet exemple, l'algorithme k-means prédit que l'observation appartient à la classe 1 (Setosa dans ce cas) - une prédiction facile parce que la classe Setosa est linéairement séparables et loin des deux autres classes.

En outre, cet exemple comprend un peu la toute première observation de l'ensemble de données pour faire la prédiction vérifiable et facile à expliquer. Vous pouvez voir que les attributs de l'observation que nous essayons de prévoir sont très près du centre de la deuxième grappe (kmeans.cluster_centers_ [1]).




Pour voir les centres de cluster, tapez le code suivant:

>>> Kmeans.cluster_centers_array ([[5,9016129, 2,7483871, 4,39354839, 1,43387097], [5.006, 3.418, 1.464, 0.244], [6.85, 3,07368421, 5,74210526, 2,07105263]])

Pour voir les étiquettes de munitions que l'algorithme K-means produit, tapez le code suivant:

>>> Kmeans.labels_array ([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2,0, 2, 0, 2, 0, 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 2, 2,2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 0])

Vous pouvez également utiliser la prédire fonctionner pour évaluer un ensemble d'observations, comme indiqué ici:

>>> # Pour appeler la méthode prédire avec un ensemble de points de données >>> kmeans.predict ([[5.1, 3.5, 1.4, 0.2], [5.9, 3.0, 5.1, 1.8]]) Array ([1,0 ])

Bien que vous savez que la solution trois-cluster est techniquement correcte, ne soyez pas surpris si intuitivement la solution à deux-cluster semble chercher le meilleur. Si vous augmentez le nombre de grappes au-delà de trois ans, le taux de réussite de vos prédictions commence à se décomposer. Avec un peu de chance (et quelques devinettes instruits), vous aurez à choisir le meilleur nombre de clusters.

Considérons le processus que le mélange un peu de l'art avec la science. Même l'algorithme lui-même utilise aléatoire dans sa sélection des points de données initiales qu'il utilise pour commencer chaque grappe. Donc, même si vous êtes deviner, vous êtes en bonne compagnie.

L'évaluation de la performance d'un algorithme nécessite une étiquette qui représente le attendu valeur et un prédit la valeur à comparer avec. Rappelez-vous que lorsque vous appliquez un algorithme de clustering à un modèle d'apprentissage non supervisé, vous ne savez pas ce que les valeurs attendues sont - et vous ne donnez pas les étiquettes à l'algorithme de clustering.

L'algorithme met points de données en groupes sur la base des points de données qui sont similaires à l'autre- une différents points de données se retrouvent dans d'autres grappes. Pour l'ensemble de données Iris, K-means a pas de notion de Setosa, versicolor, ou Virginica classes- il ne sait qu'il est censé regrouper les données en trois groupes et de les nommer de façon aléatoire entre 0 et 2.

Le but de l'apprentissage non-supervisé est de trouver des relations significatives dans les données, de préférence où vous ne pouviez pas les voir autrement. Il est à vous de décider si ces relations sont une bonne base pour un aperçu des poursuites.


» » » » Comment évaluer un modèle d'apprentissage sans surveillance avec des k-means