Чому нам потрібно встановити k-найближчий класифікатор сусідів?


11

Як я зрозумів, k-NN - алгоритм ледачого учня, і йому не потрібен етап навчання. То чому нам потрібно використовувати .fit()склеарн і що відбувається, коли ми його використовуємо?

Відповіді:


9

На концептуальному рівні

Встановлення класифікатора означає прийняття набору даних як вхідного, а потім виведення класифікатора, який вибирається з простору можливих класифікаторів. У багатьох випадках класифікатор ідентифікується - тобто відрізняється від інших можливих класифікаторів - набором параметрів. Параметри, як правило, вибираються шляхом вирішення проблеми оптимізації або іншої чисельної процедури. Але, у випадку з knn, класифікатор визначається самими навчальними даними. Отже, на абстрактному рівні для встановлення класифікатора knn потрібно просто зберігати навчальний набір.

На рівні реалізації

Оцінка класифікатора knn в новій точці даних вимагає пошуку найближчих сусідів у навчальному наборі, що може бути дорогою операцією, коли навчальний набір великий. Як зазначав RUser, існують різні хитрощі для прискорення пошуку, які зазвичай спрацьовують, створюючи різні структури даних на основі навчального набору. Загальна думка полягає в тому, що деякі обчислювальні роботи, необхідні для класифікації нових балів, насправді є загальними для всіх балів. Отже, цю роботу можна виконати достроково, а потім повторно використати, а не повторити для кожного нового екземпляра. Виконання кнн з використанням цих трюків зробить цю роботу під час навчального етапу. Наприклад, scikit-learn може конструювати kd-дерева або кульові дерева під час виклику fit()функції.

к

к


11

Ви можете втілити це в ледачий спосіб, і це робить гідну вправу при виявленні мови. (див. приклад одного з моїх записів у блозі ). Але ви також можете проіндексувати дані, щоб зробити прогнозування (набагато швидше).

Якщо простір функцій мав розмір одиниці, сортування точок відповідно до цієї функції допоможе вам знайти сусідів набагато швидше (використовуючи на прикладі дихотомічного пошуку). У більшій мірі немає природного узагальнення сортування, але ви можете індексувати точки, використовуючи (на приклад) квадри .

Подивившись на джерело , можна побачити, що в науці scikit впроваджені різні методи. І є деякі дослідження , які постійно покращують запити найближчих сусідів.


5

Хоча бали, які висловили інші відповіді, безумовно, справедливі та цікаві, я хотів би зазначити ще одне з точки зору суворої інженерної програми:

Щоб він відповідав їх API

Оцінювачі sklearn, крім іншого, повинні мати fitметод, який має один або два схожих масиви (залежно від того, чи це контрольований / непідконтрольний оцінювач), а також ряд деталей, що стосуються впровадження ( Джерело ).

Тож навіть якщо fitметод knn не зробив абсолютно нічого ніколи, він, швидше за все, існує, оскільки knn - це оцінювач і розробники sklearn, а також код, який вони вносять, очікують, що оцінювачі матимуть fitметод.

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