Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

Үгүй ээ, мэдээжийн хэрэг, би ноцтой биш байна. Сэдвийг хялбарчлах боломжийн хязгаар байх ёстой. Гэхдээ эхний үе шатанд үндсэн ойлголтуудыг ойлгож, сэдвийг хурдан "орох" нь хүлээн зөвшөөрөгдөхүйц байж магадгүй юм. Төгсгөлд нь бид энэ материалыг хэрхэн зөв нэрлэх талаар ярилцах болно (сонголтууд: "Даммигийн машин сурах", "Живхний өгөгдөлд дүн шинжилгээ хийх", "Бяцхан хүүхдүүдэд зориулсан алгоритм").

Цэг хүртэл. Мэдээлэлд дүн шинжилгээ хийхдээ янз бүрийн машин сургалтын аргуудад тохиолддог үйл явцыг дүрслэн харуулах, дүрслэн харуулах зорилгоор MS Excel программ дээр хэд хэдэн програм бичсэн. Харах нь эдгээр аргуудын ихэнхийг (дашрамд хэлэхэд бүгдийг нь биш. Дэмжлэгийн вектор машин" буюу SVM-ийн дэмжлэгийн вектор машинуудын ихэнхийг боловсруулсан гэдэгт итгэх явдал юм. манай нутаг нэгтэн Владимир Вапник, Москвагийн Удирдлагын дээд сургууль. 1963 он! Дашрамд хэлэхэд, одоо тэрээр АНУ-д багшилж, ажиллаж байна).

Хянах гурван файл

1. К- бөөгнөрөл гэсэн үг

Энэ төрлийн асуудал нь "хяналтгүй сургалт"-ыг хэлдэг бөгөөд бид анхны өгөгдлийг урьдчилан мэдэгдэж байсан тодорхой тооны ангилалд хуваах шаардлагатай боловч бидэнд "зөв хариулт" байхгүй тул тэдгээрийг өгөгдлөөс өөрөө гаргаж авах ёстой. . Энэхүү мэдлэгийн талбарын анхны шинж тэмдэг гэж тооцогддог цахилдаг цэцгийн дэд зүйлүүдийг олох сонгодог үндсэн асуудал (Роналд Фишер, 1936!) нь яг ийм шинж чанартай байдаг.

Арга нь маш энгийн. Бидэнд вектор хэлбэрээр дүрслэгдсэн олон тооны объектууд (N тооны олонлогууд) байна. Цахилдаг цэцгийн хувьд эдгээр нь цэцгийн онцлог шинж чанартай 4 тооны багц юм: периантийн гадна ба дотоод дэлбээний урт ба өргөн (Фишерийн цахилдаг - Википедиа). Ердийн декарт хэмжигдэхүүнийг объект хоорондын зай буюу ойрын хэмжүүр болгон сонгоно.

Дараа нь кластерын төвүүдийг санамсаргүй байдлаар (эсвэл санамсаргүй байдлаар биш, доороос үзнэ үү) сонгож, объект бүрээс кластерын төв хүртэлх зайг тооцоолно. Өгөгдсөн давталтын алхам дахь объект бүрийг хамгийн ойрын төвд хамаарахаар тэмдэглэнэ. Дараа нь кластер бүрийн төвийг түүний гишүүдийн координатын арифметик дундаж руу шилжүүлж (физикийн адилаар үүнийг "массын төв" гэж нэрлэдэг) процедурыг давтана.

Процесс нь нэлээд хурдан нийлдэг. Хоёр хэмжээст зураг дээр дараах байдалтай байна.

1. Хавтгай дээрх цэгүүдийн санамсаргүй тархалт ба кластеруудын тоо

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

2. Кластерын төвүүдийг зааж өгөх, тэдгээрийн кластерт оноо өгөх

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

3. Кластерийн төвүүдийн координатыг шилжүүлэх, төвүүд тогтворжих хүртэл цэгүүдийн харьяаллыг дахин тооцоолох. Кластерын төвийн эцсийн байрлал руу шилжих зам харагдана.

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

Ямар ч үед та шинэ кластерын төвүүдийг (шинэ цэгийн хуваарилалт үүсгэхгүйгээр) тохируулж, хуваах үйл явц үргэлж хоёрдмол утгатай байдаггүйг харж болно. Математикийн хувьд энэ нь оновчтой болгож буй функцийн хувьд (цэгээс тэдгээрийн кластерын төв хүртэлх зайны квадратын нийлбэр) бид глобал биш, харин локал минимумыг олдог гэсэн үг юм. Анхны кластерын төвүүдийг санамсаргүй байдлаар сонгох эсвэл боломжит төвүүдийг тоолох замаар энэ асуудлыг даван туулж болно (заримдаа тэдгээрийг яг аль нэг цэг дээр байрлуулах нь ашигтай байдаг, тэгвэл ядаж бид хоосон болохгүй гэсэн баталгаа бий. кластерууд). Ямар ч тохиолдолд төгсгөлтэй олонлог үргэлж инфимумтай байдаг.

Та энэ холбоосоор энэ файлтай тоглох боломжтой (макро дэмжлэгийг идэвхжүүлэхээ бүү мартаарай. Файлууд нь вирусыг шалгасан)

Википедиа дээрх аргын тайлбар - k- гэсэн утгатай арга

2. Олон гишүүнтээр ойртуулах, өгөгдлийг задлах. Дахин сургах

Гайхалтай эрдэмтэн, мэдээллийн шинжлэх ухааныг сурталчлагч К.В. Воронцов машин сургалтын аргуудыг "цэгээр дамжуулан муруй зурах шинжлэх ухаан" гэж товч тайлбарлав. Энэ жишээн дээр бид хамгийн бага квадратын аргыг ашиглан өгөгдлийн загварыг олох болно.

Эх сурвалжийн өгөгдлийг "сургалт" ба "хяналт" гэж хуваах арга техник, түүнчлэн давтан сургах, өгөгдөлд "дахин тохируулах" гэх мэт үзэгдлийг харуулав. Зөв ойролцоолсноор бид сургалтын өгөгдөл дээр тодорхой алдаа, хяналтын өгөгдөл дээр арай том алдаа гарах болно. Хэрэв буруу бол сургалтын өгөгдөлд нарийн тохируулга хийж, туршилтын өгөгдөлд асар их алдаа гарна.

(N цэгээр дамжуулан N-1-р зэргийн нэг муруй зурж болох нь мэдэгдэж байгаа баримт бөгөөд ерөнхий тохиолдолд энэ арга нь хүссэн үр дүнг өгдөггүй. Википедиа дээрх Лагранж интерполяцийн олон гишүүнт)

1. Анхны хуваарилалтыг тохируулна уу

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

2. Бид оноог 70-30 харьцаагаар "сургалт", "хяналт" гэж хуваадаг.

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

3. Бид сургалтын цэгүүдийн дагуу ойролцоох муруйг зурж, хяналтын өгөгдөл дээр өгсөн алдааг харж байна.

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

4. Бид сургалтын цэгүүдээр яг муруй зурж, хяналтын өгөгдөл дээр аймшигтай алдаа (болон сургалтын өгөгдөл дээр тэг байна, гэхдээ ямар учиртай вэ?)

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

Мэдээжийн хэрэг, "сургалт" ба "хяналтын" дэд бүлэгт хуваагдах хамгийн энгийн хувилбарыг үзүүлэв; ерөнхий тохиолдолд коэффициентийг хамгийн сайн тохируулахын тулд үүнийг олон удаа хийдэг.

Вирусны эсрэг сканнердсан файлыг эндээс авах боломжтой. Зөв ажиллахын тулд макро идэвхжүүлнэ үү

3. Градиент буурах ба алдааны өөрчлөлтийн динамик

4 хэмжээст тохиолдол ба шугаман регресс байх болно. Шугаман регрессийн коэффициентийг градиент буурах аргыг ашиглан алхам алхмаар тодорхойлно, эхний ээлжинд бүх коэффициентүүд тэг байна. Коэффициентийг илүү нарийвчлалтай тохируулахын хэрээр алдааны бууралтын динамикийг тусдаа графикаар харуулав. Дөрвөн 2 хэмжээст проекцийг бүгдийг нь харах боломжтой.

Хэрэв та градиент уруудах алхмыг хэт томруулсан бол бид хамгийн багадаа алгасаж үр дүндээ илүү олон алхмаар хүрэх болно гэдгийг харж болно их - дараа нь алгоритм "хүрзээр" явах болно). Давталтын алхамаас хамааран алдааны график нь гөлгөр биш, харин "хурц" байх болно.

1. Өгөгдөл үүсгэх, градиент буурах алхамыг тохируулах

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

2. Градиент уруудах алхмыг зөв сонгосноор бид хамгийн багадаа жигд, хурдан хүрдэг

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

3. Хэрэв градиент буурах алхмыг буруу сонгосон бол бид хамгийн дээд хэмжээнээс давж, алдааны график нь "хүчтэй", нэгдэх нь илүү олон алхам хийдэг.

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах
и

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

4. Хэрэв бид градиент буурах алхамыг бүрэн буруу сонговол хамгийн бага хэмжээнээс холддог.

Питон, Анаконда болон бусад хэвлээр явагчидгүйгээр машин сурах

(Зураг дээр үзүүлсэн градиент буурах алхамын утгыг ашиглан үйл явцыг хуулбарлахын тулд "лавлагаа мэдээлэл" нүдийг шалгана уу).

Файл энэ холбоос дээр байгаа, та макро идэвхжүүлэх хэрэгтэй, вирус байхгүй.

Эрхэм хүндэт нийгэмлэгийн үзэж байгаагаар материалыг ийм хялбаршуулж, танилцуулах аргыг хүлээн зөвшөөрч болох уу? Нийтлэлийг англи хэл рүү орчуулах нь зүйтэй болов уу?

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх