Python sklearn-KMeans comment obtenir les valeurs dans le cluster
Je suis en utilisant le sklearn.cluster KMeans paquet. Une fois que j'ai fini le clustering si j'ai besoin de savoir quelles valeurs ont été regroupées comment puis-je le faire?
Dire que j'ai eu 100 points de données et KMeans m'a donné 5 cluster. Maintenant, je veux savoir les points de données sont dans le groupe 5. Comment puis-je le faire.
Est-il une fonction de donner l'id du cluster et il donnera la liste de tous les points de données d'un cluster
Grâce.
J'ai juste apporté une réponse répondre à votre question. Laissez-moi savoir si cela aide.
vous pouvez utiliser .labels_ pour vérifier
vous pouvez utiliser .labels_ pour vérifier
OriginalL'auteur user77005 | 2016-03-24
Vous devez vous connecter pour publier un commentaire.
J'ai eu une demande similaire et je suis en utilisant des pandas pour créer un nouveau dataframe avec l'index du jeu de données et les étiquettes de colonnes.
Une fois le DataFrame est disponible est assez facile de filtre,
Par exemple, pour filtrer tous les points de données dans le cluster 3
Lors de l'apprentissage de nouveaux modèles, je semble avoir des difficultés avec cette dernière partie du retour de la modélisation des données à la source originale. La plupart des tutoriels ne montrent pas que. Je vous remercie pour votre réponse.
Êtes-vous sûr qu'il va être indexé correctement? Est-ce que votre solution de préserver l'ordre des lignes lors de la reconstruction de dataframe de
km.labels_
comme il était avant le clustering?OriginalL'auteur Praveen
Si vous avez un grand jeu de données et vous avez besoin d'extraire des grappes sur la demande vous le verrez un peu de vitesse à l'aide de
numpy.où
. Voici un exemple sur l'iris dataset:Définir une fonction pour extraire les indices de la cluster_id vous fournir. (Ici, deux fonctions sont, pour l'analyse comparative, ils reviennent tous les deux les mêmes valeurs):
Disons que vous voulez tous les échantillons qui sont dans le groupe
2
:Numpy gagne la référence:
Maintenant, vous pouvez extraire tous de votre cluster de 2 points de données comme suit:
Double-vérifier les trois premiers indices de l'tronquée tableau ci-dessus:
OriginalL'auteur Kevin
Vous pouvez regarder attribut
labels_
Par exemple
Comme vous pouvez le voir le premier et le deuxième point est de cluster
1
, dernier point dans le groupe0
.voir la réponse que j'ai posté juste
OriginalL'auteur Farseer
Vous pouvez facilement stocker les étiquettes dans un tableau. Convertir le tableau d'une trame de données. Fusionner les données que vous avez utilisé pour créer des K-dire avec le nouveau bloc de données avec des clusters.
Afficher le dataframe. Maintenant, vous devriez voir la ligne avec le cluster correspondant. Si vous voulez la liste de toutes les données spécifiques de cluster, utilisez quelque chose comme données.loc[data['cluster_label_name'] == 2], en supposant que 2 de votre cluster pour l'instant.
OriginalL'auteur Sandeep Shahi
Pour obtenir les Identifiants des points/samples/observations qui sont à l'intérieur de chaque cluster, faire ceci:
Exemple à l'aide de données de l'Iris et une belle pythonic façon:
RÉSULTATS
OriginalL'auteur makaros