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.
clustering
Rohan Monga
la source
la source
Réponses:
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.
la source