Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

Yo'q, albatta, men jiddiy emasman. Mavzuni qanchalik soddalashtirish mumkinligi chegarasi bo'lishi kerak. Ammo birinchi bosqichlar uchun asosiy tushunchalarni tushunish va mavzuga tezda "kirish" uchun maqbul bo'lishi mumkin. Biz ushbu materialni qanday qilib to'g'ri nomlashni muhokama qilamiz (variantlar: "Dummylar uchun mashinani o'rganish", "Bezi bezi ma'lumotlarini tahlil qilish", "Kichiklar uchun algoritmlar").

Nuqtaga. Ma'lumotlarni tahlil qilishda turli xil mashinani o'rganish usullarida sodir bo'ladigan jarayonlarni vizuallashtirish va vizual tasvirlash uchun MS Excelda bir nechta amaliy dasturlarni yozgan. Ko'rish, axir, madaniyat tashuvchilari aytganidek, ushbu usullarning ko'pini ishlab chiqqan (aytmoqchi, ularning hammasi emas. Eng kuchli "qo'llab-quvvatlovchi vektor mashinasi" yoki SVM, qo'llab-quvvatlovchi vektor mashinasi ixtirosidir. vatandoshimiz Vladimir Vapnik, Moskva menejment instituti, 1963 yil, aytmoqchi!

Ko'rib chiqish uchun uchta fayl

1. K-klasterlashtirishni bildiradi

Ushbu turdagi muammolar "nazoratsiz o'rganish" bilan bog'liq bo'lib, biz dastlabki ma'lumotlarni oldindan ma'lum bo'lgan ma'lum toifalarga ajratishimiz kerak bo'lganda, lekin bizda "to'g'ri javoblar" soni yo'q; biz ularni ma'lumotlarning o'zidan chiqarib olishimiz kerak. . Ushbu bilim sohasining birinchi belgisi hisoblangan Γ¬rΓ­sΓ­ gullarining kichik turlarini topishning asosiy klassik muammosi (Ronald Fisher, 1936!) aynan shu xususiyatga ega.

Usul juda oddiy. Bizda vektorlar sifatida ko'rsatilgan ob'ektlar to'plami mavjud (N sonli to'plamlar). Irislarda bu gulni tavsiflovchi 4 ta raqamdan iborat to'plamlar: mos ravishda perianthning tashqi va ichki bo'laklarining uzunligi va kengligi (Fisherning irislari - Vikipediya). Ob'ektlar orasidagi masofa yoki yaqinlik o'lchovi sifatida odatiy Dekart ko'rsatkichi tanlanadi.

Keyinchalik, klaster markazlari tasodifiy tanlanadi (yoki tasodifiy emas, quyida ko'ring) va har bir ob'ektdan klaster markazlarigacha bo'lgan masofalar hisoblab chiqiladi. Berilgan takrorlash bosqichidagi har bir ob'ekt eng yaqin markazga tegishli deb belgilanadi. Keyin har bir klasterning markazi uning a'zolarining koordinatalarining arifmetik o'rtacha qiymatiga o'tkaziladi (fizikaga o'xshab, u "massa markazi" deb ham ataladi) va protsedura takrorlanadi.

Jarayon juda tez birlashadi. Ikki o'lchamdagi rasmlarda u quyidagicha ko'rinadi:

1. Tekislikdagi nuqtalarning dastlabki tasodifiy taqsimlanishi va klasterlar soni

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

2. Klaster markazlarini belgilash va ularning klasterlariga nuqtalar belgilash

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

3. Klaster markazlarining koordinatalarini uzatish, markazlar barqarorlashgunga qadar nuqtalarning tegishliligini qayta hisoblash. Klaster markazining oxirgi holatiga o'tish traektori ko'rinadi.

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

Istalgan vaqtda siz yangi klaster markazlarini o'rnatishingiz mumkin (nuqtalarning yangi taqsimotini yaratmasdan!) va bo'linish jarayoni har doim ham aniq emasligini ko'rishingiz mumkin. Matematik jihatdan, bu optimallashtirilayotgan funktsiya uchun (nuqtalardan ularning klasterlari markazlarigacha bo'lgan kvadratik masofalarning yig'indisi) biz global emas, balki mahalliy minimumni topamiz. Ushbu muammoni boshlang'ich klaster markazlarini tasodifiy bo'lmagan tanlash yoki mumkin bo'lgan markazlarni sanab o'tish orqali hal qilish mumkin (ba'zan ularni nuqtalardan biriga joylashtirish foydalidir, keyin hech bo'lmaganda bo'sh qolmasligimiz kafolati bor. klasterlar). Har holda, chekli to'plam har doim infimumga ega.

Ushbu havolada ushbu fayl bilan o'ynashingiz mumkin (makros qo'llab-quvvatlashni yoqishni unutmang. Fayllar viruslar uchun tekshirilgan)

Vikipediyadagi usulning tavsifi - k-vosita usuli

2. Ko'phadlar bo'yicha yaqinlashish va ma'lumotlarni taqsimlash. Qayta tayyorlash

Ajoyib olim va ma'lumotlar fanining ommabopchisi K.V. Vorontsov qisqacha mashinani o'rganish usullarini "nuqtalar bo'ylab egri chizish ilmi" deb ta'riflaydi. Ushbu misolda biz eng kichik kvadratlar usuli yordamida ma'lumotlarda naqsh topamiz.

Manba ma'lumotlarini "o'qitish" va "nazorat" ga bo'lish texnikasi, shuningdek, ma'lumotlarni qayta tayyorlash yoki "qayta sozlash" kabi hodisa ko'rsatilgan. To'g'ri yaqinlashish bilan biz mashg'ulot ma'lumotlarida ma'lum bir xatoga va nazorat ma'lumotlarida biroz kattaroq xatolikka ega bo'lamiz. Agar noto'g'ri bo'lsa, bu mashg'ulot ma'lumotlarini aniq sozlash va test ma'lumotlarida katta xatolikka olib keladi.

(Ma'lumki, N nuqta orqali N-1 darajali bitta egri chiziq chizish mumkin va bu usul umumiy holatda kerakli natijani bermaydi. Vikipediyadagi Lagrange interpolyatsiya polinomi)

1. Dastlabki taqsimotni o'rnating

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

2. Ballarni 70 dan 30 gacha bo'lgan nisbatda "trening" va "nazorat" ga ajratamiz.

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

3. Mashg'ulot nuqtalari bo'ylab yaqinlashuvchi egri chiziq chizamiz, nazorat ma'lumotlarida uning bergan xatosini ko'ramiz.

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

4. Biz mashg'ulot nuqtalari orqali aniq egri chiziq chizamiz va biz nazorat ma'lumotlarida dahshatli xatoni ko'ramiz (va mashg'ulot ma'lumotlarida nolga teng, ammo bu nima?).

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

Ko'rsatilgan, albatta, "o'qitish" va "nazorat" kichik to'plamlarga bitta bo'linish bilan eng oddiy variant; umumiy holatda, bu koeffitsientlarni eng yaxshi sozlash uchun ko'p marta amalga oshiriladi.

Fayl antivirus tomonidan skanerlangan bu yerda mavjud. To'g'ri ishlash uchun makroslarni yoqing

3. Gradient tushishi va xato o'zgarishi dinamikasi

4 o'lchovli holat va chiziqli regressiya bo'ladi. Chiziqli regressiya koeffitsientlari bosqichma-bosqich gradient tushish usuli yordamida aniqlanadi, dastlab barcha koeffitsientlar nolga teng. Alohida grafik xatolarni kamaytirish dinamikasini ko'rsatadi, chunki koeffitsientlar tobora aniqroq o'rnatiladi. Barcha to'rtta 2 o'lchovli proyeksiyalarni ko'rish mumkin.

Agar siz gradientning tushish bosqichini juda katta o'rnatgan bo'lsangiz, biz har safar minimalni o'tkazib yuboramiz va natijaga ko'proq qadamlar bilan erishamiz, lekin oxirida biz hali ham etib boramiz (agar biz tushish bosqichini kechiktirmasak). ko'p - keyin algoritm o'tadi " belkurak"). Va iteratsiya bosqichiga qarab xatolik grafigi silliq emas, balki "qisqa" bo'ladi.

1. Ma'lumotlarni yarating, gradient tushish bosqichini o'rnating

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

2. Gradientning tushish bosqichini to'g'ri tanlash bilan biz muammosiz va tezda minimal darajaga erishamiz

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

3. Agar gradientning tushish bosqichi noto'g'ri tanlangan bo'lsa, biz maksimaldan oshib ketamiz, xato grafigi "qizg'in", konvergentsiya ko'proq qadamlarni oladi.

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish
ΠΈ

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

4. Agar biz gradientning tushish bosqichini butunlay noto'g'ri tanlasak, biz minimaldan uzoqlashamiz.

Python, Anaconda va boshqa sudraluvchilarsiz mashinani o'rganish

(Rasmlarda ko'rsatilgan gradient tushish qadam qiymatlaridan foydalangan holda jarayonni takrorlash uchun "mos yozuvlar ma'lumotlari" katagiga belgi qo'ying).

Fayl ushbu havolada, siz makroslarni yoqishingiz kerak, viruslar yo'q.

Hurmatli jamoaga ko'ra, materialni taqdim etishning bunday soddaligi va usuli maqbulmi? Maqolani ingliz tiliga tarjima qilishga arziydimi?

Manba: www.habr.com

a Izoh qo'shish