Uvod v algoritme strojnega učenja

Strojno učenje je študij napovedne analitike, ki deluje na principu, da se računalniki učijo iz preteklih podatkov in nato predvidevajo nove podatke. Pojav algoritmov strojnega učenja se je dolgo razvil, ko so bili računalniki razviti. Vendar je nedavni hype rezultat velikih količin podatkov, ki se pridobivajo, in velike računalniške moči, ki jo imajo sodobni računalniki. To je povzročilo nastanek globljega učenja, podpolja Strojno učenje, ki uspeva na več podatkov. Deluje kot človeški možgan, kjer se nevroni uporabljajo za boljše odločitve. Podobno pri globokem učenju nevronske mreže tvorijo plasti, ki sledijo načelu posredovanja in povratnega posredovanja za boljše odločitve.

Kategorije algoritmov strojnega učenja

Področje algoritmov strojnega učenja bi lahko razvrstili v -

  • Nadzorovano učenje - pri nadzorovanem učenju je nabor podatkov označen, to pomeni, da za vsako funkcijo ali neodvisno spremenljivko obstajajo ustrezni ciljni podatki, ki bi jih uporabili za usposabljanje modela.
  • Učenje pod nadzorom ZN - za razliko od superviziranega učenja v tem primeru nabor podatkov ni označen. Tako se metoda združevanja podatkov uporablja za razvrščanje podatkov na podlagi njihove podobnosti med podatkovnimi točkami v isti skupini.
  • Okrepitveno učenje - posebna vrsta strojnega učenja, kjer se model uči iz vseh izvedenih ukrepov. Model je nagrajen za vsako pravilno sprejeto odločitev in kaznovan za vsako napačno odločitev, ki mu omogoča, da se nauči vzorcev in sprejema bolj natančne odločitve o neznanih podatkih.

Oddelek Algoritmi strojnega učenja

Težave v algoritmih strojnega učenja lahko razdelimo na -

  • Regresija - obstaja stalna povezava med odvisnimi in neodvisnimi spremenljivkami. Ciljna spremenljivka je numerične narave, neodvisne spremenljivke pa so lahko numerične ali kategorične.
  • Razvrstitev - Najpogostejša izjava o težavah, ki bi jo našli v resničnem svetu, je razvrščanje podatkovne točke v nek binarni, multinomski ali redni razred. V težavi Binarne klasifikacije ima ciljna spremenljivka le dva izida (Da / Ne, 0/1, True / Lažno). V težavi z multinomalno klasifikacijo je v ciljni spremenljivki več razredov (Apple / Orange / Mango in tako naprej). V navadni klasifikacijski problematiki je ciljna spremenljivka razvrščena (npr. - ocena študentov).

Zdaj, da bi rešili tovrstne težave, so programerji in znanstveniki razvili nekaj programov ali algoritmov, ki bi jih lahko uporabili na podlagi podatkov za predvidevanje. Te algoritme lahko razdelimo na linearne in nelinearne ali drevesne algoritme. Linearni algoritmi, kot so linearna regresija, logistična regresija, se običajno uporabljajo, kadar obstaja linearna povezava med funkcijo in ciljno spremenljivko, medtem ko podatki, ki kažejo nelinearne vzorce, drevesne metode, kot so drevo odločitve, naključni gozd, povečanje gradientov, itd., so prednostne.

Do sedaj smo imeli kratko intuicijo o strojnem učenju. Zdaj bi se naučili nekaj njegovih vnaprej programiranih algoritmov, ki bi jih lahko uporabili pri naslednjem projektu.

Algoritmi

Obstajajo številni algoritmi strojnega učenja, ki so trenutno na trgu in se bodo le še povečali glede na količino raziskav, ki se izvajajo na tem področju. Linearna in logistična regresija sta na splošno prvi algoritem, ki se ga naučite kot podatkovni znanstvenik, za njim pa sledijo naprednejši algoritmi.

Spodaj je nekaj algoritmov strojnega učenja skupaj z vzorci odrezkov kode v pythonu.

1. Linearna regresija

Kot že ime pove, bi lahko ta algoritem uporabili v primerih, ko je ciljna spremenljivka, ki je v naravi neprekinjena, linearno odvisna od odvisnih spremenljivk. Zastopa ga -

y = a * x + b + e, kjer je y ciljna spremenljivka, ki jo poskušamo napovedati, a je prestrezanje in b je naklon, x je naša odvisna spremenljivka, ki se uporablja za izdelavo napovedi. To je preprosta linearna regresija, saj obstaja samo ena neodvisna spremenljivka. V primeru več linearne regresije bi bila enačba -

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Tu je e izraz napake in a1, a2 .. a (n) koeficient neodvisnih spremenljivk.

Za oceno uspešnosti modela se uporablja metrika, ki je v tem primeru lahko Root Srednja kvadratna napaka, ki je kvadratni koren srednje vsote razlike med dejansko in napovedano vrednostjo.

Cilj linearne regresije je najti najboljšo črto, ki bi zmanjšala razliko med dejanskimi in predvidenimi podatkovnimi točkami.

Linearno regresijo lahko v Python zapišemo kot spodaj -

2. Logistična regresija

V smislu ohranjanja linearnega odnosa je enako Linearni regresiji. Vendar je za razliko od linearne regresije ciljna spremenljivka v Logistični regresiji kategorične, torej binarne, multinomalne ali ordinalne narave. Izbira funkcije aktivacije je pri Logistični regresiji pomembna, saj se pri težavah z binarno klasifikacijo uporablja dnevnik kvot v prid, tj.

V primeru težav z več razreda je prednostna funkcija softmax, saj sigmoidna funkcija vzame veliko časa za računanje.

Metrika, ki se uporablja za oceno problema klasifikacije, je na splošno Natančnost ali krivulja ROC. Več ko je območja pod ROC, boljši je model. Naključni graf bi imel AUC 0, 5. Vrednost 1 označuje največ natančnosti, medtem ko 0 označuje najmanjšo natančnost.

Logistično regresijo lahko pri učenju zapišemo kot -


3. K-najbližji sosedje

Algoritmi strojnega učenja se lahko uporabljajo tako za težave s klasifikacijo kot za regresijo. Ideja metode KNN je ta, da napoveduje vrednost nove podatkovne točke na podlagi svojih K Najbližjih sosedov. K je na splošno prednostna kot neparna številka, da se prepreči kakršen koli spor. Pri razvrščanju katere koli nove podatkovne točke se upošteva razred z najvišjim načinom delovanja v sosedih. Medtem ko je za regresijski problem srednja vrednost.

Izvedel sem, da je KNN zapisan kot -


KNN se uporablja pri izdelavi priporočil.

4. Podpora vektorskih strojev

Algoritem za razvrstitev, kjer hiperplana ločuje oba razreda. V težavi binarne klasifikacije se dva vektorja iz dveh ločenih razredov štejeta kot podporna vektorja, hiperplana pa se nariše na največji razdalji od podpornih vektorjev.

Kot vidite, ena vrstica loči dva razreda. Vendar pa v večini primerov podatki ne bi bili tako popolni in preprosto hiperplano ne bi moglo ločevati razredov. Zato morate prilagoditi parametre, kot so Regularization, Kernel, Gamma itd.

Jedro je lahko linearno ali polinomno, odvisno od tega, kako so podatki ločeni. V tem primeru je jedro po naravi linearno. V primeru regularizacije morate izbrati optimalno vrednost C, saj bi visoka vrednost lahko privedla do prekomerne opremljenosti, medtem ko bi majhna vrednost lahko spodbudila model. Vpliv posameznega primera treninga določa Gama. Točke blizu črte veljajo za visoko gama in obratno za nizko gamo.

V sklearnu je SVM zapisan kot -


5. Naiven Bayes

Deluje po principu Bayesove teoreme, ki ugotovi verjetnost dogodka ob upoštevanju resničnih pogojev. Bayesov izrek je predstavljen kot -

Algoritem se imenuje Naive, ker verjame, da so vse spremenljivke neodvisne in prisotnost ene spremenljivke nima nobene zveze z drugimi spremenljivkami, kar v resničnem življenju nikoli ni. Naive Bayes bi lahko uporabili pri razvrščanju po elektronski pošti in pri klasifikaciji besedila.

Naive Bayesova koda v Pythonu -

6. Drevo odločitve

Algoritem odločitvenega drevesa, ki se uporablja tako za težave s klasifikacijo kot za regresijo, je eden najbolj preprostih in enostavno interpretativnih algoritmov strojnega učenja. Na to ne vplivajo odstranjevalci ali manjkajoče vrednosti v podatkih in bi lahko zajeli nelinearna razmerja med odvisnimi in neodvisnimi spremenljivkami.

Za izdelavo drevesa odločitve se najprej upoštevajo vse funkcije, vendar se funkcija z največjim izkoristkom informacij vzame kot končno vozlišče, na podlagi katerega se izvede zaporedna delitev. Ta delitev se nadaljuje na nadrejenem vozlišču na podlagi največjih meril za informacije in se ustavi, dokler niso razvrščeni vsi primeri ali če podatkov ne bi bilo mogoče razdeliti naprej. Drevesa odločitve so pogosto nagnjena k prekomernemu opremljanju, zato je treba prilagoditi hiperparameter, kot so največja globina, min listnih vozlišč, minimalni vzorci, največ lastnosti in tako naprej. Za zmanjšanje prekomernega opremljanja obstaja pohlepni pristop, ki na vsakem koraku postavlja omejitve in izbere najboljša možna merila za to razdelitev. Obstaja še en boljši pristop, imenovan Obrezovanje, pri katerem drevo najprej zgradimo do določene vnaprej določene globine, nato pa začnemo od spodaj vozlišča odstraniti, če ne izboljša modela.

V sklearnu so odločitvena drevesa kodirana kot -



7. Naključni gozd

Za zmanjšanje prekomernega opremljanja v drevesu odločitve je treba zmanjšati odstopanje modela in s tem se je uveljavil koncept vrečanja. Vrekanje je tehnika, pri kateri se za končni rezultat vzame izhod več klasifikatorjev. Naključni gozd je ena takih metod zbiranja, pri čemer se nabor podatkov vzorči v več naborov podatkov in funkcije se izberejo naključno za vsak niz. Nato se za vsak vzorčeni podatek uporabi algoritem odločitvenega drevesa, da dobimo izhod iz vsakega načina. V primeru regresijske težave se upošteva povprečna vrednost rezultata vseh modelov, medtem ko se v primeru težav s klasifikacijo šteje razred, ki dobi največ glasovanja, za razvrstitev podatkovne točke. Na naključni gozd ne vplivajo odstranjevalci, manjkajoče vrednosti v podatkih, pomaga pa tudi pri zmanjševanju dimenzij. Vendar pa ni razlaga, katera pomanjkljivost je naključni gozd. V Python-u bi lahko naključno zapisali gozdove kot -


8. K-pomeni grozd

Do sedaj smo delali z nadzorovanimi učnimi težavami, kjer je za vsak vložek ustrezen rezultat. Zdaj bi se naučili o nenadzorovanem učenju, kjer so podatki neoznačeni in jih je treba razvrstiti v posebne skupine. Na voljo je več tehnik združevanja. Vendar je najpogostejša med njimi skupina K-sredstev. Ink-pomeni, k se nanaša na število gruč, ki jih je treba nastaviti, da se ohrani največja odstopanje v naboru podatkov. Ko je k nastavljen, se centroidi inicializirajo. Centroidi se nato večkrat prilagodijo tako, da je razdalja med podatkovnimi točkami v središču največja in razdalja med dvema ločenima je največja. Evklidska razdalja, razdalja Manhattan itd. So nekatere formule razdalje, ki se uporabljajo v ta namen.

Vrednost k je mogoče najti iz komolčne metode.

Združevanje v obliki črke K se uporablja v panogah e-trgovine, kjer so kupci združeni na podlagi njihovih vedenjskih vzorcev. Uporablja se lahko tudi v analitiki tveganja. Spodaj je koda pytona -


Zaključek: Algoritmi strojnega učenja

Data Scientist je najbolj seksi delo v 21. stoletju, strojno učenje pa je zagotovo eno izmed njegovih ključnih področij. Če želite biti Data Scientist, je treba poglobljeno razumeti vse te algoritme in tudi nekatere druge nove tehnike, kot je globinsko učenje.

Priporočeni članki

To je vodnik za algoritme strojnega učenja. Tu smo razpravljali o konceptu, kategorijah, težavah in različnih algoritmih strojnega jezika. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Tehnike strojnega učenja
  2. Kaj je globoko učenje
  3. Data Scientist vs Strojno učenje
  4. Nadzorovano učenje v primerjavi z nenadzorovanim učenjem
  5. Strojno učenje hiperparametrov
  6. Kaj je okrepitev učenja?
  7. Najpogosteje uporabljene tehnike ansambelskega učenja
  8. Popoln priročnik za primere algoritma C ++
  9. Vodnik po fazah življenjskega cikla strojnega učenja

Kategorija: