У меня проблемы с пониманием проклятия размерности. В частности, я сталкивался с этим, когда делал scikit-learn
урок по Python. Может кто-нибудь объяснить, пожалуйста, ниже в более простой форме? Извините, я пытался понять дольше всего и не могу понять, как они пришли к расчету количества обучающих примеров, чтобы получить эффективную оценку KNN?
Вот объяснение:
Чтобы оценка была эффективной, необходимо, чтобы расстояние между соседними точками было меньше некоторого значения d, которое зависит от проблемы. В одном измерении это требует в среднем n ~ 1 / d точек. В контексте приведенного выше примера KNN, если данные описываются только одним признаком со значениями в диапазоне от 0 до 1 и с n тренировочными наблюдениями, то новые данные будут не дальше, чем 1 / n. Следовательно, правило принятия решения о ближайшем соседе будет эффективным, как только 1 / n будет небольшим по сравнению со шкалой вариаций между классами.
Если количество объектов равно p, теперь вам нужно n ~ 1 / d ^ p баллов. Допустим, нам требуется 10 точек в одном измерении: теперь 10 p точек требуется в p измерениях для прокладывания пространства [0, 1]. По мере того как p становится большим, количество тренировочных точек, необходимых для хорошей оценки, растет в геометрической прогрессии.
РЕДАКТИРОВАТЬ: также должен ли тильда ( ~
) представлять приблизительные в этом примере? или оператор тильды питона?
источник
Ответы:
Перевод этого пункта:
Пусть будет набор функций, которые описывают точку данных. Может быть, вы смотрите на погоду. Этот набор функций может включать такие вещи, как температура, влажность, время суток и т. Д. Таким образом, каждая точка данных может иметь одну функцию (если вы смотрите только на температуру) или она может иметь 2 функции (если вы смотрите на температуру и влажность) и тд. Этот абзац говорит о том, что исходя из количества измерений, которые имеют ваши данные (сколько у них функций), тем сложнее сделать оценку. Это потому, что если у вас просто есть одна особенность данных или одномерные данные, то, когда вы переходите к графику этих данных, вы получаете линейный график и представляете линейный график, скажем, между 0-50 градусов C, это займет всего лишь 50 случайных точек перед каждой точкой данных находятся примерно на 1 градус от любой другой точки данных. Теперь давайте Подумайте о двух измерениях, говоря о влажности и температуре, теперь сложнее найти, что d такое, что все точки находятся в пределах «d» единиц друг от друга. Представьте, что температура все еще находится в диапазоне 0-50, но теперь влажность также находится в диапазоне 0-100%. Сколько случайных очков нужно, чтобы получить все очки в пределах 1 или 2 друг от друга? Теперь это 100 * 50 или ~ 5000! Теперь представьте 3 измерения и т. Д. И т. Д. Вам нужно больше точек, чтобы каждая точка находилась в пределах d от какой-либо другой точки. Чтобы облегчить вашу жизнь, попробуйте предположить, что «d» равно 1, и посмотрите, что произойдет. Надеюсь, это поможет! Сколько случайных очков нужно, чтобы получить все очки в пределах 1 или 2 друг от друга? Теперь это 100 * 50 или ~ 5000! Теперь представьте 3 измерения и т. Д. И т. Д. Вам нужно больше точек, чтобы каждая точка находилась в пределах d от какой-либо другой точки. Чтобы облегчить вашу жизнь, попробуйте предположить, что «d» равно 1, и посмотрите, что произойдет. Надеюсь, это поможет! Сколько случайных очков нужно, чтобы получить все очки в пределах 1 или 2 друг от друга? Теперь это 100 * 50 или ~ 5000! Теперь представьте 3 измерения и т. Д. И т. Д. Вам нужно больше точек, чтобы каждая точка находилась в пределах d от какой-либо другой точки. Чтобы облегчить вашу жизнь, попробуйте предположить, что «d» равно 1, и посмотрите, что произойдет. Надеюсь, это поможет!
источник
n~1/d
будет означать, что n должно быть приблизительно 1? Это не имеет особого смысла?matty-d
уже предоставил очень хороший ответ, но я нашел другой ответ, который также объясняет эту проблему, от пользователя Quora Кевина Лакера:источник
Этот пример может дать некоторую интуицию проблемы, но на самом деле это вовсе не строгое доказательство: это всего лишь пример, когда требуется много образцов, чтобы получить «хорошее» космическое покрытие. Может быть (и действительно есть, например, шестиугольники в 2D уже) гораздо более эффективные покрытия, чем регулярная сетка ... (этому посвящена сложная область последовательностей с малым расхождением) ... и доказательство того, что даже с такими лучшими покрытиями есть еще какое-то проклятие размерности, это совсем другая проблема. На самом деле в определенных функциональных пространствах есть даже способы обойти эту очевидную проблему.
источник