Estou tendo problemas para entender a maldição da dimensionalidade. Especificamente, me deparei com ele durante o scikit-learn
tutorial em python. Alguém pode explicar o abaixo de uma maneira mais simples? Desculpe, estou tentando entender há mais tempo e não consigo entender como eles criaram o cálculo para o número de exemplos de treinamento para obter um estimador KNN eficiente?
Aqui está a explicação:
Para que um estimador seja eficaz, você precisa que a distância entre os pontos vizinhos seja menor que algum valor d, que depende do problema. Em uma dimensão, isso requer em média n ~ 1 / d pontos. No contexto do exemplo KNN acima, se os dados forem descritos por apenas um recurso com valores variando de 0 a 1 e com n observações de treinamento, os novos dados não estarão mais longe do que 1 / n. Portanto, a regra de decisão do vizinho mais próximo será eficiente assim que 1 / n for pequeno em comparação com a escala de variações de recursos entre classes.
Se o número de recursos for p, agora você precisará de n ~ 1 / d ^ p pontos. Digamos que exigimos 10 pontos em uma dimensão: agora são necessários 10 pontos p em dimensões p para pavimentar o espaço [0, 1]. À medida que p se torna grande, o número de pontos de treinamento necessários para um bom estimador cresce exponencialmente.
EDIT: também é o til ( ~
) suposto representar aproximado nesse exemplo? ou o operador python til?