Koneoppiminen on tiede (ja taito) ohjelmoida tietokoneita niin, että ne voivat oppia datasta.
Tutkimusala, joka antaa tietokoneille kyvyn oppia ilman nimenomaista ohjelmointia. – Arthur Samuel, 1959
parempi määritelmä:
Tietokoneohjelman sanotaan oppivan kokemuksesta E jonkin tehtävän T ja jonkin suorituskykymittarin P suhteen, jos sen suorituskyky T:ssä, P:llä mitattuna, paranee kokemuksen E myötä. – Tom Mitchell, 1997
Esimerkiksi roskapostisuodatin on koneoppiva ohjelma, joka voi oppia merkitsemään roskapostin sen jälkeen, kun sille on annettu esimerkkejä käyttäjien merkitsemistä roskapostiviesteistä ja esimerkkejä tavallisista ei-roskapostiviesteistä (joita kutsutaan myös nimellä ”ham”). Esimerkkejä, joita järjestelmä käyttää oppimiseen, kutsutaan harjoitusjoukoksi. Tässä tapauksessa tehtävänä (T) on merkitä roskapostia uusiin sähköpostiviesteihin, kokemus (E) on harjoitusaineisto, ja suorituskykymittari (P) on määriteltävä. Voit esimerkiksi käyttää P:nä oikein luokiteltujen sähköpostien suhdelukua. Tätä tiettyä suorituskykymittaria kutsutaan tarkkuudeksi, ja sitä käytetään usein luokittelutehtävissä, koska kyseessä on valvotun oppimisen lähestymistapa.
Dive DeeperAn Introduction to Machine Learning for Beginners
Valvottu oppiminen
Valvotussa oppimisessa algoritmit oppivat merkityistä tiedoista. Kun algoritmi on ymmärtänyt datan, se määrittää, mikä etiketti uudelle datalle tulisi antaa, yhdistämällä merkitsemättömään uuteen dataan kuvioita.
Valvottu oppiminen voidaan jakaa kahteen luokkaan: luokittelu ja regressio.
Luokittelu ennustaa, mihin luokkaan data kuuluu.
Joitakin esimerkkejä luokittelusta ovat roskapostin havaitseminen, vaihtuvuuden ennustaminen, sentimenttianalyysi, koirarotujen havaitseminen ja niin edelleen.
Regressio ennustaa numeerisen arvon aiemmin havaittujen tietojen perusteella.
Esimerkkejä regressiosta ovat esimerkiksi asuntojen hintojen ennustaminen, osakkeiden hintojen ennustaminen, pituuden ja painon ennustaminen ja niin edelleen.
Sukellu syvemmälleKierros 10 tärkeimmän algoritmin pariin koneoppimisen aloittelijoille
Luokittelu
Luokittelu on tekniikka, jonka avulla voidaan määritellä riippuvaisen muuttujan luokka, joka muodostetaan sen perusteella, mihin luokkaan riippuvainen aineisto kuuluu.
Luokittelua käytetään diskreettien vastausten ennustamiseen.
Logistinen regressio
Logistinen regressio on tavallaan lineaarisen regression kaltainen, mutta sitä käytetään silloin, kun riippuvainen muuttuja ei ole luku, vaan jotain muuta (esim, ”kyllä/ei”-vastaus). Sitä kutsutaan regressioksi, mutta se suorittaa luokittelun regression perusteella ja se luokittelee riippuvaisen muuttujan jompaankumpaan luokkaan.
Logistista regressiota käytetään tuloksen ennustamiseen, joka on binäärinen, kuten edellä todettiin. Jos esimerkiksi luottokorttiyhtiö rakentaa mallin päättääkseen, myöntääkö se asiakkaalle luottokortin vai ei, se mallintaa, aikooko asiakas ”laiminlyödä” vai ”ei laiminlyödä” korttinsa maksuaikaa.
Aluksi lineaarinen regressio suoritetaan muuttujien väliselle suhteelle, jotta saadaan malli. Luokittelulinjan kynnysarvoksi oletetaan 0,5.
K-Nearest Neighbors (K-NN)
K-NN-algoritmi on yksi yksinkertaisimmista luokittelualgoritmeista, ja sitä käytetään tunnistamaan datapisteitä, jotka on erotettu useampaan luokkaan, jotta voidaan ennustaa uuden näytteenottopisteen luokitus. K-NN on ei-parametrinen, laiska oppimisalgoritmi. Se luokittelee uudet tapaukset samankaltaisuusmitan perusteella (esim, etäisyysfunktioita).
K-NN toimii hyvin pienellä määrällä syötemuuttujia (p), mutta kamppailee vaikeuksissaan silloin, kun syötemuuttujien määrä on hyvin suuri.
Tukivektorikone (SVM)
Tukivektoria käytetään sekä regressioon että luokitteluun. Se perustuu päätöstasojen käsitteeseen, jotka määrittelevät päätösrajat. Päätöstaso (hypertaso) on sellainen, joka erottaa toisistaan joukon kohteita, joilla on erilaiset luokkajäsenyydet.
Se suorittaa luokittelun etsimällä tukivektoreiden avulla sen hypertason, joka maksimoi marginaalin kahden luokan välillä.
Hyperitason oppiminen SVM:ssä tapahtuu muuntamalla ongelma jonkin lineaarialgebran avulla (esim, yllä olevassa esimerkissä on lineaarinen kernel, jolla on lineaarinen erotuskyky kunkin muuttujan välillä).
Korkeampiulotteisemmassa datassa käytetään muita kerneleitä kuin pisteitä, eikä niitä voida luokitella helposti. Ne eritellään seuraavassa kappaleessa.
Kernel SVM
Kernel SVM ottaa SVM-algoritmissa käytetyn kernel-funktion ja muuttaa sen haluttuun muotoon, joka kartoittaa dataa korkeammalla ulottuvuudella, joka on erotettavissa.
Kernelfunktion tyypit ovat:
- Lineaarinen SVM on se, josta puhuimme jo aiemmin.
- Polynomikernelissä on määriteltävä polynomin aste. Se mahdollistaa kaarevat viivat tuloavaruudessa.
- Radial basis function (RBF) -ytimessä sitä käytetään epälineaarisesti erotettaville muuttujille. Etäisyytenä käytetään metristä neliöityä euklidista etäisyyttä. Parametrin tyypillisen arvon käyttäminen voi johtaa datamme ylisovittamiseen. Sitä käytetään oletusarvoisesti sklearnissa.
- Sigmoidi-kerneliä, joka on samanlainen kuin logistinen regressio, käytetään binääriseen luokitteluun.
Kernel-temppu käyttää kernel-funktiota muuttamaan datan korkeampiulotteisempaan piirreavaruuteen, ja se mahdollistaa lineaarisen erottelun luokittelua varten.
Radial Basis Function (RBF) Kernel
RBF-ytimen SVM-päätösalue on itse asiassa myös lineaarinen päätösalue. RBF-ydin-SVM:ssä luodaan itse asiassa epälineaarisia ominaisuusyhdistelmiä, joilla näytteet nostetaan korkeampiulotteiseen ominaisuusavaruuteen, jossa lineaarista päätösrajaa voidaan käyttää luokkien erottamiseen.
Nyrkkisääntö on siis: käytä lineaarisia SVM:iä lineaarisiin ongelmiin ja epälineaarisia ytimiä, kuten RBF-ydintä, epälineaarisiin ongelmiin.
Naive Bayes
Naive Bayesin luokittelija perustuu Bayesin lauseeseen, jossa ennustajien väliset riippumattomuusolettamukset (ts, se olettaa, että ominaisuuden esiintyminen luokassa ei liity mihinkään muuhun ominaisuuteen). Vaikka nämä ominaisuudet riippuvat toisistaan tai muiden ominaisuuksien olemassaolosta, kaikki nämä ominaisuudet riippuvat toisistaan riippumatta. Siksi nimi naiivi Bayes.
Naiivin Bayesin pohjalta Gaussin naiivia Bayesia käytetään luokitteluun, joka perustuu datan binomijakaumaan (normaalijakaumaan).
- P(luokka|data) on luokan(kohteen) posteriorinen todennäköisyys, joka on olemassa, kun prediktori(ominaisuus) annetaan. Todennäköisyys sille, että datapisteellä on jompikumpi luokka, kun datapiste on annettu. Tämä on arvo, jonka haluamme laskea.
- P(luokka) on luokan ennakkotodennäköisyys.
- P(data|luokka) on todennäköisyys, joka on todennäköisyys sille, että predikaattori antaa luokan.
- P(data) on ennustajan ennakkotodennäköisyys eli marginaalinen todennäköisyys.
Steps
1. Lasketaan ennakkotodennäköisyys
P(luokka) = luokkaan kuuluvien datapisteiden lukumäärä / havaintojen kokonaismäärä
P(keltainen) = 10/17
P(vihreä) = 7/17
2. Lasketaan marginaalinen todennäköisyys
P(data) = Havaintoa muistuttavien datapisteiden lukumäärä/Havaintojen kokonaismäärä
P(?) = 4/17
Arvo on olemassa tarkistettaessa molemmat todennäköisyydet.
3. Laske todennäköisyys
P(data/luokka) = Luokan kanssa samankaltaisten havaintojen lukumäärä/Kokonaispisteiden lukumäärä luokassa.
P(?/keltainen) = 1/7
P(?/vihreä) = 3/10
4. Posteriorinen todennäköisyys kullekin luokalle
5. Luokittelu
Korkeammalla todennäköisyydellä luokka kuuluu kyseiseen luokkaan, sillä yläpuolella 75 % todennäköisyydellä piste kuuluu luokkaan vihreä.
Multinomial, Bernoulli naive Bayes ovat muita malleja, joita käytetään todennäköisyyksien laskemiseen. Naiivi Bayes-malli on siis helppo rakentaa ilman monimutkaista iteratiivista parametrien estimointia, mikä tekee siitä erityisen käyttökelpoisen hyvin suurille tietokokonaisuuksille.
Päätöspuu-luokittelu
Päätöspuu rakentaa luokittelu- tai regressiomallit puurakenteen muodossa. Se pilkkoo tietokokonaisuuden yhä pienempiin osajoukkoihin samalla, kun siihen liittyvää päätöspuuta kehitetään asteittain. Lopputuloksena on puu, jossa on päätöksentekosolmuja ja lehtisolmuja. Se noudattaa Iterative Dichotomiser 3(ID3)-algoritmirakennetta jaon määrittämiseksi.
Entropiaa ja informaatiovoittoa käytetään päätöksentekopuun rakentamiseen.
Entropia
Entropia on elementtien satunnaisuuden epävarmuuden aste tai määrä. Toisin sanoen se on epäpuhtauden mitta.
Intuitiivisesti se kertoo tietyn tapahtuman ennustettavuudesta. Entropia laskee otoksen homogeenisuuden. Jos otos on täysin homogeeninen, entropia on nolla, ja jos otos on tasaisesti jakautunut, sen entropia on yksi.
Informaatiovoitto
Informaatiovoitto mittaa entropian suhteellista muutosta suhteessa riippumattomaan ominaisuuteen. Se pyrkii arvioimaan kunkin attribuutin sisältämää informaatiota. Päätöksentekopuun rakentamisessa on kyse sen attribuutin löytämisestä, joka tuottaa suurimman informaatiovoiton (ts, homogeenisimmat oksat).
Jossa Gain(T, X) on informaatiovoitto soveltamalla piirrettä X. Entropy(T) on koko joukon entropia, kun taas toinen termi laskee entropian sen jälkeen, kun piirrettä X on sovellettu.
Informaatiovoitto asettaa attribuutit paremmuusjärjestykseen suodatusta varten tietyssä puun solmussa. Järjestys perustuu suurimpaan informaatiovoiton entropiaan kussakin jaossa.
Päätöspuumallin haittapuolena on ylisovittaminen, sillä mallia yritetään sovittaa menemällä syvemmälle harjoitusjoukkoon ja siten vähentää testitarkkuutta.
Päätöksentekopuiden ylisovittamista voidaan minimoida karsimalla solmuja.
Ensemble Methods for Classification
Ensemble-malli on joukko malleja. Teknisesti ensemble-mallit koostuvat useista valvotun oppimisen malleista, jotka koulutetaan erikseen ja tulokset yhdistetään eri tavoin lopullisen ennusteen aikaansaamiseksi. Tällä tuloksella on suurempi ennustuskyky kuin minkä tahansa sen muodostavien oppimisalgoritmien tuloksilla itsenäisesti.
Random Forest -luokittelu
Random Forest -luokittelija on ensemble-algoritmi, joka perustuu säkkiluokitteluun (bagging) eli bootstrap-aggregointiin. Ensemble-menetelmissä yhdistetään useampi kuin yksi samantyyppinen tai erilainen algoritmi kohteiden luokitteluun (esim, esimerkiksi SVM:n, naive Bayesin tai päätöspuiden muodostama ensemble.)
Yleinen ajatus on, että oppimismallien yhdistelmä kasvattaa valittua kokonaistulosta.
Syvälliset päätöspuut voivat kärsiä ylisovittamisesta, mutta satunnaismetsät estävät ylisovittamisen luomalla puita satunnaisiin osajoukkoihin. Tärkein syy on se, että se ottaa kaikkien ennusteiden keskiarvon, mikä kumoaa vinoutumat.
Satunnaismetsä lisää malliin lisää satunnaisuutta puita kasvatettaessa. Sen sijaan, että solmua jaettaessa etsittäisiin tärkeintä piirrettä, se etsii parasta piirrettä satunnaisesta piirteiden osajoukosta. Tämä johtaa laajaan monimuotoisuuteen, joka yleensä johtaa parempaan malliin.
Gradient Boosting Classification
Gradient Boosting -luokittelija on boosting ensemble -menetelmä. Boosting on tapa yhdistää (ensemble) heikkoja oppijoita, ensisijaisesti ennustusvirheiden vähentämiseksi. Sen sijaan, että luotaisiin joukko ennustajia, kuten bagging-menetelmässä, boosting tuottaa niistä kaskadin, jossa kukin tuotos on syötteenä seuraavalle oppijalle. Tyypillisesti pussitusalgoritmissa puita kasvatetaan rinnakkain kaikkien puiden keskimääräisen ennusteen saamiseksi, ja jokainen puu rakennetaan näytteen perusteella alkuperäisestä datasta. Gradient Boosting -algoritmissa puolestaan käytetään peräkkäistä lähestymistapaa ennusteiden saamiseksi sen sijaan, että puiden rakentamisprosessi rinnakkaistettaisiin. Gradienttiboostingissa jokainen päätöspuu ennustaa edellisen päätöspuun virheen – ja siten boostaa (parantaa) virhettä (gradienttia).
Working of Gradient Boosting
- Aloitetaan ennusteet yksinkertaisella päätöspuulla.
- Lasketaan jäännösarvo (todellinen-ennuste).
- Rakennetaan toinen matala päätöspuu, joka ennustaa jäännösarvon kaikkien riippumattomien arvojen perusteella.
- Päivitetään alkuperäinen ennuste uudella ennusteella kerrottuna oppimisnopeudella.
- Kertaa vaiheet 2-4 tietyn määrän iteraatioita (iteraatioiden määrä on puiden määrä).
Katso tämä viesti: Gradient Boosting From Scratch
Luokittelumallin suorituskyky
Sekaannusmatriisi
Sekaannusmatriisi on taulukko, jota käytetään usein kuvaamaan luokittelumallin suorituskykyä testidatan joukolla, jonka todelliset arvot tunnetaan. Se on taulukko, jossa on neljä erilaista ennustettujen ja todellisten arvojen yhdistelmää binääriluokittimen tapauksessa.
Moniluokkaisen luokitusongelman sekoitusmatriisi voi auttaa määrittämään virhemallit.
Binääriluokittimelle:
Todellinen positiivinen (true positive) on lopputulos, jonka kohdalla malli ennustaa oikein positiivisen luokan. Vastaavasti tosi negatiivinen on lopputulos, jossa malli ennustaa oikein negatiivisen luokan.
Väärän positiivinen & Väärän negatiivinen
Väärän positiivisen ja väärän negatiivisen käsitteitä käytetään määritettäessä, kuinka hyvin malli ennustaa luokittelun suhteen. Väärä positiivinen on tulos, jossa malli ennustaa virheellisesti positiivisen luokan. Ja väärä negatiivinen on tulos, jossa malli ennustaa virheellisesti negatiivisen luokan. Mitä enemmän arvoja päädiagonaalissa on, sitä parempi malli on, kun taas toinen diagonaali antaa luokittelun kannalta huonoimman tuloksen.
Väärän positiivinen
Esimerkki, jossa malli ennusti virheellisesti positiivisen luokan. Esimerkiksi malli päätteli, että tietty sähköpostiviesti oli roskapostia (positiivinen luokka), mutta kyseinen sähköpostiviesti ei todellisuudessa ollut roskapostia. Se on ikään kuin varoitusmerkki siitä, että virhe on korjattava, sillä se ei ole kovin vakava huolenaihe verrattuna väärään negatiiviseen.
Väärä positiivinen (tyypin I virhe) – kun hylätään tosi nollahypoteesi
False Negative
Esimerkki, jossa malli ennusti virheellisesti negatiivista luokkaa. Esimerkiksi malli päätteli, että tietty sähköpostiviesti ei ollut roskapostia (negatiivinen luokka), mutta kyseinen sähköpostiviesti olikin roskapostia. Se on ikään kuin vaaramerkki siitä, että virhe on korjattava ajoissa, sillä se on vakavampi kuin väärä positiivinen.
Väärä negatiivinen (tyyppi II -virhe) – kun hyväksyt väärän nollahypoteesin.
Tämä kuva havainnollistaa täydellisen helposti edellä mainittuja mittareita. Miehen testitulos on väärä positiivinen, sillä mies ei voi olla raskaana. Naisen testitulokset ovat vääriä negatiivisia, koska hän on selvästi raskaana.
Sekaannusmatriisista voimme päätellä tarkkuuden, täsmällisyyden, palautuksen ja F-1-pistemäärän.
Tarkkuus
Tarkkuus on murto-osa ennusteista, jotka mallimme teki oikein.
Tarkkuus voidaan kirjoittaa myös
Tarkkuus ei yksinään kerro kaikkea, kun työskennellään luokkien suhteen epätasapainoisella data-aineistolla, jossa positiivisten ja negatiivisten merkintöjen määrässä on merkittävä ero. Precision ja recall ovat parempia mittareita luokkien epätasapainoisten ongelmien arviointiin.
Precision
Tarkkuus on kaikkien luokkien osalta se, kuinka paljon ennustimme oikein.
Tarkkuuden tulisi olla mahdollisimman suuri.
Recall
Recall on kaikkien positiivisten luokkien osalta se, kuinka paljon ennustimme oikein. Sitä kutsutaan myös herkkyydeksi tai true positive rate (TPR).
Recall pitäisi olla mahdollisimman korkea.
F-1 Score
Tarkkuus ja recall on usein kätevää yhdistää yhdeksi mittariksi, jota kutsutaan nimellä F-1 score (F-1-pistemääräksi), varsinkin jos tarvitset yksinkertaisen tavan verrata kahta luokittelijaa. F-1-pistemäärä on tarkkuuden ja palautuksen harmoninen keskiarvo.
Säännöllinen keskiarvo kohtelee kaikkia arvoja tasapuolisesti, kun taas harmoninen keskiarvo antaa paljon enemmän painoarvoa matalille arvoille rankaisten siten ääriarvoja enemmän. Tämän seurauksena luokittelija saa korkean F-1-pistemäärän vain, jos sekä recall että precision ovat korkeat.
Vastaanottokäyrä (ROC) & Area Under the Curve (AUC)
ROC-käyrä on tärkeä luokittelun arviointimittari. Se kertoo, kuinka hyvin malli on ennustanut tarkasti. ROC-käyrä osoittaa luokittelijan herkkyyden kuvaamalla oikeiden positiivisten tulosten määrän suhteessa väärien positiivisten tulosten määrään. Jos luokittelija on erinomainen, todellisten positiivisten virheiden määrä kasvaa, ja käyrän alle jäävä pinta-ala on lähellä yhtä. Jos luokittelija on samanlainen kuin satunnainen arvaus, oikeiden positiivisten osuus kasvaa lineaarisesti väärien positiivisten osuuden kanssa. Mitä parempi AUC-mitta, sitä parempi malli.
Cumulative Accuracy Profile Curve
Mallin CAP edustaa y-akselilla olevien positiivisten tulosten kumulatiivista lukumäärää suhteessa x-akselilla olevaan vastaavaan luokitusparametrien kumulatiiviseen määrään. CAP eroaa vastaanottimen toimintaominaisuudesta (ROC, receiver operating characteristic), joka kuvaa todellisten positiivisten tulosten määrää suhteessa väärien positiivisten tulosten määrään. CAP-käyrää käytetään harvoin verrattuna ROC-käyrään.
Tarkastellaan mallia, joka ennustaa, ostaako asiakas tuotteen. Jos asiakas valitaan satunnaisesti, on 50 prosentin todennäköisyys, että hän ostaa tuotteen. Kumulatiivinen määrä elementtejä, joiden osalta asiakas ostaa, nousisi lineaarisesti kohti asiakkaiden kokonaismäärää vastaavaa maksimiarvoa. Tätä jakaumaa kutsutaan ”satunnaiseksi” CAP:ksi. Se on sininen viiva yllä olevassa kaaviossa. Täydellinen ennuste sen sijaan määrittää täsmälleen, mikä asiakas ostaa tuotteen, niin että ominaisuuden ostavan asiakkaan maksimimäärä saavutetaan, kun elementtien joukosta valitaan vähimmäismäärä asiakkaita. Tämä tuottaa CAP-käyrälle jyrkän viivan, joka pysyy tasaisena, kun maksimi on saavutettu, mikä on ”täydellinen” CAP. Sitä kutsutaan myös ”ihanteelliseksi” viivaksi, ja se on harmaa viiva yllä olevassa kuvassa.
Loppujen lopuksi mallin pitäisi ennustaa siellä, missä se maksimoi oikeat ennusteet ja pääsee lähemmäs täydellistä mallin viivaa.