KNN (K-Nearest Neighbors) е популярен алгоритъм за машинно обучение, използван както за задачи за класификация, така и за регресия. Това е прост и лесен за разбиране алгоритъм, който работи, като намира K най-близките точки от данни в обучителния набор до новата входна точка от данни и след това предвижда етикета на входната точка от данни въз основа на етикетите на неговите K най-близки съседи .

Основните стъпки, включени в алгоритъма на KNN, са следните:

  1. Изберете стойността на K: Първата стъпка е да изберете стойността на K, която определя колко най-близки съседи се вземат предвид, когато се прави прогноза. Оптималната стойност на K зависи от набора от данни и може да се определи чрез кръстосано валидиране.
  2. Изчисляване на разстоянието: След като се определи стойността на K, следващата стъпка е да се изчисли разстоянието между новата входна точка от данни и всички точки от данни в набора за обучение. Най-често използваният показател за разстояние е евклидовото разстояние, което се изчислява като корен квадратен от сумата на квадратите на разликите между съответните характеристики на двете точки от данни.
  3. Изберете K най-близки съседи: След като изчислите разстоянията, следващата стъпка е да изберете K най-близки съседи на входната точка от данни от набора за обучение въз основа на изчислените разстояния.
  4. Предсказване на етикета: След като бъдат идентифицирани K най-близките съседи, следващата стъпка е да се предвиди етикетът на входната точка от данни въз основа на етикетите на нейните K най-близки съседи. В случай на класификация етикетът се прогнозира въз основа на мнозинството от гласовете на K най-близките съседи, докато при регресия етикетът се прогнозира като средна стойност или медиана на етикетите на K най-близките съседи.
  5. Оценете модела: Последната стъпка е да оцените ефективността на модела с помощта на набор от тестове. Точността на модела може да бъде измерена с помощта на различни показатели като точност, прецизност, припомняне, F1 резултат и др.

Някои важни съображения при използването на алгоритъма KNN включват:

  • Мащабиране на характеристиките: Тъй като алгоритъмът KNN се основава на изчисления на разстоянието, важно е да мащабирате характеристиките до подобен диапазон, за да избегнете отклонение към характеристики с по-големи стойности.
  • Проклятие на размерността: Ефективността на алгоритъма KNN може да се влоши в пространствени характеристики с висока размерност поради увеличената рядкост на данните.
  • Обработка на категориални характеристики: Алгоритъмът KNN може да обработва както числови, така и категориални характеристики, но категориалните характеристики трябва да бъдат преобразувани в числени стойности с помощта на техники като еднократно кодиране.

Като цяло алгоритъмът KNN е прост и ефективен алгоритъм, който може да се използва за широк спектър от задачи за машинно обучение.

Непараметричен → KNN

KNNенепараметричен алгоритъм за машинно обучение, тъй като не предполага никаква конкретна функционална форма на разпределението на данните и вместо това директно оценява основните разпределение от данните за обучението.

За разлика от тях, параметричнитеалгоритми като линейна регресия или логистична регресия приемат определена функционална форма за разпределението на данните и оценяват параметрите на това разпределение от данните за обучение. Непараметричните методи, от друга страна, разчитат на самите данни, за да научат основните модели и връзки, което ги прави по-гъвкави и способни да улавят по-сложни връзки между променливи.

В случая на KNN, алгоритъмът не прави никакви предположения относно основното разпределение на данните, а вместо това директно оценява етикета на нова точка от данни въз основа на етикетите на най-близките й съседи в данните за обучение. Това го прави особено полезен за данни, които нямат просто, лесно параметризирано разпределение или за задачи, при които основното разпределение е неизвестно или сложно.

Непараметричните методи обикновено са по-скъпи откъм изчисления от параметричните методи, тъй като изискват повече данни, за да направят точни прогнози и може да изискват по-сложни алгоритми за извършване на необходимите изчисления. Те обаче могат да бъдат по-точни и гъвкави в по-широк диапазон от ситуации, което ги прави ценен инструмент в много приложения за машинно обучение.

Алгоритъм за мързеливо обучение → KNN

KNN е алгоритъм за мързеливо обучение, тъй като не изисква изрична фаза на обучение, за разлика от повечето други алгоритми за машинно обучение. Вместо това целият набор от данни за обучение се използва за директно информиране на прогнозите, направени на нови, невиждани точки от данни.

За разлика от това, алгоритмите за нетърпеливо или нетърпеливо учене, като дървета на решения или невронни мрежи, изискват изрична фаза на обучение, където моделът е подходящ за данните за обучение, преди да може да се използва за правене на прогнози за нови данни. Тази фаза на обучение може да бъде скъпа от изчислителна гледна точка и може да изисква значително време и ресурси.

Като мързелив алгоритъм за обучение, KNN има предимството да може лесно да се адаптира към промените в данните за обучение или основните модели в данните, без да изисква пълно преобучение на модела. Освен това KNN може да се прилага както за задачи за класификация, така и за регресия, което го прави многофункционален алгоритъм.

Въпреки това, мързеливият характер на KNN също може да бъде недостатък в определени ситуации. Тъй като KNN разчита на целия набор от данни за обучение, за да прави прогнози, това може да бъде изчислително скъпо и бавно за големи набори от данни или данни с голямо измерение. Освен това KNN може да не работи толкова добре, колкото нетърпеливите алгоритми в ситуации, в които основните модели в данните са сложни или нелинейни.

Обучение, базирано на екземпляри → KNN

KNN е алгоритъм за обучение, базиран на екземпляри, тъй като използва самия набор от данни за обучение като представяне на основното разпределение на данни, вместо да изгражда изричен модел на разпределението.

При обучение, базирано на екземпляри, моделът не се конструира по време на обучение, а по-скоро данните за обучението се съхраняват като колекция от екземпляри или примери, които се използват директно за правене на прогнози за нови, невиждани данни. KNN съхранява целия набор от данни за обучение като набор от екземпляри и всеки екземпляр се състои от вектор от характеристики и съответен етикет на клас или целева променлива.

По време на фазата на прогнозиране KNN търси в набора от данни за обучение, за да намери K най-близките екземпляри до новата, невиждана точка от данни въз основа на показател за разстояние и след това прогнозира етикета на новата точка от данни въз основа на етикетите на нейните K най-близки съседи.

Обучението, базирано на екземпляри, има няколко предимства пред обучението, базирано на модели, като например:

  1. Гъвкавост: Обучението, базирано на екземпляри, може лесно да се адаптира към промените в данните, тъй като не предполага никаква конкретна функционална форма за разпространение на данни.
  2. Устойчивост на шум: Обучението, базирано на екземпляри, е устойчиво на шум и отклонения в данните, тъй като се основава на мнозинството гласове на K най-близките съседи, което помага да се намали въздействието на шумните данни.
  3. Лесно за тълкуване: Обучението, базирано на екземпляри, е по-интерпретируемо от обучението, базирано на модел, тъй като прогнозите се основават директно на данните за обучение и могат лесно да бъдат обяснени.

Въпреки това обучението, базирано на примери, има и някои недостатъци, като например:

  1. Изчислителни разходи: Обучението, базирано на екземпляри, може да бъде скъпо от изчислителна гледна точка, особено за големи набори от данни или данни с големи размери, тъй като изисква търсене на целия набор от данни за обучение за всяка нова точка от данни.
  2. Изисквания за съхранение: Обучението, базирано на екземпляри, изисква да се съхранява целия набор от данни за обучение, което може да бъде значително изискване за съхранение за големи набори от данни.

Кога да използвате KNN?

Граници за нелинейни решения

KNN може да улови нелинейни граници на вземане на решения, тъй като прави прогнози въз основа на най-близките съседи на нова точка от данни, което може да доведе до сложни и нелинейни граници на решение.

Алгоритъмът KNN използва показател за разстояние, като евклидово разстояние или разстояние Манхатън, за измерване на приликата между точките от данни. Когато прогнозира етикета на нова точка от данни, KNN търси K най-близките съседи въз основа на показателя за разстояние и използва техните етикети, за да направи прогнозата.

Ако основното разпределение на данни има нелинейна структура, KNN може да улови това чрез използване на подходяща метрика за разстояние или чрез трансформиране на входните характеристики в пространство с по-високо измерение, където данните могат да бъдат разделени от линейна граница на решение. Например, KNN може да използва ядрото на радиална базисна функция (RBF), за да трансформира входните характеристики в пространство с по-високо измерение, където данните могат да бъдат по-лесно разделими чрез линейна граница на решение.

Въпреки това е важно да се отбележи, че KNN може да бъде чувствителен към избора на показател за разстояние и броя на съседите (K), използвани за прогнозата, и тези избори могат да повлияят на точността на прогнозите и формата на границата на решението. В допълнение, KNN може да не работи толкова добре, колкото други алгоритми, като например невронни мрежи или дървета на решения, за сложни и високомерни данни с нелинейни връзки.

Входове → KNN

Типовете входове, които могат да се използват в KNN, включват:

  1. Числени характеристики: KNN може да обработва числени характеристики, като височина, тегло, възраст и т.н. В този случай показателят за разстояние, използван от KNN, обикновено е евклидово разстояние или разстояние Манхатън.
  2. Категорични характеристики: KNN може също да обработва категориални характеристики, като цвят, пол, професия и т.н. В този случай показателят за разстояние, използван от KNN, обикновено е разстоянието на Хеминг или разстоянието на Жакард.
  3. Двоични функции: KNN може да обработва двоични характеристики, като променливи да/не или вярно/невярно. В този случай показателят за разстояние, използван от KNN, обикновено е разстоянието на Хеминг.

Изходи → KNN

Резултатът от KNN зависи от естеството на задачата за машинно обучение и вида на прогнозираната целева променлива. KNN може да се използва както за задачи за класификация, така и за регресия, като типът изход варира съответно.

В задачите за класификация, където целевата променлива е категорична, изходът на KNN е предвиден етикет на клас за новата, невиждана точка от данни. Етикетът на предвидения клас обикновено е един от класовете от набора от данни за обучение.

В регресионнизадачи, където целевата променлива е непрекъсната, изходът на KNN е предвидена стойност на целевата променлива за новата, невиждана точка от данни. Предсказаната стойност обикновено е число с реална стойност.

Следователно изходът на KNN може да включва както категориални, така и числовистойности, в зависимост от изпълняваната задача за машинно обучение.

Предположения → KNN

KNN е непараметричен алгоритъм за машинно обучение, който не прави никакви предположения относно основното разпределение на данни. Съществуват обаче определени предположения и ограничения на KNN, които трябва да се имат предвид при използването на този алгоритъм:

  1. Предположение за локална структура: KNN приема, че екземплярите, които са близо един до друг в пространството на характеристиките, имат сходни стойности на целевата променлива. Това се основава на предположението, че екземплярите, които са близки един до друг, е по-вероятно да принадлежат към един и същи клас или да имат сходни стойности.
  2. Приемане за равномерно разпределение на екземплярите: KNN приема, че екземплярите в пространството на характеристиките са равномерно разпределени. Това е така, защото KNN разчита на показателя за разстояние, за да изчисли сходството между екземплярите и ако екземплярите не са равномерно разпределени, показателят за разстояние може да не отразява точно сходството между екземплярите.

3. Проклятие на размерността: KNN е засегната от проклятието на размерността, което е феноменът, при който разстоянието между екземплярите става все по-безсмислено с нарастването на броя на измеренията. Това означава, че KNN може да работи лошо, когато броят на функциите е много голям.

4. Избор на показател за разстояние: KNN изисква показател за разстояние, за да изчисли приликата между екземплярите. Изборът на показател за разстояние може да окаже значително влияние върху точността на алгоритъма. Различните показатели за разстояние може да са по-подходящи за различни типове данни и функции, а изборът на неподходящ показател за разстояние може да доведе до лоша производителност.

Надявам се да ви помогне. Ако ви е полезно, можете да пляскате👏 тази статия и да ме последвате за такива статии.

te veo mañana 🤩✨

Прочетете също: