Прокляття розмірності машинного навчання пояснюється?


14

У мене виникають проблеми з розумінням прокляття розмірності. Зокрема, я натрапив на це, виконуючи scikit-learnпідручник з пітона. Може хтось, будь ласка, пояснить нижче простішим способом? Вибачте, що я намагаюся розібратися довгий час і не можу зрозуміти, як вони придумали підрахунок кількості навчальних прикладів для досягнення ефективного оцінювача KNN?

Ось пояснення:

Щоб оцінювач був ефективним, потрібно, щоб відстань між сусідніми точками було менше деякого значення d, що залежить від проблеми. В одному вимірі для цього потрібно в середньому n ~ 1 / d балів. У контексті вищенаведеного прикладу KNN, якщо дані описуються лише однією ознакою зі значеннями від 0 до 1 та з n навчальними спостереженнями, нові дані будуть не далі 1 / n. Отже, правило рішення найближчого сусіда буде ефективним, як тільки 1 / n буде невеликим порівняно зі шкалою варіацій між класовими варіантами.

Якщо кількість функцій p, то зараз вам потрібні n ~ 1 / d ^ p балів. Скажімо, нам потрібно 10 балів в одному вимірі: Тепер для розміщення пробілу [0, 1] потрібно 10 ^ p точок у розмірах p. Коли p стає великим, кількість навчальних балів, необхідних для хорошого оцінювача, зростає експоненціально.

посилання тут

EDIT: також чи тильда ( ~) повинна бути приблизною у цьому прикладі? чи оператор пітонного тильди?


2
Тильда означає "пропорційний"
ресетер

@mbatchkarov Ha дякую. Приблизно і пропорційно такі різні висновки

Відповіді:


11

Переклад цього абзацу:

Нехай є набір функцій, які описують точку даних. Можливо, ти дивишся на погоду. Цей набір функцій може включати в себе такі температури, як вологість, час доби тощо. Отже, у кожній точці даних може бути одна особливість (якщо ви дивитесь лише на температуру) або може бути дві функції (якщо ви дивитесь температуру і вологість) тощо. Що говорить цей параграф, це те, що виходячи з кількості вимірів, які мають ваші дані (скільки функцій у них є), складніше зробити оцінювач. Це тому, що якщо у вас є просто одна особливість даних або одновимірні дані, тоді, коли ви переходите до цього графіка, ви отримуєте лінійний графік, і уявляючи лінійний графік між скажімо 0-50 градусами С, це займе лише 50 випадкових точок перед кожною точкою даних приблизно на 1 градус від будь-якої іншої точки даних. Тепер нехай ' s подумайте про 2 виміри, говорячи про вологість і температуру, тепер складніше виявити, що 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, і подивіться, що відбувається. Сподіваюся, що це допомагає!


2
Це хороше пояснення, але як щодо рівняння, яке вони надали? У вашому прикладі 1, де я хочу, щоб оцінювач знаходився на відстані 1 градуса (тобто d = 1), тоді їх рівняння n~1/dозначатиме, що n повинно бути приблизно 1? Це не має великого сенсу?

Ні, вони не говорять, що якщо функція має діапазон 0-1 (у мого було діапазон 0-50), ви б тоді на 1 / д очок, таким чином, щоб кожен був приблизно d від іншого. Це працює для мого прикладу, оскільки вам знадобиться близько 50/1 балів, де 1 - "d". Вибачте, це заплутано вводити ці рівняння, але я думаю, що це повинно допомогти

12

matty-d Я вже дав дуже хорошу відповідь, але я знайшов ще одну відповідь, яка так само пояснює цю проблему, від користувача Quora Кевіна Лаккера:

Скажімо, у вас пряма лінія завдовжки 100 ярдів, і ви кинули десь на ній копійки. Це було б не надто важко знайти. Ви йдете по лінії, і це займає дві хвилини.

Тепер скажімо, що у вас квадрат з 100 ярдів з кожного боку, і ви скинули десь на нього копійки. Це було б досить важко, як пошук двох скріплених разом футбольних полів. Це може зайняти дні.

Тепер куб 100 ярдів поперек. Це як пошук 30-поверхової будівлі розміром з футбольний стадіон. Тьфу.

Складність пошуку через простір стає набагато складніше, оскільки у вас більше розмірів. Ви можете цього не зрозуміти інтуїтивно, коли це просто зазначено в математичних формулах, оскільки всі вони мають однакову "ширину". Ось це прокляття розмірності. Це ім'я має, тому що воно неінтуїтивне, корисне і в той же час просте.


-1

Цей приклад може дати певну інтуїцію проблеми, але насправді зовсім не є суворим доказом: це лише приклад, коли для отримання "хорошого" простору покриття потрібно багато зразків. Можуть бути (а є, наприклад, наприклад, шестикутники в 2D вже) набагато ефективнішими покриттями, ніж звичайна сітка ... (цьому присвячена витончена область послідовностей з низькою невідповідністю) ... і доводити, що навіть з таким кращим покриттям є ще якесь прокляття розмірності - це зовсім інше питання. Насправді в певних функціональних просторах є навіть способи обійти цю очевидну проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.