Ajude a entender o kNN para dados multidimensionais

10

Entendo a premissa do algoritmo kNN para dados espaciais. E sei que posso estender esse algoritmo para ser usado em qualquer variável de dados contínua (ou dados nominais com distância de Hamming). No entanto, quais estratégias são usadas ao lidar com dados dimensionais mais altos?

Por exemplo, digamos que eu tenha uma tabela de dados (x [1], x [2], x [3], ..., x [n]) e deseje criar um conjunto de classificadores para prever uma dessas colunas (diga x [n]). Usando o algoritmo kNN, eu selecionaria duas colunas das colunas restantes (x [1] -x [n-1]) para treinar. Então, digamos que eu possa escolher x [1] e x [2] e criar um classificador a partir deles. Ou eu poderia escolher x [1] e x [4], ou eu poderia escolher x [5] e x [8], etc. Eu poderia até escolher apenas uma coluna e criar um classificador a partir disso, ou 3 colunas e criar um classificador fora disso. Existe uma vantagem em usar dimensões mais altas (2D, 3D etc.) ou você deve apenas criar classificadores de dimensão única x-1 e agregar suas previsões de alguma forma?

Como construir todos esses classificadores a partir de todas as combinações potenciais das variáveis ​​seria caro em termos computacionais. Como otimizar essa pesquisa para encontrar os melhores classificadores kNN desse conjunto? E, depois de encontrar uma série de classificadores, qual é a melhor maneira de combinar sua saída com uma única previsão? A votação pode ser a resposta mais simples para essa pergunta. Ou ponderando cada voto pelas taxas de erro dos dados de treinamento de cada classificador.

Como a maioria das implementações aplica o kNN a um aprendizado mais generalizado?

chubbsondubs
fonte
veja Beyer et al. sob quando-é-o-próximo-vizinho-significativo-hoje : kNN às vezes NÃO é significativo. Quais são os seus N, dim, k?
Denis

Respostas:

4

Existe uma vantagem em usar dimensões mais altas (2D, 3D etc.) ou você deve apenas criar classificadores de dimensão única x-1 e agregar suas previsões de alguma forma?

Isso depende se seus recursos são informativos ou não. Você suspeita que alguns recursos não serão úteis na sua tarefa de classificação? Para ter uma idéia melhor dos seus dados, você também pode tentar calcular a correlação aos pares ou informações mútuas entre a variável de resposta e cada um dos seus recursos.

Para combinar todos (ou um subconjunto) de seus recursos, você pode tentar calcular a distância L1 (Manhattan) ou L2 (euclidiana) entre o ponto de consulta e cada ponto de 'treinamento' como ponto de partida.

Como construir todos esses classificadores a partir de todas as combinações potenciais das variáveis ​​seria caro em termos computacionais. Como otimizar essa pesquisa para encontrar os melhores classificadores kNN desse conjunto?

Esse é o problema da seleção de subconjuntos de recursos. Há muito trabalho acadêmico nessa área (ver Guyon, I., & Elisseeff, A. (2003). Uma introdução à seleção de variáveis ​​e recursos. Journal of Machine Learning Research, 3, 1157-1182. Para uma boa visão geral )

E, depois de encontrar uma série de classificadores, qual é a melhor maneira de combinar sua saída com uma única previsão?

Isso dependerá de os recursos selecionados serem independentes ou não. No caso de os recursos serem independentes, você pode ponderar cada recurso por suas informações mútuas (ou alguma outra medida de informatividade) com a variável de resposta (seja qual for a sua classificação). Se alguns recursos forem dependentes, um único modelo de classificação provavelmente funcionará melhor.

Como a maioria das implementações aplica o kNN a um aprendizado mais generalizado?

Ao permitir que o usuário especifique sua própria matriz de distância entre o conjunto de pontos. O kNN funciona bem quando uma métrica de distância apropriada é usada.

usuario
fonte