Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

Nuk, sigurisht, nuk e them këtë seriozisht. Duhet të ketë një kufi se sa larg mund të thjeshtohet një temë. Por për fazat e para, për të kuptuar konceptet bazë dhe për një kalim të shpejtë në temë, ndoshta është e pranueshme. Si duhet ta emërojmë këtë material (opsionet: "Mësimi i makinerive për fillestarët", "Analiza e të dhënave në hapat e para", "Algoritmet për më të vegjlit"), do ta diskutojmë në fund.

Po flasim për punën. Kam shkruar disa programe aplikative në MS Excel për vizualizimin dhe paraqitjen e qartë të proceseve që ndodhin në metodologjitë e ndryshme të mësimit të makinave gjatë analizës së të dhënave. Siç thonë anglishtfolësit, "të shohësh është të besosh", pasi këta janë ata që zhvilluan shumicën e këtyre metodave (për rastin e SVM, metodës më të fuqishme të mbështetjes së vektorëve, që është shpikur nga bashkëatdhetari ynë Vladimir Vapnik, Instituti i Menaxhimit të Moskës. Dhe kjo ishte në 1963! Tani ai, megjithatë, mëson dhe punon në SHBA).

Tri skedarë për shqyrtim

1. Klasifikimi me metodën k-means

Këto lloj detyrash i përkasin "mësimit pa mbikëqyrje", kur na nevojitet të ndajmë të dhënat e origjinës në një numër të caktuar kategorish të njohura paraprakisht, por gjithashtu nuk kemi asnjë sasi "përgjigjesh të sakta"; ato duhet të nxiren nga të dhënat vetë. Një detyrë thelbësore klasike për të gjetur nënllojtë e luleve të irisëve (Ronald Fisher, 1936!), që konsiderohet si fillimi i kësaj fushe të dijes - është pikërisht nga ky natyrë.

Metoda është mjaft e thjeshtë. Ne kemi një grup objektesh, të paraqitura si vektora (grupe N numrash). Për irisët, kjo është - grupe 4 numrash, që karakterizojnë lulen: gjatësi dhe gjerësi e pjesëve të jashtme dhe të brendshme të petaleve, përkatësisht (Irisët e Fisherit — Wikipedia). Si distancë, ose masë afërsie midis objekteve, është zgjedhur metrika Euclidiane.

Më pas, në mënyrë të rastësishme (ose të parastisur, shihni më poshtë) zgjidhen qendrat e grupeve, dhe llogariten distancat nga çdo objekt deri te qendrat e grupeve. Çdo objekt në këtë hap të iteracionit shënohet si i përkasin qendrës më të afërt. Më pas, qendra e secilit grup zhvendoset në mesataren aritmetike të koordinatave të anëtarëve të saj (në analogji me fizikën, quhet gjithashtu "qendra e masës"), dhe procedura përsëritet.

Procesi përfundon mjaft shpejt. Në pamjet dy-dimensionale duket kështu:

1. Shpërndarja fillestare rastësore e pikave në plan dhe numri i grupeve

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

2. Përcaktimi i qendrave të grupeve dhe ndarja e pikave në grupet e tyre

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

3. Shkallëzimi i koordinatave të qendrave të grupeve, rishikimi i përkatësisë së pikave, derisa qendrat të stabilizohen. Shikohet rruga e lëvizjes së qendrës së grupit në pozitat përfundimtare.

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

Në çdo moment, mund të përcaktojmë qendra të reja për grupet (pa e gjeneruar një shpërndarje të re pikash!) dhe të shohim se procesi i ndarjes nuk është gjithmonë i qartë. Matematika e kësaj do të thotë se në funksionin që optimizohet (shuma e katrorëve të distancave nga pikat në qendrat e grupeve të tyre), ne gjejmë një minimum lokal dhe jo global. Të zgjidhet ky problem mund të arrihet ose me një zgjedhje jo-rastësore të qendrave të grupeve fillestare, ose me kontrollimin e mundësive të qendrave (ndonjëherë ka avantazh që t’i vendosim saktësisht në njërën nga pikat, kështu që të paktën ka garanci që nuk do të kemi grupe bosh). Në çdo rast, një grup finito ka një kufi të saktë më të vogël.

Mund të eksperimentoni me këtë skedar përmes këtij lidhjeje (mos harroni të aktivizoni mbështetje për makros. Skedarët janë kontrolluar për viruse)

Përshkrimi i metodës në Wikipedia — Metoda k-mesatare

2. Aproximi me polinomë dhe ndarja e të dhënave. Rishpërndarja

Shkencëtari dhe popullarizuesi i shkencës së të dhënave K.V. Voroncov thotë shkurtimisht për metodat e të mësuarit të makinave si "shkenca e kalimit të kurbave përmes pikave". Në këtë shembull do të gjejmë një model në të dhëna duke përdorur metodën e katrorëve minimalë.

Tregohet teknika e ndarjes së të dhënave fillestare në "të mësuara" dhe "të kontrolluara", si dhe fenomeni i tillë si rishpërndarja, ose "ristrukturimi" sipas të dhënave. Me një aproximim të saktë, ne do të kemi një gabim në të dhënat e mësuara dhe një gabim pak më të madh - në ato të kontrolluara. Me një aproximim të gabuar - një përshtatje të saktë për të dhënat e mësuara dhe një gabim të madh në ato të kontrolluara.

(Fakti i njohur është se përmes N pikave mund të kalojmë një kurbë të vetme të rendit N-1 dhe ky metod, në rast të përgjithshëm, nuk jep rezultatin e nevojshëm. Polinomi interpolues i Lagrange në Wikipedia)

1. Përcaktojmë shpërndarjen fillestare

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

2. Ndajmë pikat në "të mësuara" dhe "të kontrolluara" në përqindjen 70 me 30.

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

3. Ne kemi një kurbë aproksimuese mbi pikët e mësimit, shohim gabimin që ajo jep në të dhënat kontrolluese.

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

4. Ne kemi një kurbë të saktë përmes pikëve të mësimit, dhe shohim një gabim monstruoz në të dhënat kontrolluese (dhe zero në ato të mësimit, por çfarë vlere ka?).

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

Këtu është treguar, natyrisht, varianti më i thjeshtë me një ndarje të vetme në nën-grupet e "mësimit" dhe "kontrollit", por në rastin të përgjithshëm kjo bëhet shumë herë për përshtatjen më të mirë të koeficientëve.

Skedari është i disponueshëm këtu, i verifikuar nga antivirus. Aktivizoni makros për punë të saktë.

3. Zbritja gradient dhe dinamika e ndryshimit të gabimit.

Këtu do të jetë rasti 4-dimensionale dhe regresioni linear. Koeficientët e regresionit linear do të përcaktohen hap pas hapi me metodën e zbritjes gradient, fillimisht të gjithë koeficientët janë zero. Në një grafik të veçantë duket dinamika e uljes së gabimit ndërsa koeficientët përshtaten më saktë. Ka mundësi për të parë të gjitha katër projekcionet 2-dimensionale.

Nëse caktojmë një hap shumë të madh të zbritjes gradient, atëherë duket se çdo herë do të shkelim minimumin dhe për të arritur rezultatin do të na duhen më shumë hapa, megjithatë, përfundimisht do të arrijmë (nëse vetëm nuk e ngrisim shumë hapat e zbritjes - pastaj algoritmi do të shkojë "në dështim"). Dhe grafiku i varësisë së gabimit nga hapi i iteracionit do të jetë jo i qetë, por "i trazuar".

1. Generojmë të dhëna, caktojmë hapin e zbritjes gradient.

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

2. Me zgjedhjen e duhur të hapit të zbritjes gradient, arrijmë ngadalë dhe mjaft shpejt te minimumi.

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

3. Me zgjedhjen e gabuar të hapit të zbritjes gradient, kalojmë maksimumin, grafiku i gabimit është "i trazuar", konvergjenca kërkon më shumë hapa.

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë
dhe

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

4. Me zgjedhjen krejtësisht të gabuar të hapit të zbritjes gradient, largohemi nga minimumi.

Mësimi i makinave pa Python, Anaconda dhe reptilët e tjerë

(Për të riprodhuar procesin me vlerat e treguara në figurat e hapit të zbritjes gradient, vendosni shenjën "të dhëna referimi").

Skedari është në këtë lidhje, duhet aktivizuar makros, nuk ka viruse.

Siç mendon komuniteti i nderuar, a është e pranueshme një thjeshtesim i tillë dhe metoda e prezentimit të materialit? A duhet ta përkthejmë artikullin në anglisht?

Burimi: habr.com

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster