stub KNN (Хамгийн ойрын хөршүүд) гэж юу вэ? - Нэгдсэн.AI
бидэнтэй хамт холбоно
AI мастер анги:

AI 101

KNN (Хамгийн ойрын хөршүүд) гэж юу вэ?

mm
шинэчлэгдсэн on

K-Nearest Neighbors (KNN) гэж юу вэ?

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

Хамгийн ойрын хөршүүдийн тойм (KNN)

Фото: Antti Ajanki AnAj Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

Өгөгдлийн багцыг 2 хэмжээст хавтгай дээр дүрсэлцгээе. График дээрх олон тооны өгөгдлийн цэгүүдийг графикийн дагуу жижиг кластер болгон тарааж дүрсэл. KNN нь өгөгдлийн цэгүүдийн тархалтыг судалж, загварт өгсөн аргументуудаас хамааран өгөгдлийн цэгүүдийг бүлэгт хуваадаг. Дараа нь эдгээр бүлгүүдэд шошго оноодог. KNN загварын үндсэн таамаглал нь бие биентэйгээ ойрхон байгаа өгөгдлийн цэгүүд/нөхцөлүүд маш төстэй байдаг бол өгөгдлийн цэг нь өөр бүлгээс хол байгаа бол тэдгээр өгөгдлийн цэгүүдтэй адилгүй байдаг.

KNN загвар нь график дээрх хоёр цэгийн хоорондох зайг ашиглан ижил төстэй байдлыг тооцдог. Цэгүүдийн хоорондох зай их байх тусам тэдгээрийн ижил төстэй байдал бага байна. Цэгүүдийн хоорондох зайг тооцоолох олон арга байдаг боловч хамгийн түгээмэл зайны хэмжүүр нь зөвхөн Евклидийн зай (шулуун шугамын хоёр цэгийн хоорондох зай) юм.

KNN нь хяналттай сургалтын алгоритм бөгөөд өгөгдлийн багц дахь жишээнүүд нь тэдэнд зориулагдсан шошготой байх ёстой / ангиудыг нь мэддэг байх ёстой. KNN-ийн талаар мэдэх өөр хоёр чухал зүйл бий. Нэгдүгээрт, KNN бол параметрийн бус алгоритм юм. Энэ нь загварыг ашиглах үед өгөгдлийн багцын талаар ямар ч таамаглал гарахгүй гэсэн үг юм. Харин загвар нь өгөгдсөн өгөгдлөөс бүтсэн байна. Хоёрдугаарт, KNN ашиглах үед өгөгдлийн багцыг сургалт, туршилтын багц болгон хуваах шаардлагагүй. KNN нь сургалтын болон туршилтын багцын хооронд ямар ч ерөнхий дүгнэлт гаргадаггүй тул загвараас таамаглал дэвшүүлэхэд сургалтын бүх өгөгдлийг ашигладаг.

KNN алгоритм хэрхэн ажилладаг

KNN алгоритм нь гурван үндсэн үе шатыг дамждаг:

  1. K-г хөршүүдийн сонгосон тоонд тохируулна уу.
  2. Өгөгдсөн/туршилтын жишээ болон өгөгдлийн багцын жишээ хоорондын зайг тооцоолох.
  3. Тооцоолсон зайг эрэмбэлэх.
  4. Шилдэг K оруулгуудын шошгыг авч байна.
  5. Туршилтын жишээний таамаглалыг буцаана.

Эхний алхамд K-г хэрэглэгч сонгох бөгөөд зорилтот жишээ хамаарах бүлгийн талаар дүгнэлт гаргахдаа хэдэн хөршийг (хэчнээн ойр орчмын өгөгдлийн цэг) авч үзэх ёстойг алгоритмд заадаг. Хоёрдахь алхамд загвар нь зорилтот жишээ болон өгөгдлийн багц дахь жишээ бүрийн хоорондох зайг шалгадаг болохыг анхаарна уу. Дараа нь зайг жагсаалтад нэмж, эрэмбэлдэг. Дараа нь эрэмбэлэгдсэн жагсаалтыг шалгаж, дээд K элементийн шошгыг буцаана. Өөрөөр хэлбэл, K-г 5 гэж тохируулсан бол загвар нь зорилтот өгөгдлийн цэгт хамгийн ойр байгаа эхний 5 өгөгдлийн цэгийн шошгыг шалгана. Зорилтот өгөгдлийн цэгийн талаар таамаглал гаргахдаа даалгавар нь a байх нь чухал регресс or ангилал даалгавар. Регрессийн даалгаврын хувьд дээд K тэмдэглэгээний дундаж утгыг ашигладаг бол ангиллын хувьд дээд K шошгоны горимыг ашигладаг.

Сонгосон зайны хэмжүүрээс хамааран KNN-ийг гүйцэтгэхэд ашигладаг нарийн математик үйлдлүүд өөр өөр байдаг. Хэрэв та хэмжигдэхүүнүүдийг хэрхэн тооцдог талаар илүү ихийг мэдэхийг хүсвэл хамгийн түгээмэл зайны хэмжүүрүүдийн талаар уншиж болно. Евклид, МанхэттэнБолон Минковски.

К-ийн үнэ цэнэ яагаад чухал вэ?

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

Зураг: Agor153, Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

K-ийн бага утга нь KNN-ийн гаргасан таамаглал тогтвортой, найдвартай биш гэсэн үг юм. Яагаад ийм байдгийг ойлгохын тулд бид зорилтот өгөгдлийн цэгийн эргэн тойронд 7 хөрштэй байх жишээг авч үзье. KNN загвар нь K утга 2-той ажиллаж байна гэж бодъё (бид хамгийн ойрын хоёр хөршийг хараад таамаглал дэвшүүлэхийг хүсч байна). Хэрвээ хөршүүдийн дийлэнх нь (долооны тав нь) Цэнхэр ангилалд хамаарах боловч хамгийн ойрын хоёр хөрш нь зүгээр л Улаан өнгөтэй байвал загвар нь асуултын жишээг Улаан гэж таамаглах болно. Загварын таамаглалыг үл харгалзан ийм тохиолдолд Цэнхэр нь илүү сайн таамаглах болно.

Хэрэв тийм бол яагаад бидний чадах хамгийн дээд K утгыг сонгож болохгүй гэж? Учир нь загварт хэт олон хөршийг анхаарч үзэхийг хэлэх нь нарийвчлалыг бууруулдаг. KNN загварын радиус нэмэгдэхийн хэрээр зорилтот өгөгдлийн цэгээс бусад бүлгүүдэд илүү ойр байгаа өгөгдлийн цэгүүдийг авч үзэж, буруу ангилал гарч эхэлнэ. Жишээ нь, анх сонгосон цэг нь дээрх улаан бүсүүдийн аль нэгэнд байсан ч K-г хэт өндөр тохируулсан бол загвар бусад бүс нутгуудад хүрч цэгүүдийг авч үзэх болно. KNN загварыг ашиглах үед K-ийн янз бүрийн утгууд нь тухайн загварт хамгийн сайн гүйцэтгэлийг үзүүлж буй утгыг харахыг оролддог.

KNN-ийн давуу болон сул талууд

KNN загварын зарим давуу болон сул талуудыг авч үзье.

Давуу тал:

KNN нь бусад хяналттай сургалтын алгоритмуудаас ялгаатай нь регресс болон ангиллын ажлуудад хоёуланд нь ашиглагдаж болно.

KNN нь өндөр нарийвчлалтай бөгөөд хэрэглэхэд хялбар юм. Үүнийг тайлбарлах, ойлгох, хэрэгжүүлэхэд хялбар байдаг.

KNN нь өгөгдлийн талаар ямар ч таамаглал дэвшүүлдэггүй, өөрөөр хэлбэл үүнийг олон төрлийн асуудалд ашиглаж болно.

Байг:

KNN нь өгөгдлийн ихэнхийг эсвэл бүхэлд нь хадгалдаг бөгөөд энэ нь загвар нь маш их санах ой шаарддаг бөгөөд тооцооллын хувьд үнэтэй гэсэн үг юм. Том өгөгдлийн багцууд нь таамаглалыг удаан хугацаанд хийхэд хүргэдэг.

KNN нь өгөгдлийн багцын цар хүрээг маш мэдрэмтгий болгодог бөгөөд бусад загваруудтай харьцуулахад хамааралгүй шинж чанаруудаас болж амархан арилдаг.

Хамгийн ойрын хөршүүдийн хураангуй (KNN)

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

Мэргэшсэн блоггер, программист Машины сургалт болон Гүн сурах сэдвүүд. Даниел бусад хүмүүст хиймэл оюун ухааны хүчийг нийгмийн сайн сайхны төлөө ашиглахад тусална гэж найдаж байна.