Besoin d'aide : Regroupement de valeurs catégorielles, recherche du nombre optimal de catégories et d'exceptionsGens,
J'ai un problème pour lequel j'espère que quelqu'un m'aidera à trouver une solution, ou au moins me poussera dans la bonne direction.
Alors, disons que nous avons N outils. Ils ont plusieurs attributs, disons 10. Cela peut être le numéro de modèle exact, la couleur, les cloches et les sifflets, les modifications, etc.
Ils ont également des centaines de paramètres. Certains peuvent être identiques pour tous les outils, d'autres peuvent dépendre d'une combinaison d'attributs ou d'un seul attribut.
Et j'ai besoin de gérer toutes ces centaines de paramètres. Ces paramètres peuvent changer et être différents de ce qu'ils devraient être et je connais chaque paramètre à tout moment.
Maintenant, l'approche est la suivante : diviser tous les outils en quelques grands groupes, appelons-les catégories, qui sont définis par des combinaisons d'attributs. Disons que tous les outils du modèle A et de couleur bleue sont une catégorie, le modèle A de couleur rouge est la deuxième catégorie et le modèle B est la troisième catégorie, quelle que soit la couleur.
Maintenant, tous les paramètres ne seront pas les mêmes dans une même catégorie. Certains paramètres spécifiques peuvent être différents entre la cloche verte de couleur rouge du modèle A et la cloche jaune de couleur rouge du modèle A. Nous trouvons donc la combinaison la plus courante et l'appelons "par défaut" pour cette catégorie. Tous ceux qui sont différents, nous devons leur expliquer et mettre une sorte de commentaire pour eux qui explique pourquoi le paramètre est différent.
Finalement, nous aurons deux nombres inconnus : le nombre de catégories dans lesquelles nous devons le diviser et le nombre de commentaires d'exception que nous devons remplir pour les paramètres qui ne correspondent pas à celui de « par défaut ».
Si nous définissons une catégorie, il sera facile de maintenir une catégorie, mais nous aurons trop d'exceptions à la "valeur par défaut" pour être gérables. Si nous créons une catégorie pour presque chaque combinaison d'attributs, nous n'aurons pas à gérer trop d'exceptions par rapport à "par défaut", mais nous aurons du mal à gérer autant de catégories.
Le problème est basé sur l'ensemble de données, trouver le nombre optimal de catégories, où il a à la fois une quantité raisonnable de catégories avec une quantité raisonnable d'exceptions.
Des idées sur la façon d'aborder la résolution de ce problème?
Merci,
M
Re : Besoin d'aide : Regroupement de valeurs catégorielles, recherche du nombre optimal de catégories et d'exceptionsTous,
Merci pour le commentaire.
Voici la voie que j'ai choisie pour aborder ce problème.
Ma table initiale était mes outils sous forme de colonnes et mes lignes sont des valeurs pour différents paramètres. Également une colonne pour le nom du paramètre.
La première chose que j'ai faite a été d'empiler toutes les colonnes d'outils. Je me suis donc retrouvé avec trois colonnes : Tool, Parameter Tag, Parameter Value. Aucun attribut mentionné - aucun modèle, rien... !
La valeur du paramètre est une valeur nominale car de nombreuses valeurs sont au format HEX.
Ensuite, j'ai démarré la plate-forme de clustering hiérarchique et choisi les options suivantes (répertoriées celles qui sont différentes de celles par défaut) : Choisissez "Les données sont empilées" (parce que je viens de les empiler !), J'ai obtenu quelques rôles supplémentaires disponibles. Casted Parameter Values to Y, Parameter Tag to Attribute ID, Tool to Object ID.
Vous avez un bel arbre de regroupement.
Ci-dessous se trouvait le graphique des distances.
Les premières scissions étaient responsables de l'essentiel des paramètres. Et sur la base de la répartition des outils (rappelez-vous que nous ne savons pas dans cette analyse quel est le modèle, la couleur, les cloches et les sifflets de chaque outil) entre les clusters, ils étaient responsables de ce qui suit :
1ère division : Modèles d'outils
2ème division : sous-modèle d'outil sur l'un des modèles
3e division : version majeure du sous-système
et cetera.
Le graphique ci-dessous - le graphique de distance, à ma connaissance, donne essentiellement la distance moyenne pour tous les membres du cluster par rapport à la moyenne du cluster. Pour les valeurs nominales, cela est défini par la commande. Dans un certain sens, cela peut servir d'estimation des valeurs aberrantes. Il sature à peu près après la séparation des tiers. Ce qui signifie que si nous devions aller avec 2 ou 3 clusters, nous devrions expliquer beaucoup d'exceptions. Avec 4 clusters, c'est nettement moins sur cet ensemble de données. Nous avons choisi 5 clusters.
On peut enregistrer une table des moyennes de cluster (qui devrait fondamentalement être la valeur la plus fréquente pour les valeurs catégorielles), et je crois que si je sauvegarde une telle table pour chaque nombre de clusters, et que je joins ces tables à la table principale (ou que je joins virtuellement - clin d'œil à gzmorgan), je peux détecter si une valeur spécifique est différente de la valeur POR/default/Golden et donc calculer un nombre exact d'exceptions pour chaque nombre de clusters.
Ensuite, la seule chose à décider - combien de clusters (catégories) vous souhaitez gérer et combien de dispositions vous êtes prêt à faire pour ces exceptions.
Merci,
M
Re : Besoin d'aide : Regroupement de valeurs catégorielles, recherche du nombre optimal de catégories et d'exceptionsVallée,
Oui, vous avez raison, j'ai finalement arrêté sur l'analyse par cluster. Le seul détail est que j'ai de nombreux paramètres sous forme de valeurs HEX. Ce qui, si je veux éviter de nombreux scripts essayant de les analyser, me réduit à un clustering hiérarchique qui peut traiter des valeurs nominales. La bonne chose - je n'ai pas à aller avec les composants principaux.
Je décrirai plus dans un commentaire séparé.Re : Besoin d'aide : Regroupement de valeurs catégorielles, recherche du nombre optimal de catégories et d'exceptionsMerci beaucoup pour la réponse, ça m'a donné matière à réflexion. La principale chose que je veux mentionner est que je ne m'intéresse qu'à la correspondance/à l'inadéquation, quelle que soit la distance entre les valeurs. Comme je l'ai mentionné, le problème parent est la gestion de centaines de constantes\paramètres d'outil. En ce sens, j'ai besoin de savoir s'il s'agit de POR ou de non-POR, ou en d'autres termes, s'il y a une incompatibilité avec la liste des paramètres d'or. Le problème consiste essentiellement à trouver un nombre optimal de listes de paramètres d'or. Une autre chose est que de nombreux paramètres sont au format HEX. Sans fonctions intégrées qui aideraient à les analyser facilement en décimal, cela resterait comme une valeur de caractère, ce qui signifie que je ne peux faire qu'une analyse catégorique. D'une part, cela simplifie les choses puisque la distance entre les paramètres va être calculée en fonction de l'ordre des valeurs, pour autant que je sache. D'un autre côté, cela limite les types d'analyses que je peux effectuer.
Plus d'informations à ce sujet dans un commentaire séparé ci-dessous. Je vais décrire une méthodologie, du moins comment je la comprends, puis plus tard peut-être la solution finale.
Merci encore!Re : Besoin d'aide : Regroupement de valeurs catégorielles, recherche du nombre optimal de catégories et d'exceptionsCela ressemble à un problème de regroupement pour moi.Vous n'êtes pas sûr du nombre de clusters et de leur composition et souhaitez identifier les écarts au sein du cluster.Étant donné le nombre de variables dont vous disposez, vous devrez peut-être réduire la dimensionnalité avant le regroupement, par exemple en utilisant des composants principaux.Je dirais que mes propres efforts de regroupement ont été moins que satisfaisants - les grappes correspondent rarement à des groupes identifiables (je l'ai généralement fait avec des consommateurs individuels ou des candidats à l'université, par exemple).Il me semble que vous souhaitez définir les clusters à l'avance, par exemple en regroupant des outils "similaires".Le problème est que ce que vous pensez être "similaire" peut différer de ce que les données disent être "similaire".Si vous pensez avoir une idée des groupes, une approche pourrait consister à comparer ce regroupement ex ante avec ce qu'un algorithme de regroupement produit, puis à explorer les différences entre les deux.
Re : Besoin d'aide : Regroupement de valeurs catégorielles, recherche du nombre optimal de catégories et d'exceptionsmiguello,
Cela rappelle une analyse de profil ou K Nearest Neighbor. Créez une table où chaque ligne est une entité et autre que la colonne d'entité, il y a une colonne pour chaque attribut. Je suggère qu'il y ait un code pour l'attribut, comme 1 = rouge et 2 = vert, etc., puis selon votre exemple hypothétique, la colonne pour la cloche aura ces valeurs.Je vous suggère de spécifier des étiquettes pour les valeurs.
Ensuite, vous pouvez définir une ou plusieurs métriques et pondérations.Par exemple, il peut être très important que certaines spécifications correspondent : le groupe A doit être un pulvérisateur à grande capacité (> quelques unités cubiques) et le groupe C une faible capacité (< quelques unités cubiques) et le groupe B est autre. Pour affiner ou sous-définir les groupes, vous pouvez utiliser :
- Analyse de classe latente - notez que les catégories n'ont pas besoin d'être codées, mais le codage peut simplifier d'autres analyses.
- une analyse des correspondances multiples, qui montrerait les appariements d'attributs probables
- k méthodes du plus proche voisin, voir Fonctions d'index de script : KDE (statistique) et KDTable (matrice).
Cela dit, souvent les groupes sont définis au fil du temps par leurs résultats. Puisqu'il se rapproche des élections américaines de mi-mandat, je vais l'utiliser comme exemple. Les pronostics sont souvent faits sur les classes. Ces classes sont définies/affinées en fonction de l'âge, du sexe, de l'éducation, de la ville par rapport à la campagne, de l'état, de la religion, de la fréquentation de l'église, du nombre de fois voté à mi-mandat, en d'autres termes un mélange de données démographiques sociales et spatiales mais aussi de comportement (# fois voté, fréquentation de l'église).
En ce qui concerne l'inadéquation des entités, cela nécessitera un peu plus de soin. Supposons que les entités du groupe A correspondent étroitement pour la configuration, sauf que les entités plus anciennes n'ont pas 3 capteurs in situ et que les entités plus récentes ont la lecture des performances des capteurs. L'inadéquation devra être calculée à partir des données disponibles. Poursuivant le scénario, supposons qu'il y ait 100 métriques pour tous les outils du groupe A, mais que les plus récents aient les 3 supplémentaires, soit 103. De nombreuses plates-formes JMP gèrent facilement les valeurs manquantes, mais la façon dont vous gérez cela dépend de l'analyse/des critères que vous pouvez utiliser pour identifier une non-concordance.
J'aime la jointure virtuelle JMP.Si je faisais cette analyse, je pourrais créer ma table d'attributs d'entité pour définir les catégories, puis la joindre virtuellement à la table des autres variables. Cela facilite également la tâche si les autres variables ont plusieurs valeurs (lignes) par exécution.
Ce ne sont que des miettes. Bonne chance avec cette tâche intéressante.