Comment puis-je déterminer algorithmiquement les valeurs de T1 et T2 pour la mise en cluster de la canopée?

8

J'essaie d'utiliser le clustering de la canopée pour fournir des clusters initiaux pour KMeans dans mahout.

Existe-t-il un moyen de déterminer / approximer les valeurs des seuils de distance T1 et T2 de manière algorithmique? En ce moment, j'ai T1 = 100 et T2 = 1, ce qui ne semble rien faire de bien.

Rohan Monga
la source
Cette référence indique vaguement que T1 et T2 peuvent être définis avec une «validation croisée». Notez que ces seuils dépendent intimement de la nature de la métrique, de la dimension du problème, et même de la distribution des données.
whuber
J'ai un ensemble de données assez grand, avec des dimensions> 100K (quelques concerts), existe-t-il un moyen d'estimer la technique de distribution / d'échantillonnage qui fonctionnerait?
Rohan Monga
Il a donc quelques centaines de dimensions k. Combien de lignes? Est-ce continu ou catégorique? Est-ce rare? Pourquoi vous regroupez-vous dessus - quel est le but? Avez-vous essayé k-means normal? Si vous n'aimez pas votre dimensionnalité - avez-vous envisagé la réduction de dimensionnalité ou l'importance variable?
EngrStudent

Réponses:

1

Comme le note Whuber, les auteurs de l'algorithme de clustering de la canopée suggèrent que T1 et T2 peuvent être définis avec une validation croisée. Cependant, ces paramètres pourraient être réglés de la même manière que tout autre hyper-paramètre. L'une des techniques les plus courantes est la recherche dans la grille, où une plage est spécifiée pour chaque paramètre, ainsi qu'une taille de pas pour la façon dont les paramètres sont modifiés à chaque itération. Par exemple, supposons que nous ayons spécifié T1 pour avoir une plage de valeurs de 25 à 100 avec une taille de pas de 25. Cela signifierait que les valeurs possibles de T1 à essayer seraient (25, 50, 75, 100). De même, nous pourrions définir T2 pour avoir des valeurs possibles entre 1-4, avec une taille de pas de 1, de sorte que les valeurs possibles soient (1,2,3,4). Cela signifierait qu'il y avait 16 ensembles de paramètres possibles à essayer. Comme pour tout autre algorithme de classification ou de clustering, évalueriez-vous son efficacité en calculant son score F1, sa précision / erreur ou toute autre mesure de performance pour déterminer le meilleur ensemble des 16 ensembles de paramètres. En plus de la recherche dans la grille, d'autres algorithmes d'optimisation d'hyper-paramètre incluent Nelder-Mead ,algorithmes génétiques , recuit simulé et optimisation de l'essaim de particules , entre autres. Ces algorithmes vous aideront à déterminer les valeurs appropriées pour T1 et T2 de manière automatisée.

Vous avez indiqué ci-dessus que vous disposiez d'un ensemble de données à 100 000 dimensions. Faites-vous référence au nombre de lignes ou au nombre de colonnes dans vos données? Si vous faites référence au nombre de colonnes, je suggérerais d'effectuer une combinaison de sélection de fonctionnalités basée sur la variance des fonctionnalités individuelles et l'extraction des fonctionnalités via l' analyse des composants principaux (PCA) ou Kernel-PCA . Même si plusieurs de vos fonctionnalités sont utiles (c.-à-d. Fournir un gain d'informations pour faire la distinction entre les clusters / classes / valeurs de variable de sortie), avoir trop de fonctionnalités peut signifier que votre algorithme de clustering n'est pas en mesure de déterminer les distances appropriées entre les instances.

Dirigo
la source