Supposons que nous ayons un problème de classification et, dans un premier temps, nous voulons obtenir un aperçu des données et nous faisons t-SNE. Le résultat de t-SNE sépare très bien les classes. Cela implique qu'il est possible de construire un modèle de classification qui séparera également très bien les classes (si t-SNE ne se sépare pas bien, cela n'implique pas grand-chose).
Sachant que t-SNE se concentre sur la structure locale et qu'il peut bien séparer les classes: quels sont les algorithmes de classification qui devraient bien fonctionner sur ce problème? Scikit suggère SVM avec un noyau RBF gaussien, mais quels sont les autres?
classification
tsne
Tomek Tarczynski
la source
la source
Réponses:
D'abord une réponse brève, puis un commentaire plus long:
Réponse
Les techniques SNE calculent une matrice de similitude N × N à la fois dans l'espace de données d'origine et dans l'espace d'intégration de faible dimension de telle manière que les similitudes forment une distribution de probabilité sur des paires d'objets. Plus précisément, les probabilités sont généralement données par un noyau gaussien normalisé calculé à partir des données d'entrée ou de l'incorporation. En termes de classification, cela évoque immédiatement les méthodes d' apprentissage basées sur les instances . Vous en avez répertorié un: SVM avec RBF, et @amoeba a répertorié kNN. Il existe également des réseaux de fonctions de base radiales , dont je ne suis pas un expert.
Commentaire
Cela dit, je ferais doublement attention à faire des inférences sur un ensemble de données en ne regardant que les graphiques t-SNE. t-SNE ne se concentre pas nécessairement sur la structure locale. Cependant, vous pouvez l'ajuster pour ce faire en réglant le
perplexity
paramètre, qui régule (de manière approximative) la manière d'équilibrer l'attention entre les aspects locaux et mondiaux de vos données.Dans ce contexte,
perplexity
lui-même est un coup de couteau dans le noir sur le nombre de voisins proches que chaque observation peut avoir et est fourni par l'utilisateur. Le document original déclare: "Les performances du t-SNE sont assez robustes aux changements de perplexité, et les valeurs typiques se situent entre 5 et 50". Cependant, mon expérience est que tirer le meilleur parti de t-SNE peut signifier l'analyse de plusieurs parcelles avec différentes perplexités.En d'autres termes, le réglage
learning rate
etperplexity
, il est possible d'obtenir des graphiques 2D très différents pour le même nombre d'étapes de formation et en utilisant les mêmes données.Ce document Distill Comment utiliser t-SNE donne un excellent résumé des pièges courants de l'analyse t-SNE. Les points récapitulatifs sont les suivants:
Ces hyperparamètres (par exemple, le taux d'apprentissage, la perplexité) comptent vraiment
La taille des grappes dans un tracé t-SNE ne signifie rien
Les distances entre les clusters pourraient ne rien signifier
Le bruit aléatoire ne semble pas toujours aléatoire.
Vous pouvez voir des formes, parfois
Pour la topologie, vous pouvez avoir besoin de plusieurs tracés
Particulièrement à partir des points 2, 3 et 6 ci-dessus, je réfléchirais à deux fois avant de faire des inférences sur la séparabilité des données en examinant les graphiques t-SNE individuels. Il existe de nombreux cas où vous pouvez «fabriquer» des graphiques qui montrent des clusters clairs en utilisant les bons paramètres.
la source