Uvod u algoritme strojnog učenja

Strojno učenje je proučavanje prediktivne analitike koje djeluje na principu da računala uče iz prošlih podataka, a zatim predviđaju nove podatke. Pojava algoritama strojnog učenja dugo je prošla kada su računala razvijena. Međutim, nedavni hype rezultat je velikih količina podataka koje se generiraju i ogromne računalne snage koju posjeduju suvremena računala. To je rezultiralo pojavom Deep Learning-a, potpolja Strojno učenje koje uspijeva na više podataka. Djeluje poput ljudskog mozga u kojem se neuroni koriste za donošenje boljih odluka. Slično tome, u Deep Learningu neuronske mreže tvore slojeve koji slijede princip prosljeđivanja i unatrag kako bi se donijele bolje odluke.

Kategorije algoritama strojnog učenja

Područje algoritama strojnog učenja može se svrstati u -

  • Nadzirano učenje - u Nadziranom učenju skup podataka je označen, tj. Za svaku značajku ili neovisnu varijablu postoje odgovarajući ciljni podaci koji bismo koristili za obučavanje modela.
  • Učenje pod nadzorom UN-a - za razliku od superviziranog učenja, skup podataka u ovom slučaju nije označen. Stoga se tehnika grupiranja koristi za grupiranje podataka na temelju njihove sličnosti među točkama podataka u istoj skupini.
  • Učenje ojačanja - posebna vrsta strojnog učenja gdje model uči iz svake poduzete radnje. Model se nagrađuje za svaku ispravnu odluku i kažnjava za svaku pogrešnu odluku koja mu omogućava da nauči obrasce i donosi bolje precizne odluke o nepoznatim podacima.

Odjeljenje algoritama strojnog učenja

Problemi u algoritmima strojnog učenja mogu se podijeliti na -

  • Regresija - Postoji kontinuirani odnos između ovisne i neovisne varijable. Ciljna varijabla je numeričke prirode, dok bi neovisne varijable mogle biti numeričke ili kategoričke.
  • Razvrstavanje - najčešća izjava problema koju biste pronašli u stvarnom svijetu je razvrstavanje podatkovne točke u neke binarne, multinomne ili ordinalne klase. U problemu Binarne klasifikacije ciljna varijabla ima samo dva ishoda (Da / Ne, 0/1, Istina / Netačno). U problemu s klasifikacijom multinomne klase nalazi se više klasa u ciljnoj varijabli (Apple / Orange / Mango i tako dalje). U problemu Ordinalne klasifikacije ciljna je varijabla određena (npr. - ocjena učenika).

Sada, za rješavanje takvih problema, programeri i znanstvenik razvili su neke programe ili algoritme koji bi se mogli koristiti na podacima da bi predvidjeli. Ovi algoritmi mogu se podijeliti na algoritme linearnih i nelinearnih ili na stablima. Linearni algoritmi poput linearne regresije i logističke regresije općenito se koriste kada postoji linearni odnos između značajke i ciljne varijable, dok podaci koji pokazuju nelinearne obrasce, drveće metode kao što su stablo odlučivanja, slučajna šuma, poticanje gradijenta, itd. preferiraju se.

Do sada smo dobili kratku intuiciju o strojnom učenju. Sada biste naučili neke od unaprijed programiranih algoritama koje biste mogli koristiti u svom sljedećem projektu.

algoritmi

Postoje brojni algoritmi strojnog učenja koji su trenutno na tržištu i koji će se samo povećati s obzirom na količinu istraživanja koja se provode u ovom polju. Linearna i logistička regresija općenito su prvi algoritmi koje naučite kao Data Science, a slijede napredniji algoritmi.

Ispod su neki od algoritama Strojnog učenja, zajedno s primjercima isječaka koda u pythonu.

1. Linearna regresija

Kao što ime sugerira, ovaj algoritam mogao bi se koristiti u slučajevima kada ciljna varijabla koja je u prirodi kontinuirana linearno ovisi o ovisnim varijablama. Zastupa ga -

y = a * x + b + e, gdje je y ciljna varijabla koju pokušavamo predvidjeti, a je presretanje i b je nagib, x je naša ovisna varijabla koja se koristi za izradu predviđanja. Ovo je jednostavna linearna regresija jer postoji samo jedna neovisna varijabla. U slučaju višestruke linearne regresije, jednadžba bi bila -

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

Ovdje je e izraz pogreške i a1, a2 .. a (n) koeficijent neovisnih varijabli.

Za ocjenu performansi modela koristi se metrika koja u ovom slučaju može biti Root Srednja kvadratna pogreška koja je kvadratni korijen srednje vrijednosti zbroja razlike stvarne i predviđene vrijednosti.

Cilj linearne regresije je pronaći najbolju liniju stajanja koja bi umanjila razliku između stvarnih i predviđenih podataka.

Linearna regresija mogla bi se u Python zapisati kao dolje -

2. Logistička regresija

U pogledu održavanja linearnog odnosa, isti je kao i Linearna regresija. Međutim, za razliku od Linearne regresije, ciljna varijabla u Logističkoj regresiji je kategoričke, tj. Binarne, multinomne ili ordinalne prirode. Odabir funkcije aktivacije važan je u Logističkoj regresiji, a za probleme binarne klasifikacije koristi se dnevnik kvota u korist, tj. Koristi se sigmoidna funkcija.

U slučaju problema s više klasa, preferira se funkcija softmaxa, jer sigmoidna funkcija zahtijeva puno vremena za računanje.

Metrika koja se koristi za ocjenu problema s klasifikacijom općenito je Točnost ili krivulja ROC-a. Što je više područja ispod ROC-a, bolji je model. Nasumični graf imao bi AUC 0, 5. Vrijednost 1 ukazuje na većinu točnosti, dok 0 označava najmanju točnost.

Logistička regresija u učenju može biti napisana kao -


3. K-najbliži susjedi

Algoritmi strojnog učenja mogu se koristiti i za klasifikaciju i za regresijske probleme. Ideja KNN metode je da ona predviđa vrijednost nove podatkovne točke na temelju svojih K Najbližih susjeda. K je općenito poželjan kao neparni broj da se izbjegne bilo kakav sukob. Pri razvrstavanju bilo koje nove podatkovne točke uzima se u obzir klasa s najvišim načinom rada u susjedstvu. Dok se za regresijski problem smatra srednja vrijednost.

Saznao sam da se KNN piše kao -


KNN koristi se u izradi mehanizama preporuka.

4. Podrška vektorskih strojeva

Algoritam klasifikacije u kojem hiperplana razdvaja dvije klase. U problemu binarne klasifikacije dva vektora iz dvije različite klase smatraju se vektorima potpore, a hiperplana se izvlači na maksimalnoj udaljenosti od nosivih vektora.

Kao što vidite, jedan redak razdvaja dva razreda. Međutim, u većini slučajeva podaci ne bi bili tako savršeni i jednostavna hiperplana ne bi mogla razdvojiti klase. Stoga trebate podesiti parametre kao što su Regularization, Kernel, Gamma i tako dalje.

Kernel može biti linearan ili polinom, ovisno o načinu razdvajanja podataka. U ovom slučaju kernel je linearne naravi. U slučaju regularizacije, trebate odabrati optimalnu vrijednost C, jer bi visoka vrijednost mogla dovesti do prekomjernog uklapanja, dok bi mala vrijednost mogla biti u nedostatku modela. Utjecaj pojedinog primjera treninga definira Gamma. Bodovi blizu linije smatraju se visokom gama i obrnuto za slabu gama.

U sklearnu je SVM zapisan kao -


5. Naivni Bayes

Radi na principu Bayesove teoreme koja pronalazi vjerojatnost događaja s obzirom na neke istinske uvjete. Bayesov teorem predstavljen je kao -

Algoritam se naziva Naivan jer vjeruje da su sve varijable neovisne i da prisutnost jedne varijable nema nikakve veze s drugim varijablama što nikada nije slučaj u stvarnom životu. Naive Bayes može se koristiti u klasifikaciji e-pošte neželjene pošte i u klasifikaciji teksta.

Naive Bayesov kod u Pythonu -

6. Stablo odluke

Korišten i za probleme s klasifikacijom i za regresiju, algoritam stabla odlučivanja jedan je od najjednostavnijih i najlakše interpretiranih algoritama strojnog učenja. Na njega ne utječu odmetnici ili nedostajuće vrijednosti u podacima i mogu zahvatiti nelinearne odnose između ovisnih i neovisnih varijabli.

Da biste izgradili stablo odluka, u početku se razmatraju sve značajke, ali značajka s najvećim dobitkom informacija uzima se kao završni korijenski čvor na temelju kojeg se vrši uzastopno dijeljenje. Ovo dijeljenje nastavlja se na podređenom čvoru na temelju maksimalnih kriterija informacija i ono traje sve dok se ne klasificiraju sve instance ili podaci ne mogu dalje dijeliti. Stabla odluka često su sklona prekomjernom uklapanju, pa je potrebno podesiti hiperparametar kao što su najveća dubina, min listova lišća, minimalni uzorci, maksimalne značajke i tako dalje. Kako bi se smanjio prekomjerni rad, postoji pohlepni pristup koji postavlja ograničenja u svakom koraku i odabire najbolje moguće kriterije za taj rascjep. Postoji još jedan bolji pristup koji se zove Obrezivanje, gdje se drvo najprije izgradi na određenu unaprijed zadanu dubinu, a zatim se od dna uklanjaju čvorovi ako ne poboljšava model.

U sklearnu se stabla odluka kodiraju kao -



7. Slučajna šuma

Da bi se smanjilo prekomjerno uklapanje u stablo odluka, potrebno je smanjiti varijancu modela i na taj je način uspostavljen koncept pakiranja. Kopanje je tehnika u kojoj se za stvaranje konačnog rezultata uzima nekoliko proizvoda klasifikatora. Random Forest jedna je takva metoda pakiranja u koju se skup podataka uzorkuje u više skupova podataka, a značajke se odabiru nasumično za svaki skup. Zatim se na svaki uzorkovani podatak primjenjuje algoritam stabla odlučivanja kako bi se dobio izlaz iz svakog načina. U slučaju regresijskog problema uzima se srednja vrijednost ispisa svih modela, dok se u slučaju problema s klasifikacijom klasificira točka podataka, za klasu koja dobiva maksimalan glas smatra se klasa koja dobije najviše glasova. Slučajna šuma ne utječe na odmetnike, nedostaju vrijednosti u podacima, a također pomaže u smanjenju dimenzija. Međutim, nije razumljivo što predstavlja nedostatak za Random Forest. Na Pythonu biste mogli kodirati Random Forest kao -


8. K-znači klasteriranje

Do sada smo radili s problemima učenja pod nadzorom, gdje za svaki ulaz postoji odgovarajući izlaz. Sada bismo naučili o nenadziranom učenju gdje su podaci neoznačeni i potrebno ih je razvrstati u određene skupine. Na raspolaganju je nekoliko tehnika grupiranja. Međutim, najčešće od njih je grupiranje K-sredstava. Ink-znači, k odnosi se na broj klastera koje je potrebno postaviti prije nego što zadrži maksimalnu varijancu u skupu podataka. Nakon što je k postavljen, centroidi se inicijaliziraju. Centroidi se zatim više puta podešavaju tako da je udaljenost podatakanih točaka u središtu najveća, a razmak između dva odvojena maksimalan. Euklidska udaljenost, udaljenost Manhattana, itd., Neke su od formula koje se koriste u tu svrhu.

Vrijednost k može se pronaći iz metode lakta.

K-znači klasteriranje se koristi u industrijama e-trgovine gdje se kupci grupiraju na temelju svojih obrazaca ponašanja. Može se koristiti i u Risk Analytics. Ispod je python kod -


Zaključak: Algoritmi strojnog učenja

Data Scientist najseksi je posao u 21. stoljeću, a Strojno učenje je sigurno jedno od njegovih ključnih područja stručnosti. Da biste bili znanstvenik podataka, potrebno je dubinsko razumijevanje svih ovih algoritama i nekoliko drugih novih tehnika poput dubokog učenja.

Preporučeni članci

Ovo je vodič za algoritme strojnog učenja. Ovdje smo raspravljali o konceptu, kategorijama, problemima i različitim algoritmima strojnog jezika. Možete i proći kroz naše druge Prijedloge članaka da biste saznali više -

  1. Tehnike strojnog učenja
  2. Što je duboko učenje
  3. Data Scientist vs Strojno učenje
  4. Nadzirano učenje vs Nadzorno učenje
  5. Strojno učenje hiperparametara
  6. Što je pojačano učenje?
  7. Najčešće korištene tehnike ansamblovskog učenja
  8. Kompletan vodič za primjere algoritma C ++
  9. Vodič kroz faze životnog ciklusa strojnog učenja

Kategorija: