MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

Nē, protams, es nerunāju nopietni. Ir jābÅ«t ierobežotam, cik lielā mērā ir iespējams vienkārÅ”ot priekÅ”metu. Bet pirmajiem posmiem, izprotot pamatjēdzienus un ātri ā€œieejotā€ tēmā, tas var bÅ«t pieņemami. Noslēgumā apspriedÄ«sim, kā pareizi nosaukt Å”o materiālu (opcijas: ā€œMaŔīnmācÄ«ba manekeniemā€, ā€œDatu analÄ«ze no autiņbiksÄ«tēmā€, ā€œAlgoritmi mazajiemā€).

LÄ«dz punktam. Programmā MS Excel uzrakstÄ«ja vairākas lietojumprogrammas, lai vizualizētu un vizuāli attēlotu procesus, kas notiek dažādās maŔīnmācÄ«Å”anās metodēs, analizējot datus. Galu galā redzēt ir ticēt, kā saka kultÅ«ras nesēji, kas izstrādāja lielāko daļu Å”o metožu (starp citu, ne visas. VisspēcÄ«gākā ā€œatbalsta vektora maŔīnaā€ jeb SVM atbalsta vektora maŔīna ir izgudrojums mÅ«su tautietis Vladimirs Vapņiks, Maskavas menedžmenta institÅ«ts. 1963, starp citu!Tagad taču māca un strādā ASV).

Trīs faili pārskatīŔanai

1. K-nozīmē klasterizāciju

Šāda veida problēmas attiecas uz ā€œnepārraudzÄ«tu mācÄ«Å”anosā€, kad sākotnējie dati ir jāsadala noteiktā skaitā iepriekÅ” zināmu kategoriju, bet mums nav nekāda skaita ā€œpareizo atbilžuā€, mums tās ir jāizvelk no paÅ”iem datiem. . Klasiskā fundamentālā problēma ā€” atrast Ä«risu ziedu pasugas (Ronalds FiÅ”ers, 1936!), kas tiek uzskatÄ«ta par Ŕīs zināŔanu jomas pirmo pazÄ«mi, ir tieÅ”i Ŕāda.

Metode ir diezgan vienkārÅ”a. Mums ir objektu kopa, kas attēlota kā vektori (N skaitļu kopas). ÄŖrisos tie ir 4 skaitļu komplekti, kas raksturo ziedu: attiecÄ«gi apmales ārējās un iekŔējās daivas garums un platums (FiÅ”era Ä«risi ā€“ Vikipēdija). Parastā Dekarta metrika tiek izvēlēta kā attālums vai tuvuma mērs starp objektiem.

Pēc tam klasteru centri tiek atlasÄ«ti nejauÅ”i (vai ne nejauÅ”i, skatÄ«t zemāk), un tiek aprēķināti attālumi no katra objekta lÄ«dz klasteru centriem. Katrs objekts noteiktā iterācijas solÄ« ir atzÄ«mēts kā piederÄ«gs tuvākajam centram. Pēc tam katra klastera centrs tiek pārnests uz tā dalÄ«bnieku koordinātu vidējo aritmētisko (pēc analoÄ£ijas ar fiziku to sauc arÄ« par ā€œmasas centruā€), un procedÅ«ra tiek atkārtota.

Process saplÅ«st diezgan ātri. Bildēs divās dimensijās tas izskatās Ŕādi:

1. Sākotnējais nejauÅ”ais punktu sadalÄ«jums plaknē un klasteru skaits

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

2. Klasteru centru norādīŔana un punktu pieŔķirŔana to klasteriem

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

3. Klasteru centru koordinātu pārneÅ”ana, punktu piederÄ«bas pārrēķins lÄ«dz centru stabilizÄ“Å”anās. Ir redzama klastera centra kustÄ«bas trajektorija uz galÄ«go pozÄ«ciju.

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

Jebkurā laikā varat iestatÄ«t jaunus klasteru centrus (neÄ£enerējot jaunu punktu sadalÄ«jumu!) un redzēt, ka sadalÄ«Å”anas process ne vienmēr ir nepārprotams. Matemātiski tas nozÄ«mē, ka optimizējamajai funkcijai (attālumu kvadrātā summa no punktiem lÄ«dz to kopu centriem) mēs atrodam nevis globālo, bet lokālo minimumu. Å o problēmu var pārvarēt vai nu nejauÅ”i izvēloties sākotnējos klasteru centrus, vai arÄ« uzskaitot iespējamos centrus (dažkārt ir izdevÄ«gi tos novietot tieÅ”i kādā no punktiem, tad vismaz ir garantija, ka tukÅ”os nepaliksim kopas). Jebkurā gadÄ«jumā ierobežotai kopai vienmēr ir infimums.

Varat spēlēt ar Å”o failu, izmantojot Å”o saiti (neaizmirstiet iespējot makro atbalstu. Faili ir pārbaudÄ«ti, vai nav vÄ«rusu)

Metodes apraksts Vikipēdijā - k-nozīmē metode

2. Aproksimācija pēc polinomiem un datu sadalÄ«juma. PārkvalificÄ“Å”anās

Ievērojams zinātnieks un datu zinātnes popularizētājs K.V. Voroncovs Ä«si raksturo maŔīnmācÄ«Å”anās metodes kā "zinātni par lÄ«kņu zÄ«mÄ“Å”anu caur punktiem". Å ajā piemērā mēs datos atradÄ«sim modeli, izmantojot mazāko kvadrātu metodi.

ParādÄ«ts avota datu sadalÄ«Å”anas paņēmiens ā€œapmācÄ«bāā€ un ā€œkontrolēā€, kā arÄ« tāda parādÄ«ba kā pārkvalificÄ“Å”anās vai datu ā€œatkārtota pielāgoÅ”anaā€. Ar pareizu tuvinājumu mums bÅ«s noteikta kļūda treniņu datos un nedaudz lielāka kļūda kontroles datos. Ja tas ir nepareizi, tas rada precÄ«zu pielāgoÅ”anos apmācÄ«bas datiem un milzÄ«gu kļūdu testa datos.

(Ir labi zināms fakts, ka caur N punktiem var uzzÄ«mēt vienu N-1 pakāpes lÄ«kni, un Ŕī metode kopumā nedod vēlamo rezultātu. Lagranža interpolācijas polinoms Vikipēdijā)

1. Iestatiet sākotnējo sadalījumu

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

2. Punktus sadalām ā€œtreniņosā€ un ā€œkontrolēā€ attiecÄ«bā 70 pret 30.

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

3. Uzzīmējam aptuveno līkni gar treniņu punktiem, redzam kļūdu, ko tā dod kontroles datos

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

4. Mēs novelkam precīzu līkni caur treniņu punktiem, un mēs redzam milzīgu kļūdu kontroles datos (un nulle treniņu datos, bet kāda jēga?).

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

ParādÄ«ts, protams, vienkārŔākais variants ar vienu iedalÄ«jumu ā€œapmācÄ«basā€ un ā€œkontrolesā€ apakÅ”kopās; vispārÄ«gā gadÄ«jumā tas tiek darÄ«ts daudzas reizes, lai vislabāk pielāgotu koeficientus.

Fails ir pieejams Å”eit, skenēts ar antivÄ«rusu. Iespējojiet makro pareizai darbÄ«bai

3. Gradienta nolaiÅ”anās un kļūdu izmaiņu dinamika

BÅ«s 4-dimensiju gadÄ«jums un lineārā regresija. Lineārās regresijas koeficienti tiks noteikti soli pa solim, izmantojot gradienta nolaiÅ”anās metodi, sākotnēji visi koeficienti ir nulle. AtseviŔķs grafiks parāda kļūdu samazināŔanas dinamiku, jo koeficienti tiek koriģēti arvien precÄ«zāk. Ir iespējams apskatÄ«t visas četras 2-dimensiju projekcijas.

Ja gradienta nolaiÅ”anās soli iestatāt pārāk lielu, jÅ«s varat redzēt, ka katru reizi mēs izlaidÄ«sim minimumu un sasniegsim rezultātu lielākā soļu skaitā, lai gan beigās mēs tomēr nonāksim (ja vien mēs neaizkavēsim nolaiÅ”anās soli daudz - tad algoritms darbosies ā€œ pÄ«Ä·osā€). Un kļūdas grafiks atkarÄ«bā no iterācijas soļa nebÅ«s gluds, bet gan ā€œsaraustÄ«tsā€.

1. Ä¢enerējiet datus, iestatiet gradienta nolaiÅ”anās soli

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

2. Pareizi izvēloties gradienta nolaiÅ”anās soli, mēs vienmērÄ«gi un ātri sasniedzam minimumu

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

3. Ja gradienta nolaiÅ”anās solis ir izvēlēts nepareizi, mēs pārsniedzam maksimumu, kļūdu grafiks ir ā€œsaraustÄ«tsā€, konverÄ£encei nepiecieÅ”ams lielāks soļu skaits

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem
Šø

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

4. Ja gradienta nolaiÅ”anās soli izvēlamies pilnÄ«gi nepareizi, mēs attālināmies no minimuma

MaŔīnmācība bez Python, Anaconda un citiem rāpuļiem

(Lai reproducētu procesu, izmantojot attēlos redzamās gradienta nolaiÅ”anās soļu vērtÄ«bas, atzÄ«mējiet lodziņu ā€œatsauces datiā€).

Fails atrodas Å”ajā saitē, jums ir jāiespējo makro, nav vÄ«rusu.

Vai, pēc cienÄ«jamās sabiedrÄ«bas domām, Ŕāda vienkārÅ”oÅ”ana un materiāla pasniegÅ”anas metode ir pieņemama? Vai ir vērts tulkot rakstu angļu valodā?

Avots: www.habr.com

Pievieno komentāru