Gépi tanulás Python, Anaconda és más hüllők nélkül

Nem, persze, nem gondolom komolyan. Meg kell határozni, hogy milyen mértékben lehet egy tantárgyat leegyszerűsíteni. De az első szakaszban, az alapfogalmak megértése és a témába való gyors „belépés” elfogadható lehet. A végén megbeszéljük, hogyan kell helyesen elnevezni ezt az anyagot (opciók: „Gépi tanulás próbababákhoz”, „Adatelemzés pelenkákból”, „Algoritmusok a kicsiknek”).

Lényegre törő. Számos alkalmazási programot írt MS Excelben az adatok elemzése során a különböző gépi tanulási módszerekben előforduló folyamatok vizualizálására és vizuális megjelenítésére. A látás ugyanis hinni, ahogyan azt a kultúra hordozói mondják, amely a legtöbb ilyen módszert kifejlesztette (mellesleg nem mindegyiket. A legerősebb „támogató vektorgép”, vagy SVM, támogató vektorgép a honfitársunk, Vladimir Vapnik, Moszkvai Menedzsment Intézet. 1963 egyébként! Most viszont az USA-ban tanít és dolgozik).

Három fájl felülvizsgálatra

1. K-klaszterezést jelent

Az ilyen típusú problémák a „felügyelet nélküli tanulásra” utalnak, amikor a kiindulási adatokat bizonyos számú, előre ismert kategóriára kell felosztanunk, de nincs sok „helyes válaszunk”, hanem magából az adatból kell kinyernünk azokat. . Az íriszvirágok alfajainak megtalálásának alapvető klasszikus problémája (Ronald Fisher, 1936!), amelyet e tudásterület első jelének tartanak, éppen ilyen jellegű.

A módszer meglehetősen egyszerű. Van egy objektumkészletünk, amelyet vektorként ábrázolunk (N számból álló halmaz). Az íriszeknél ezek 4 számból álló halmazok, amelyek a virágot jellemzik: a perianth külső és belső lebenyének hossza és szélessége, ill.Fischer íriszek - Wikipédia). A szokásos derékszögű metrika az objektumok közötti távolság vagy közelség mértéke.

Ezután véletlenszerűen (vagy nem véletlenszerűen, lásd alább) kiválasztják a klaszterközpontokat, és kiszámítják az egyes objektumok és a klaszterközpontok közötti távolságokat. Minden objektum egy adott iterációs lépésben a legközelebbi központhoz tartozóként van megjelölve. Ezután minden klaszter középpontját átvisszük tagjai koordinátáinak számtani átlagába (a fizikával analóg módon tömegközéppontnak is nevezik), és az eljárást megismételjük.

A folyamat meglehetősen gyorsan konvergál. A képeken két dimenzióban így néz ki:

1. A pontok kezdeti véletlenszerű eloszlása ​​a síkon és a klaszterek száma

Gépi tanulás Python, Anaconda és más hüllők nélkül

2. Klaszterközpontok megadása és pontok hozzárendelése a fürtökhöz

Gépi tanulás Python, Anaconda és más hüllők nélkül

3. A klaszterközéppontok koordinátáinak átvitele, a pontok hovatartozásának újraszámítása a középpontok stabilizálódásáig. Látható a klaszter középpontjának végső pozíciójába kerülő pályája.

Gépi tanulás Python, Anaconda és más hüllők nélkül

Bármikor beállíthat új fürtközpontokat (anélkül, hogy új pontelosztást generálna!), és ellenőrizheti, hogy a particionálási folyamat nem mindig egyértelmű. Matematikailag ez azt jelenti, hogy az optimalizált függvényhez (a pontok és klasztereik középpontjai közötti távolság négyzetének összege) nem globális, hanem lokális minimumot találunk. Ezt a problémát akár a kezdeti klaszterközpontok nem véletlenszerű megválasztásával, akár a lehetséges központok számbavételével orvosolhatjuk (néha előnyös, ha pontosan valamelyik pontra helyezzük őket, akkor legalább garantált, hogy nem leszünk üresek klaszterek). Mindenesetre egy véges halmaznak mindig van infimuma.

Ezen a linken tud játszani ezzel a fájllal (ne felejtse el engedélyezni a makró támogatását. A fájlok vírusellenőrzésre kerültek)

A módszer leírása a Wikipédián - k-módszer

2. Közelítés polinomokkal és adatbontással. Átképzés

Figyelemre méltó tudós és az adattudomány népszerűsítője K.V. Voroncov röviden úgy írja le a gépi tanulási módszereket, mint „a görbék pontokon keresztül történő rajzolásának tudománya”. Ebben a példában egy mintát találunk az adatokban a legkisebb négyzetek módszerével.

Megjelenik a forrásadatok „képzésre” és „ellenőrzésre” való felosztásának technikája, valamint egy olyan jelenség, mint az átképzés, vagy az adatokhoz való „újraigazítás”. Helyes közelítéssel bizonyos hibánk lesz a képzési adatoknál, és valamivel nagyobb hibánk a vezérlő adatoknál. Ha hibás, akkor az edzési adatok pontos beállítását és hatalmas hibát eredményez a tesztadatokban.

(Köztudott tény, hogy N ponton keresztül egyetlen N-1 fokú görbe rajzolható, és ez a módszer általános esetben nem hozza meg a kívánt eredményt. Lagrange interpolációs polinom a Wikipédián)

1. Állítsa be a kezdeti elosztást

Gépi tanulás Python, Anaconda és más hüllők nélkül

2. A pontokat 70-30 arányban osztjuk fel „képzésre” és „kontrollra”.

Gépi tanulás Python, Anaconda és más hüllők nélkül

3. A képzési pontok mentén megrajzoljuk a közelítő görbét, a vezérlő adatokon látjuk az általa adott hibát

Gépi tanulás Python, Anaconda és más hüllők nélkül

4. Pontos görbét rajzolunk a képzési pontokon, és a kontroll adatokon szörnyű hibát látunk (a képzési adatokon pedig nullát, de mi értelme?).

Gépi tanulás Python, Anaconda és más hüllők nélkül

Természetesen a legegyszerűbb lehetőség látható, egyetlen felosztással „képzés” és „kontroll” részhalmazokra; általában ez sokszor megtörténik az együtthatók legjobb beállítása érdekében.

A fájl itt érhető el, víruskeresővel átvizsgálva. A helyes működés érdekében engedélyezze a makrókat

3. Gradiens süllyedés és a hibaváltozás dinamikája

Lesz egy 4 dimenziós eset és lineáris regresszió. A lineáris regressziós együtthatókat lépésről lépésre határozzuk meg a gradiens süllyedés módszerével, kezdetben minden együttható nulla. Egy külön grafikonon látható a hibacsökkentés dinamikája az együtthatók egyre pontosabb beállításával. Lehetőség van mind a négy 2-dimenziós vetítés megtekintésére.

Ha túl nagyra állítja a gradiens ereszkedési lépést, akkor láthatja, hogy minden alkalommal kihagyjuk a minimumot, és több lépésben érjük el az eredményt, bár végül mégis megérkezünk (hacsak nem késleltetjük az ereszkedési lépést is) sokkal - akkor az algoritmus „ pikkben” fog menni). A hiba grafikonja pedig az iterációs lépéstől függően nem sima, hanem „rángatós” lesz.

1. Generáljon adatokat, állítsa be a gradiens süllyedés lépését

Gépi tanulás Python, Anaconda és más hüllők nélkül

2. A gradiens süllyedés lépésének helyes megválasztásával simán és gyorsan elérjük a minimumot

Gépi tanulás Python, Anaconda és más hüllők nélkül

3. Ha a gradiens süllyedés lépése rosszul van kiválasztva, túllépjük a maximumot, a hibagrafikon „rángatós”, a konvergencia több lépést tesz meg

Gépi tanulás Python, Anaconda és más hüllők nélkül
и

Gépi tanulás Python, Anaconda és más hüllők nélkül

4. Ha teljesen rosszul választjuk ki a gradiens süllyedés lépését, akkor eltávolodunk a minimumtól

Gépi tanulás Python, Anaconda és más hüllők nélkül

(A folyamat reprodukálásához a képeken látható gradiens süllyedési lépésértékekkel, jelölje be a „referenciaadatok” négyzetet).

A fájl ezen a linken található, engedélyezned kell a makrókat, nincsenek vírusok.

A tisztelt közösség szerint elfogadható-e az anyag ilyen egyszerűsítése, bemutatásának módja? Érdemes lefordítani a cikket angolra?

Forrás: will.com

Hozzászólás