Johdanto koneoppimisalgoritmeihin

Koneoppiminen on ennustavan analytiikan tutkimusta, joka toimii periaatteella, että tietokoneet oppivat aiemmista tiedoista ja tekevät sitten ennusteita uudesta tiedosta. Koneoppimisalgoritmien synty oli kauan sitten, kun tietokoneita kehitettiin. Viimeaikainen hype on kuitenkin seurausta tulossa olevista suurista tietomääristä ja nykyaikaisten tietokoneiden valtavasta laskentatehosta. Tämä on johtanut syvän oppimisen, koneoppimisen alakentän syntyyn, joka kukoistaa enemmän dataa. Se toimii kuin ihmisen aivot, jossa neuroneja käytetään parempien päätösten tekemiseen. Samoin syvässä oppimisessa hermoverkot muodostavat kerrokset, jotka seuraavat eteenpäin suuntautumisen ja taaksepäin leviämisen periaatetta parempien päätösten tekemiseksi.

Koneoppimisen algoritmien luokat

Koneoppimisen algoritmien kenttä voidaan luokitella -

  • Ohjattu oppiminen - Ohjatussa oppimisessa tietojoukko on merkitty, eli jokaisella ominaisuudella tai itsenäisellä muuttujalla on vastaava kohdetieto, jota käyttäisimme mallin kouluttamiseen.
  • YK-ohjattu oppiminen - Toisin kuin ohjatussa oppimisessa, tietojoukkoa ei tässä tapauksessa merkitä. Siten klusterointitekniikkaa käytetään tietojen ryhmittämiseen sen samankaltaisuuden perusteella saman ryhmän datapisteiden välillä.
  • Vahvistusoppiminen - erikoistyyppinen koneoppiminen, jossa malli oppii jokaisesta tehdystä toiminnasta. Malli palkitaan kaikista tehdyistä oikeista päätöksistä ja rangaistaan ​​vääristä päätöksistä, joiden avulla se voi oppia mallit ja tehdä entistä tarkempia päätöksiä tuntemattomista tiedoista.

Koneoppimisen algoritmien jako

Koneoppimisen algoritmien ongelmat voitaisiin jakaa -

  • Regressio - riippuvaisten ja riippumattomien muuttujien välillä on jatkuva suhde. Kohdemuuttuja on luonteeltaan numeerinen, kun taas riippumattomat muuttujat voivat olla numeerisia tai kategorisia.
  • Luokittelu - Yleisin ongelmalausunto, jonka löydät todellisesta maailmasta, on luokitella datapiste johonkin binaariseen, monikielisiin tai ordinaariluokkiin. Binaariluokittelu -ongelmassa kohdemuuttujalla on vain kaksi lopputulosta (Kyllä / Ei, 0/1, True / False). Multinomial Classification -ongelmassa kohdemuuttujassa on useita luokkia (Apple / Orange / Mango ja niin edelleen). Ordinal-luokittelutehtävässä tavoitemuuttuja järjestetään (esim. - opiskelijoiden luokka).

Nyt tällaisten ongelmien ratkaisemiseksi ohjelmoijat ja tutkijat ovat kehittäneet joitain ohjelmia tai algoritmeja, joita voidaan käyttää tietoihin ennusteiden tekemiseen. Nämä algoritmit voitaisiin jakaa lineaarisiin ja epälineaarisiin tai puupohjaisiin algoritmeihin. Lineaarisia algoritmeja, kuten lineaarista regressiota, logistista regressiota, käytetään yleensä, kun ominaisuuden ja kohdemuuttujan välillä on lineaarinen suhde, kun taas tiedot, joilla on epälineaarisia kuvioita, puupohjaiset menetelmät, kuten päätöksentekopuu, satunnainen metsä, gradientin lisääminen, jne., ovat edullisia.

Toistaiseksi olemme saaneet lyhyen intuition koneoppimisesta. Nyt opit joitain sen esiohjelmoiduista algoritmeista, joita voit käyttää seuraavassa projektissasi.

algoritmit

Nykyään markkinoilla on lukuisia koneoppimisalgoritmeja, ja se vain kasvaa ottaen huomioon tällä alalla tehtävän tutkimuksen määrän. Lineaarinen ja logistinen regressio ovat yleensä ensimmäiset algoritmit, jotka opit Data Scientistina ja joita seuraavat edistyneemmät algoritmit.

Alla on joitain koneoppimisalgoritmeja ja python-mallinäytteitä.

1. Lineaarinen regressio

Kuten nimestä voi päätellä, tätä algoritmia voidaan käyttää tapauksissa, joissa tavoitemuuttuja, joka on luonteeltaan jatkuva, riippuu lineaarisesti riippuvista muuttujista. Sitä edustaa -

y = a * x + b + e, missä y on tavoitemuuttuja, jota yritämme ennustaa, a on sieppaus ja b on kaltevuus, x on riippuvainen muuttujamme, jota käytetään ennustamiseen. Tämä on yksinkertainen lineaarinen regressio, koska on vain yksi riippumaton muuttuja. Usean lineaarisen regression tapauksessa yhtälö olisi ollut -

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

Tässä e on virhetermi ja a1, a2 .. a (n) ovat riippumattomien muuttujien kertoimet.

Mallin suorituskyvyn arvioimiseksi käytetään metriikkaa, joka tässä tapauksessa voi olla Juur keskimääräinen neliövirhe, joka on todellisten ja ennustettujen arvojen erotuksen summan keskiarvon neliöjuuri.

Lineaarisen regression tavoitteena on löytää parhaiten sopiva linja, joka minimoi todellisen ja ennustetun datapisteen erot.

Lineaarinen regressio voitaisiin kirjoittaa Pythoniin seuraavasti:

2. Logistinen regressio

Lineaarisen suhteen ylläpitämisen kannalta se on sama kuin lineaarinen regressio. Toisin kuin lineaarisessa regressiossa, logistisen regression tavoitemuuttuja on kuitenkin luonteeltaan kategorinen, ts. Binaarinen, moninominen tai ordinaalinen. Aktivointitoiminnon valinta on tärkeä logistisessa regressiossa, koska binäärisissä luokitteluongelmissa käytetään kertoimien lokia hyväksi eli käytetään sigmoidifunktiota.

Moniluokkaisen ongelman tapauksessa softmax-toiminto on edullinen, koska sigmoidifunktio vie paljon laskenta-aikaa.

Luokitteluongelman arvioimiseksi käytetty mittari on yleensä tarkkuus tai ROC-käyrä. Mitä enemmän alue on ROC: n alla, sitä parempi on malli. Satunnaisdiagrammin AUC olisi 0, 5. Arvo 1 ilmaisee suurimman tarkkuuden, kun taas 0 osoittaa vähiten tarkkuutta.

Logistinen taantuma voidaan kirjoittaa oppimisessa -


3. K-Lähin naapurit

Koneoppimisen algoritmeja voidaan käyttää sekä luokittelu- että regressio-ongelmiin. KNN-menetelmän idea on, että se ennustaa uuden datapisteen arvon perustuen sen K lähimpiin naapureihin. K on yleensä parempi parittomana numerona konfliktien välttämiseksi. Kun luokitellaan uutta datapistettä, otetaan huomioon luokka, jolla on naapureiden korkein tila. Regressio-ongelman kohdalla keskiarvoa pidetään arvona.

Sain tietää, että KNN on kirjoitettu -


KNN: ää käytetään suositusmoottorin rakentamisessa.

4. Tuki vektorikoneita

Luokittelualgoritmi, jossa hyperpinta erottaa kaksi luokkaa. Binaarisessa luokitteluongelmassa kaksi vektoria kahdesta erillisestä luokasta katsotaan tunnetuiksi tukivektoreina ja hypertaso piirretään suurimmalla etäisyydellä tukivektoreista.

Kuten näette, kaksi riviä erottaa yksi rivi. Useimmissa tapauksissa data ei kuitenkaan olisi niin täydellinen ja yksinkertainen hyperkone ei pystyisi erottamaan luokkia. Siksi sinun on viritettävä parametrit, kuten Normalization, Kernel, Gamma ja niin edelleen.

Ydin voi olla lineaarinen tai polynominen riippuen siitä, miten tiedot erotetaan. Tässä tapauksessa ydin on luonteeltaan lineaarinen. Normalisoinnin tapauksessa sinun on valittava optimaalinen arvo C, koska korkea arvo voi johtaa ylimääräiseen asennukseen, kun taas pieni arvo saattaa alittaa mallin. Gamma määrittelee yhden harjoitteluesimerkin vaikutuksen. Viivan lähellä olevia pisteitä pidetään suuressa gammassa ja päinvastoin matalassa gammassa.

Sklearnissa SVM kirjoitetaan -


5. Naiivi Bayes

Se toimii Bayes-lauseen periaatteella, joka löytää tapahtuman todennäköisyyden ottaen huomioon joitain todellisia olosuhteita. Bayes-lause esitetään muodossa -

Algoritmia kutsutaan naiiviksi, koska se uskoo kaikkien muuttujien olevan riippumattomia ja yhden muuttujan läsnäololla ei ole mitään suhdetta muihin muuttujiin, mikä ei ole koskaan todellisessa elämässä. Naive Bayes -sovellusta voidaan käyttää sähköpostin roskapostin luokittelussa ja tekstiluokittelussa.

Naiivi Bayes -koodi Pythonissa -

6. Päätöspuu

Sekä luokittelu- että regressio-ongelmiin käytettynä, päätöksenteko-algoritmi on yksi yksinkertaisimmista ja helposti tulkittavissa olevista koneoppimisalgoritmeista. Siihen eivät vaikuta poikkeavuudet tai puuttuvat arvot tiedoissa, ja se voisi kaapata epälineaariset suhteet riippuvien ja riippumattomien muuttujien välillä.

Päätöksen puun rakentamiseksi kaikki ominaisuudet otetaan ensin huomioon, mutta ominaisuus, jolla on suurin informaatiovoitto, otetaan lopulliseksi juurisolmuksi, jonka perusteella peräkkäinen jakaminen tehdään. Tämä jakaminen jatkuu ala-solmulla enimmäistietokriteerien perusteella ja pysähtyy, kunnes kaikki esiintymät on luokiteltu tai tietoja ei voida jakaa edelleen. Päätöspuut ovat usein alttiita liian suurille asennuksille, ja siksi on välttämätöntä virittää hyperparametri kuten enimmäissyvyys, pienimmät lehden solmut, vähimmäisnäytteet, enimmäisominaisuudet jne. Yliasennuksen vähentämiseksi on olemassa ahne lähestymistapa, joka asettaa rajoitukset jokaisessa vaiheessa ja valitsee parhaat mahdolliset kriteerit kyseiselle jaolle. On toinenkin parempi menetelmä, nimeltään Leikkaaminen, jossa puu rakennetaan ensin tiettyyn ennalta määritettyyn syvyyteen ja sitten pohjasta alkaen solmut poistetaan, jos se ei paranna mallia.

Sklearnissa päätöksenpuut koodataan seuraavasti:



7. Satunnainen metsä

Päästöpuun liiallisen asettamisen vähentämiseksi on vähennettävä mallin varianssia, ja siten pakkauksen käsite tuli paikalleen. Pussitus on tekniikka, jossa useiden luokittelulaitteiden lähtö otetaan lopulliseksi tuotokseksi. Random Forest on yksi sellainen pussitusmenetelmä, jossa tietojoukosta otetaan näytteitä useaan tietojoukkoon ja ominaisuudet valitaan satunnaisesti jokaiselle joukolle. Sitten jokaisessa näytteistetyssä datassa sovelletaan päätöksenteko-algoritmia, jotta saadaan lähtö jokaisesta moodista. Regressio-ongelman tapauksessa kaikkien mallien tulosteen keskiarvo otetaan huomioon, kun taas luokitteluongelman tapauksessa luokan, joka saa suurimman äänen, katsotaan luokittelevan datapisteen. Satunnaismetsään eivät vaikuta poikkeamat, puuttuvat arvot tiedoista ja se auttaa myös mittasuhteiden vähentämisessä. Ei kuitenkaan voida tulkita, mikä haitta Random Forestille. Pythonissa voit koodata Random Forestin nimellä -


8. K-tarkoittaa klusterointia

Toistaiseksi olemme työskennelleet ohjattujen oppimisongelmien kanssa, joissa jokaisella syötteellä on vastaava tulos. Nyt opimme valvomattomasta oppimisesta, jossa tietoja ei ole merkitty ja jotka on ryhmitelty tiettyihin ryhmiin. Ryhmittelytekniikoita on saatavana useita. Kuitenkin yleisin niistä on K-keinot. Mustekeinot, k viittaa klustereiden lukumäärään, jotka on asetettava ennen datan suurimman varianssin ylläpitämistä. Kun k on asetettu, centroidit alustetaan. Sen jälkeen centroidit säädetään toistuvasti siten, että keskipisteen sisällä olevien datapisteiden välinen etäisyys on suurin ja etäisyys kahden erillisen välillä on suurin. Euklidinen etäisyys, Manhattanin etäisyys jne. Ovat joitain etäisyyskaavaa, jota käytetään tähän tarkoitukseen.

K: n arvo voitiin löytää kyynärmenetelmästä.

K-keinojen klusterointia käytetään verkkokaupan aloilla, joissa asiakkaat ryhmitellään käyttäytymismalliensa perusteella. Sitä voidaan käyttää myös riskianalyysissä. Alla on python-koodi -


Johtopäätös: Koneoppimisen algoritmit

Data Scientist on 2000-luvun seksikkäin työ, ja koneoppiminen on varmasti yksi sen keskeisistä osaamisalueista. Tietotieteilijäksi tarvitsemme perusteellisen ymmärryksen kaikista näistä algoritmeista ja myös useista muista uusista tekniikoista, kuten syväoppimisesta.

Suositellut artikkelit

Tämä on opas koneoppimisalgoritmeihin. Täällä olemme keskustelleet konekielen käsitteestä, kategorioista, ongelmista ja erilaisista algoritmeista. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Koneoppimistekniikat
  2. Mikä on syvä oppiminen
  3. Data Scientist vs Machine Learning
  4. Ohjattu oppiminen vs.
  5. Hyperparametrinen koneoppiminen
  6. Mikä on vahvistusoppiminen?
  7. Ensemble-oppimisen eniten käytettyjä tekniikoita
  8. Täydellinen opas esimerkkeihin C ++ -algoritmista
  9. Opas koneoppimisen elinkaaren vaiheisiin

Luokka: