Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

Ei, noh, muidugi, ma ei ole tõsine. Peab olema piir, mil määral on võimalik ainet lihtsustada. Kuid esimestel etappidel, põhimõistete mõistmisel ja kiiresti teemasse sisenemisel, võib see olla vastuvõetav. Arutame, kuidas seda materjali õigesti nimetada (valikud: "Masinõpe mannekeenidele", "Mähkmete andmete analüüs", "Algoritmid väikestele").

Täiendavalt. Kirjutas MS Excelis mitmeid rakendusprogramme andmete analüüsimisel erinevates masinõppemeetodites esinevate protsesside visualiseerimiseks ja visuaalseks esitamiseks. Nägemine on ju uskumine, nagu ütlevad kultuuri kandjad, mis arendas välja enamiku neist meetoditest (muide, mitte kõik. Kõige võimsam "tugivektorimasin" ehk SVM, tugivektori masin on leiutis meie kaasmaalane Vladimir Vapnik, Moskva Juhtimisinstituut. 1963 muide! Nüüd aga õpetab ja töötab USA-s).

Kolm faili ülevaatamiseks

1. K-tähendab klasterdamist

Seda tüüpi probleemid viitavad "järelevalveta õppimisele", kui peame jagama algandmed teatud arvuks eelnevalt teadaolevateks kategooriateks, kuid meil pole ühtegi "õiget vastust"; peame need eraldama andmetest endast. . Klassikaline fundamentaalne probleem iirise lillede alamliikide leidmisel (Ronald Fisher, 1936!), mida peetakse selle teadmisvaldkonna esimeseks märgiks, on just seda laadi.

Meetod on üsna lihtne. Meil on hulk objekte, mis on kujutatud vektoritena (N arvude komplekt). Iiriste puhul on need 4 numbrist koosnevad komplektid, mis iseloomustavad õit: vastavalt pärandi välimise ja sisemise laba pikkus ja laius (Fischeri iirised – Vikipeedia). Tavaline Descartes'i mõõdik valitakse objektide vaheliseks kauguseks või läheduse mõõduks.

Järgmiseks valitakse juhuslikult (või mitte juhuslikult, vt allpool) klastri keskpunktid ja arvutatakse kaugused igast objektist klastri tsentriteni. Iga objekt antud iteratsioonietapil on märgitud lähimasse keskusesse kuuluvaks. Seejärel kantakse iga klastri keskpunkt selle liikmete koordinaatide aritmeetilisele keskmisele (analoogiliselt füüsikaga nimetatakse seda ka massikeskmeks) ja protseduuri korratakse.

Protsess läheneb üsna kiiresti. Kahemõõtmelistel piltidel näeb see välja selline:

1. Punktide esialgne juhuslik jaotus tasapinnal ja klastrite arv

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

2. Klastrite keskuste määramine ja nende klastritele punktide määramine

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

3. Klastrite keskuste koordinaatide ülekandmine, punktide kuuluvuse ümberarvutamine kuni tsentrite stabiliseerumiseni. Nähtav on klastri keskuse lõppasendisse liikumise trajektoor.

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

Saate igal ajal määrata uued klastri keskused (ilma uut punktijaotust genereerimata!) ja veenduda, et partitsiooniprotsess pole alati üheselt mõistetav. Matemaatiliselt tähendab see, et optimeeritava funktsiooni jaoks (punktide ja nende klastrite keskpunktide kauguste ruudu summa) leiame mitte globaalse, vaid lokaalse miinimumi. Sellest probleemist saab üle kas algsete klastri keskuste mittejuhusliku valikuga või võimalike keskuste loendamisega (mõnikord on kasulik paigutada need täpselt ühte punkti, siis on vähemalt garantii, et tühjaks ei jää klastrid). Igal juhul on lõplikul hulgal alati infimum.

Selle failiga saate mängida sellel lingil (ärge unustage lubada makrotuge. Faile on viiruste suhtes kontrollitud)

Meetodi kirjeldus Vikipeedias - k-tähendab meetod

2. Lähendamine polünoomide ja andmete jaotuse järgi. Ümberõpe

Märkimisväärne teadlane ja andmeteaduse populariseerija K.V. Vorontsov kirjeldab masinõppe meetodeid lühidalt kui "teadust punktide kaudu kõverate joonistamiseks". Selles näites leiame andmetest mustri, kasutades vähimruutude meetodit.

Näidatud on lähteandmete “koolituseks” ja “kontrolliks” jagamise tehnikat, aga ka sellist nähtust nagu ümberõpe või andmetega “ümberkohandumine”. Õige lähenduse korral tekib meil teatud viga treeningandmetes ja veidi suurem viga kontrollandmetes. Kui see on vale, põhjustab see treeningandmete täpse kohandamise ja testiandmetes tohutu vea.

(Teada on tõsiasi, et läbi N punkti saab joonistada ühe N-1 astme kõvera ja see meetod üldiselt ei anna soovitud tulemust. Lagrange'i interpolatsiooni polünoom Vikipeedias)

1. Määrake esialgne jaotus

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

2. Jagame punktid “treeninguks” ja “kontrolliks” vahekorras 70:30.

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

3. Joonistame ligikaudse kõvera piki treeningpunkte, näeme selle antud viga kontrollandmetel

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

4. Joonistame treeningpunktide kaudu täpse kõvera ja näeme kontrollandmetel koletu viga (ja treeningandmetel nulli, aga mis mõtet sellel on?).

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

Loomulikult on näidatud lihtsaim variant, mis on jagatud alamhulkadeks "koolitus" ja "kontroll"; üldiselt tehakse seda koefitsientide parimaks kohandamiseks mitu korda.

Viirusetõrjega skannitud fail on siin saadaval. Õigeks tööks lubage makrod

3. Gradiendi laskumine ja vea muutumise dünaamika

Toimub 4-mõõtmeline juhtum ja lineaarne regressioon. Lineaarsed regressioonikoefitsiendid määratakse samm-sammult, kasutades gradiendi laskumise meetodit, algselt on kõik koefitsiendid nullid. Eraldi graafik näitab vea vähendamise dünaamikat, kuna koefitsiente korrigeeritakse üha täpsemalt. Võimalik on vaadata kõiki nelja 2-mõõtmelist projektsiooni.

Kui seate gradiendi laskumissammu liiga suureks, näete, et iga kord jätame minimaalse vahele ja jõuame tulemuseni suurema sammuna, kuigi lõpuks jõuame ikkagi kohale (kui just laskumissammu ei viivita palju - siis läheb algoritm " labidatega"). Ja iteratsioonietapist olenevalt vea graafik ei ole sujuv, vaid "tõmbunud".

1. Looge andmed, määrake gradiendi laskumise samm

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

2. Gradiendi laskumise sammu õige valiku korral jõuame sujuvalt ja kiiresti miinimumini

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

3. Kui gradiendi laskumise samm on valesti valitud, ületame maksimumi, veagraafik on "tõmbumine", lähenemine võtab rohkem samme

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta
и

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

4. Kui valime gradiendi laskumise sammu täiesti valesti, eemaldume miinimumist

Masinõpe ilma Pythoni, Anaconda ja muude roomajateta

(Protsessi reprodutseerimiseks piltidel näidatud gradiendi laskumisastme väärtuste abil märkige ruut „viiteandmed”).

Fail on sellel lingil, peate lubama makrod, viiruseid pole.

Kas lugupeetud kogukonna arvates on selline lihtsustus ja materjali esitamise viis vastuvõetav? Kas tasub artiklit inglise keelde tõlkida?

Allikas: www.habr.com

Lisa kommentaar