Comprendre kNN pour les données multidimensionnelles


10

Je comprends la prémisse de l'algorithme kNN pour les données spatiales. Et je sais que je peux étendre cet algorithme à utiliser sur n'importe quelle variable de données continue (ou données nominales avec distance de Hamming). Cependant, quelles stratégies sont utilisées pour traiter des données de dimension supérieure?

Par exemple, disons que j'ai une table de données (x [1], x [2], x [3], ..., x [n]) et que je veux construire un ensemble de classificateurs pour prédire l'une de ces colonnes (disons x [n]). En utilisant l'algorithme kNN, je choisirais deux colonnes parmi les colonnes restantes (x [1] -x [n-1]) pour m'entraîner. Alors disons que je pourrais choisir x [1] et x [2] et construire un classificateur à partir de ceux-ci. Ou je pouvais choisir x [1] et x [4], ou je pouvais choisir x [5] et x [8], etc. Je pouvais même choisir une seule colonne et construire des classificateurs à partir de cela, ou 3 colonnes et construire un classificateurs hors cela. Y a-t-il un avantage à utiliser des dimensions plus élevées (2D, 3D, etc.) ou devriez-vous simplement créer des classificateurs à une dimension x-1 et agréger leurs prédictions d'une manière ou d'une autre?

Puisque la construction de tous ces classificateurs à partir de toutes les combinaisons potentielles des variables serait coûteuse en calcul. Comment pourrais-je optimiser cette recherche pour trouver les meilleurs classificateurs kNN de cet ensemble? Et, une fois que j'ai trouvé une série de classificateurs, quelle est la meilleure façon de combiner leur sortie à une seule prédiction? Le vote pourrait être la réponse la plus simple à cette question. Ou pondérer chaque vote par les taux d'erreur des données de formation pour chaque classificateur.

Comment la plupart des implémentations appliquent-elles kNN à un apprentissage plus généralisé?


voir Beyer et al. sous quand-est-le plus proche voisin-significatif-aujourd'hui : kNN n'est parfois PAS significatif. Quels sont vos N, dim, k?
denis

Réponses:


4

Y a-t-il un avantage à utiliser des dimensions plus élevées (2D, 3D, etc.) ou devriez-vous simplement créer des classificateurs à une dimension x-1 et agréger leurs prédictions d'une manière ou d'une autre?

Cela dépend si vos fonctionnalités sont informatives ou non. Pensez-vous que certaines fonctionnalités ne seront pas utiles dans votre tâche de classification? Pour avoir une meilleure idée de vos données, vous pouvez également essayer de calculer la corrélation par paire ou les informations mutuelles entre la variable de réponse et chacune de vos fonctionnalités.

Pour combiner toutes (ou un sous-ensemble) de vos fonctionnalités, vous pouvez essayer de calculer la distance L1 (Manhattan) ou L2 (Euclidienne) entre le point de requête et chaque point `` d'entraînement '' comme point de départ.

Étant donné que la construction de tous ces classificateurs à partir de toutes les combinaisons potentielles des variables serait coûteuse en termes de calcul. Comment pourrais-je optimiser cette recherche pour trouver les meilleurs classificateurs kNN de cet ensemble?

C'est le problème de la sélection des sous-ensembles de fonctionnalités. Il y a beaucoup de travaux académiques dans ce domaine (voir Guyon, I., et Elisseeff, A. (2003). An Introduction to Variable and Feature Selection. Journal of Machine Learning Research, 3, 1157-1182. Pour une bonne vue d'ensemble ).

Et, une fois que j'ai trouvé une série de classificateurs, quelle est la meilleure façon de combiner leur sortie à une seule prédiction?

Cela dépendra si les fonctions sélectionnées sont indépendantes ou non. Dans le cas où les fonctionnalités sont indépendantes, vous pouvez pondérer chaque fonctionnalité par ses informations mutuelles (ou une autre mesure de l'informativité) avec la variable de réponse (quelle que soit la classification). Si certaines fonctionnalités sont dépendantes, un seul modèle de classification fonctionnera probablement mieux.

Comment la plupart des implémentations appliquent-elles kNN à un apprentissage plus généralisé?

En permettant à l'utilisateur de spécifier sa propre matrice de distance entre l'ensemble de points. kNN fonctionne bien lorsqu'une mesure de distance appropriée est utilisée.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.