1

J'ai essayé d'implémenter l'algorithme Neighbourhood Component Analysis (NCA) dans Octave, mais apparemment, il y a un problème avec mon code et je n'arrive pas à comprendre ce que c'est.Implémentation de l'analyse des composants voisins dans Octave/Matlab

Note: J'utilise la fonction de Carl Edward Rasmussen minimize pour la maximisation du négatif f.

Note 2: Les données de test que j'utilise sont les Wine dataset disponibles dans le référentiel UCI Machine Learning.

Répondre

1

Avec une aide extérieure, j'ai la réponse à la question. Le problème était que je supposant à tort que produit vectoriel de la différence de points de données i et j devrait être un vecteur ligne par colonne vecteur au lieu de l'inverse: gradient

+0

Alors, que pensez-vous de NCA? J'ai également réalisé une implémentation pour HeuristicLab et ajouté la possibilité d'utiliser un terme de régularisation que j'ai trouvé dans un article de LNCS. J'ai trouvé que NCA étire parfois tous les points très loin. Mais le plus gros problème est le temps d'exécution. Le calcul du gradient est très coûteux. – Andreas

+0

Oui, tout à fait d'accord sur les inconvénients. Cependant, je trouve l'algorithme extrêmement utile (et il se sent en quelque sorte pseudo-triche), mais il est idéal pour la visualisation, et donne aussi une sorte d'information utile à travers la transformation linéaire qui en résulte. – User3419

Questions connexes