An in-depth guide to supervised machine learning classification

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.

valvottu koneoppiminen havainnollistus

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.

valvottu koneoppiminen logistinen regressio

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.

valvottu koneoppiminen lineaarinen regressio
Lineaarinen regressio

Aluksi lineaarinen regressio suoritetaan muuttujien väliselle suhteelle, jotta saadaan malli. Luokittelulinjan kynnysarvoksi oletetaan 0,5.

valvottu koneoppiminen logistinen sigmoidifunktio
Logistinen sigmoidifunktio

Logistista funktiota sovelletaan regressioon, jotta saadaan todennäköisyydet kuulumiselle kumpaankin luokkaan.

Sen avulla saadaan tapahtuman esiintymistodennäköisyyksien logaritminen logaritminen logaritminen logaritminen logaritminen. Lopulta se luokittelee muuttujan suuremman todennäköisyyden perusteella jompaankumpaan luokkaan.

valvottu koneoppiminen log

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).

valvottu koneoppimisluokitus knn 1valvottu koneoppimisluokitus knn 2valvottu koneoppimisluokitus knn 3valvottu koneoppimisluokitus knn 4valvottu koneoppimisluokitus knn 5

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.

Valvottu koneoppiminen tukivektorit

Se suorittaa luokittelun etsimällä tukivektoreiden avulla sen hypertason, joka maksimoi marginaalin kahden luokan välillä.

supervised machine learning classification svc

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:

valvotun koneoppimisen luokittelun kernelfunktion tyypit
Kernelfunktioiden tyypit
  1. Lineaarinen SVM on se, josta puhuimme jo aiemmin.
  2. Polynomikernelissä on määriteltävä polynomin aste. Se mahdollistaa kaarevat viivat tuloavaruudessa.
  3. 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.
  4. Sigmoidi-kerneliä, joka on samanlainen kuin logistinen regressio, käytetään binääriseen luokitteluun.

valvotun koneoppimisen luokittelun kernel-temppu

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.

supervised machine learning classification radial basis function

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.

supervised machine learning classification bayesin teoreema

Naiivin Bayesin pohjalta Gaussin naiivia Bayesia käytetään luokitteluun, joka perustuu datan binomijakaumaan (normaalijakaumaan).

supervised machine learning classification gaussin naiivi bayesin

  • 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.
supervised machine learning classification nb

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

valvotun koneoppimisen luokittelun posteriorinen todennäköisyys

5. Luokittelu

supervised machine learning classification

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.

supervised machine learning classification decision trees

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.

supervised machine learning classification entropy

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).

supervised machine learning classification information gain

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.

supervised machine learning classification overfitting

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.

valvotun koneoppimisen luokittelun ensemble-menetelmät

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.)

valvottu koneoppiminen luokittelu bagging

Yleinen ajatus on, että oppimismallien yhdistelmä kasvattaa valittua kokonaistulosta.

valvottu koneoppiminen luokittelu satunnaismetsä

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).

supervised machine learning classification boosting

Working of Gradient Boosting

  1. Aloitetaan ennusteet yksinkertaisella päätöspuulla.
  2. Lasketaan jäännösarvo (todellinen-ennuste).
  3. Rakennetaan toinen matala päätöspuu, joka ennustaa jäännösarvon kaikkien riippumattomien arvojen perusteella.
  4. Päivitetään alkuperäinen ennuste uudella ennusteella kerrottuna oppimisnopeudella.
  5. Kertaa vaiheet 2-4 tietyn määrän iteraatioita (iteraatioiden määrä on puiden määrä).
valvottu koneoppimisen luokittelu rf gb

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.

valvotun koneoppimisen luokittelun moniluokkamatriisi

Moniluokkaisen luokitusongelman sekoitusmatriisi voi auttaa määrittämään virhemallit.

Binääriluokittimelle:

valvotun koneoppimisen luokittelun binäärinen sekoitusmatriisi

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

supervised machine learning classification false positive

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.

valvottu koneoppimisen luokittelu väärä negatiivinen

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.

supervised machine learning classification accuracy

Tarkkuus voidaan kirjoittaa myös

supervised machine learning classification accuracy math

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.

supervised machine learning classification precision

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).

supervised machine learning classification recall

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.

valvottu koneoppiminen luokittelu f1-pistemäärä

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.

supervised machine learning classification roc

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.

supervised machine learning classification cap curve

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.

Vastaa

Sähköpostiosoitettasi ei julkaista.