
KNN (Nearest Neighbor) алгоритм буюу K хамгийн ойрхон хөрш

Б.Мөнх-Эрдэнэ
Багш


Б.Мөнх-Эрдэнэ
Багш
K-Nearest Neighbors (KNN) алгоритм нь хяналттай машин сургалтын ангилал (classification) болон регресс (regression)-ийн бодлогыг шийдэхэд ашиглагддаг энгийн боловч үр дүнтэй арга юм. Энэ алгоритм нь параметргүй бөгөөд lazy learning төрөлд хамаардаг. Өөрөөр хэлбэл сургалтын явцад тусгай загвар сургахгүй, харин өгөгдлийг хадгалж, шинэ өгөгдөл орж ирэх үед шууд харьцуулалт хийж таамаглал гаргадаг.
KNN алгоритмын үндсэн зарчим нь төстэй өгөгдлүүд хоорондоо ойрхон байрладаг гэсэн ойлголт дээр тулгуурладаг.

KNN алгоритм дараах үндсэн алхмуудаар ажиллана:
K утгыг сонгох - K нь шинэ өгөгдлийг үнэлэхдээ хэдэн хамгийн ойр хөршийг авч үзэхийг илэрхийлнэ.
Зайг тооцоолох - Шинэ өгөгдөл болон сургалтын өгөгдөл бүрийн хоорондын зайг тодорхойлно. Ихэвчлэн Евклидийн зайг ашигладаг.
Хамгийн ойр K хөршийг сонгох - Тооцоолсон зайнаас хамгийн бага утгатай K ширхэг өгөгдлийг сонгоно.
Таамаглал хийх (Ангилал) - K хөршүүдийн дунд хамгийн олон давтагдсан ангийг сонгоно
Таамаглал хийх (Регресс) - K хөршүүдийн утгын дунджийг авна

KNN алгоритмыг дараах байдлаар ашигладаг:
Өгөгдлийг цуглуулж, ангилал эсвэл тоон утгатай шошголно
Өгөгдлийг масштаблах (normalization, standardization)
K утгыг сонгох (ихэвчлэн cross-validation ашиглана)
KNN нь өгөгдөл дээр шууд ажилладаг тул сургалтын хугацаа бараг шаарддаггүй.
KNN нь өгөгдөл дээр шууд ажилладаг тул сургалтын хугацаа бараг шаарддаггүй.

Ойлгоход хялбар, хэрэгжүүлэхэд энгийн
Сургалтын шат шаарддаггүй
Олон төрлийн зай хэмжих аргыг ашиглах боломжтой
Ангилал болон регрессийн аль алинд хэрэглэж болно
Жижиг өгөгдөл дээр сайн үр дүн өгдөг
Том өгөгдөл дээр тооцооллын зардал ихтэй
Санах ой их шаарддаг
Шинж чанарын масштабад маш мэдрэмтгий
Өндөр хэмжээст өгөгдөл дээр үр ашиг мууддаг
Дуу чимээ (noise)-д мэдрэмтгий
KNN алгоритм дараах салбаруудад өргөн хэрэглэгддэг:
Зураг ангилал (image recognition)
Хээ таних (pattern recognition) гэх мэт олон олон хэрэглээ бий.

K-Nearest Neighbors (KNN) алгоритм нь ойлгоход хялбар, хэрэгжүүлэхэд энгийн бөгөөд олон төрлийн бодлогод ашиглаж болох машин сургалтын суурь арга юм. Хэдийгээр том өгөгдөл болон өндөр хэмжээст орчинд үр ашиг нь буурдаг ч, жижиг болон дунд хэмжээний өгөгдөл дээр, мөн суурь алгоритм болгон ашиглахад маш тохиромжтой. Иймээс KNN нь машин сургалтыг судалж эхэлж буй хүмүүст чухал ач холбогдолтой алгоритм гэж үздэг.