Muistatko No Free Lunch -teoremin? Ei, se ei koske ruokaa (vielä). Mutta jos olet nälkäinen, hae välipala ennen tämän postauksen lukemista – en halua, että kuolaat näppäimistöllesi.

Muistutan sinua – mikään algoritmi ei ole optimaalinen kaikkien mahdollisten tilanteiden joukossa. Koneoppimisen algoritmit ovat herkkiä välineitä, joita virität ongelmajoukon perusteella, erityisesti valvotussa koneoppimisessa.

Tänään katsomme, miten suositut luokittelualgoritmit toimivat ja auttavat meitä esimerkiksi poimimaan ja lajittelemaan ihania, mehukkaita tomaatteja.

Miten luokittelu toimii

Ennustamme päivittäin, voidaanko jokin asia viitata tiettyyn luokkaan. Esimerkkinä mainittakoon, että luokittelu auttaa meitä tekemään päätöksiä poimiessamme tomaatteja supermarketissa (”vihreitä”, ”täydellisiä”, ”pilaantuneita”). Koneoppimisen termein sanottuna annamme jokaiselle kädessämme pitämällemme tomaatille leiman jostakin luokasta.

Tomaatinpoimintakilpailusi (jotkut kutsuisivat sitä luokittelumalliksi) tehokkuus riippuu sen tulosten tarkkuudesta. Mitä useammin käyt itse supermarketissa (sen sijaan, että lähettäisit sinne vanhempasi tai parisuhdekumppanisi), sitä paremmaksi tulet valitsemaan tomaatit, jotka ovat tuoreita ja herkullisia.

Tietokoneet ovat aivan samanlaisia! Jotta luokittelumalli oppii ennustamaan tuloksia tarkasti, se tarvitsee paljon harjoitusesimerkkejä.

4 erilaista luokittelua

4 erilaista luokittelutehtävää koneoppimisessa

Binäärinen

Binäärinen luokittelu tarkoittaa sitä, että on kaksi luokkaa, joiden kanssa voi työskennellä ja jotka suhteutuvat toisiinsa tosina ja epätosia. Kuvittele, että edessäsi on valtava korilaatikko, jossa on keltaisia ja punaisia tomaatteja. Mutta hieno italialainen pastareseptisi sanoo, että tarvitset vain punaisia.

Mitä teet? Ilmeisesti käytät etikettikoodausta ja tässä tapauksessa annat 1:n arvolle ”punainen” ja 0:n arvolle ”ei punainen”. Tomaattien lajittelu ei ole koskaan ollut helpompaa.

Binääriluokitus

Moniluokitus

Mitä näet tässä kuvassa?

tomaatit

Punaisia naudanlihapihvimureketta tomaatteja. Kirsikkatomaatteja. Cocktailtomaatteja. Perintötomaatteja.

Tässä ei ole mustaa ja valkoista, ”normaalia” ja ”epänormaalia” kuten binäärisessä luokittelussa. Toivotamme kaikenlaisia ihania vihanneksia (tai marjoja) tervetulleiksi pöytäämme.

Mitä et luultavasti tiedä, jos et ole tomaattien ystävä ruoanlaitossa, on se, että kaikki tomaatit eivät ole yhtä hyviä samaan ruokaan. Punaiset pihvitomaatit sopivat erinomaisesti salsaksi, mutta niitä ei suolata. Kirsikkatomaatit sopivat salaatteihin, mutta eivät pastaan. On siis tärkeää tietää, mistä on kyse.

Multiclass-luokitus auttaa meitä lajittelemaan kaikki tomaatit laatikosta riippumatta siitä, kuinka monta luokkaa on.

Multiclass-luokitus

Multi-label-luokitus

Multi-label-luokitusta käytetään silloin, kun yksi syötetieto voi kuulua useampaan kuin yhteen luokkaan, kuten esimerkiksi henkilö, joka on kahden maan kansalainen.

Työskennellessäsi tämäntyyppisen luokittelun kanssa sinun on rakennettava malli, joka voi ennustaa useita tuotoksia.

Tarvitset monilabeliluokittelua valokuvien objektien tunnistamiseen. Esimerkiksi silloin, kun sinun on tunnistettava tomaattien lisäksi myös erilaisia muita kohteita samassa kuvassa: omenoita, kesäkurpitsaa, sipulia jne.

Tärkeä huomautus kaikille tomaattien ystäville: Et voi vain ottaa binääri- tai moniluokkaista luokittelualgoritmia ja soveltaa sitä suoraan monimerkkiluokitteluun. Mutta voit käyttää:

Multi-label-luokittelua

Voit myös yrittää käyttää erillistä algoritmia jokaiselle luokalle ennustamaan kunkin luokan etiketit.

Epäsymmetrinen

Työskentelemme epäsymmetrisen luokittelun parissa silloin, kun esimerkit kussakin luokassa ovat jakautuneet epäsymmetrisesti.

Epäsymmetristä luokittelua käytetään huijausten havaitsemisessa käytettäviin ohjelmistoihin ja lääketieteelliseen diagnosointiin. Harvinaisten ja hienojen biologisesti kasvatettujen tomaattien löytäminen, jotka ovat vahingossa kaatuneet supermarketin suureen kasaan tomaatteja, on mahtavan toimittajamme Gintsin tarjoama esimerkki epätasapainoisesta luokituksesta (jos sinulla on muita esimerkkejä, twiittaa ne meille).

Epäsymmetrinen luokittelu

Suosittelen sinua vierailemaan Machine Learning Masteryn upeassa blogissa, jossa voit lukea eri luokittelutyypeistä ja opiskella paljon muuta koneoppimismateriaalia.

Vaiheet luokittelumallin rakentamiseen

Kun tiedät, millaisen luokittelutehtävän kanssa olet tekemisissä, on aika rakentaa malli.

  1. Valitse luokittelija. Sinun on valittava yksi ML-algoritmeista, jota aiot soveltaa dataan.
  2. Treenaa se. Sinun on valmisteltava harjoitusaineisto, jossa on leimattuja tuloksia (mitä enemmän esimerkkejä, sitä parempi).
  3. Predikoi tuotos. Käytä mallia saadaksesi joitakin tuloksia.
  4. Arvioi luokittelumalli. On hyvä valmistella validointijoukko datasta, jota et ole käyttänyt koulutuksessa, jotta voit tarkistaa tulokset.

Katsotaan nyt yleisimmin käytettyjä luokittelualgoritmeja.

Yleisimmät luokittelualgoritmit

yleisimmin käytettyjä luokittelualgoritmeja

Scikit-Learn on yksi parhaista ML-kirjastoista Pythonille. Jos siis haluat rakentaa mallin, tutustu siihen. Se tarjoaa pääsyn laajalti käytettyihin luokittelijoihin.

Logistinen regressio

Logistista regressiota käytetään binääriseen luokitteluun.

Tämä algoritmi käyttää logistista funktiota mallintamaan tuloksen tapahtumisen todennäköisyyttä. Se on hyödyllisin, kun halutaan ymmärtää, miten useat riippumattomat muuttujat vaikuttavat yhteen tulosmuuttujaan.

Esimerkkikysymys:

Logistisella regressiolla on rajoituksia; kaikkien ennustajien on oltava riippumattomia, eikä puuttuvia arvoja saa olla. Tämä algoritmi epäonnistuu, jos arvot eivät erotu lineaarisesti toisistaan.

Naive Bayes

Naive Bayes -algoritmi perustuu Bayesin lauseeseen. Voit soveltaa tätä algoritmia binääri- ja moniluokkaiseen luokitteluun ja luokitella dataa historiallisten tulosten perusteella.

Esimerkkitehtävä: Minun täytyy erottaa mädät tomaatit tuoreista tomaateista niiden ulkonäön perusteella.

Naive Bayesin etuja on se, että nämä algoritmit ovat nopeita rakentaa: ne eivät vaadi laajaa harjoittelujoukkoa, ja ne ovat myös nopeita verrattuna muihin menetelmiin. Koska Bayes-algoritmien suorituskyky riippuu kuitenkin sen vahvojen oletusten paikkansapitävyydestä, tulokset voivat mahdollisesti osoittautua hyvin huonoiksi.

Bayesin teoreeman avulla voidaan kertoa, miten jonkin tapahtuman esiintyminen vaikuttaa toisen tapahtuman todennäköisyyteen.

k-Nearest Neighbors

kNN on lyhenne sanoista ”k-nearest neighbor” (k-läheisin naapuri), ja se on yksi yksinkertaisimmista luokittelualgoritmeista.

Algoritmi määrittää kohteet siihen luokkaan, johon suurin osa sen lähimmistä naapureista moniulotteisessa ominaisuusavaruudessa kuuluu. Luku k on niiden ominaisuusavaruuden naapurikohteiden lukumäärä, joita verrataan luokiteltuun kohteeseen.

Esimerkki: Haluan ennustaa tomaatin lajin sen kaltaisten tomaattien lajeista.

Luokitellaksesi syötteitä käyttäen k-läheisimpiä naapureita sinun on suoritettava joukko toimenpiteitä:

  • Lasketaan etäisyys kuhunkin harjoitusnäytteen objektiin;
  • Valitaan harjoitusnäytteestä k objektia, joiden etäisyys on minimaalinen;
  • Luokitellun objektin luokka on se luokka, joka esiintyy k-läheisimmän naapurin luokkien joukossa eniten.

Päätöspuu

Päätöspuut ovat luultavasti intuitiivisin tapa visualisoida päätöksentekoprosessi. Ennustaaksemme syötteen luokkamerkinnän aloitamme puun juuresta. Mahdollisuusavaruus on jaettava pienempiin osajoukkoihin kutakin solmua koskevan päätöksentekosäännön perusteella.

Tässä on esimerkki:

päätöksentekopuuesimerkki

Jatkat mahdollisuuksien avaruuden pilkkomista, kunnes saavutat puun alaosan. Jokaisella päätöksentekosolmulla on kaksi tai useampia haaroja. Yllä olevan mallin lehdet sisältävät päätöksen siitä, onko henkilö sopiva vai ei.

Esimerkki: Sinulla on kori erilaisia tomaatteja ja haluat valita oikean tomaatin parantaaksesi ruokaa.

Päätöksentekopuiden tyypit

Puita on kahdenlaisia. Ne perustuvat kohdemuuttujan luonteeseen:

  • Kategorisen muuttujan päätöspuu.
  • Jatkuvan muuttujan päätöspuu.

Päätöksentekopuut toimivat siis varsin hyvin sekä numeeristen että kategoristen tietojen kanssa. Päätöksentekopuiden käytön etuna on myös se, että ne vaativat vain vähän tietojen valmistelua.

Päätöksentekopuista voi kuitenkin tulla liian monimutkaisia, mikä johtaa ylisovittamiseen. Näiden algoritmien merkittävä haittapuoli on se, että pienet vaihtelut harjoitusdatassa tekevät niistä epävakaita ja johtavat täysin uusiin puihin.

Random Forest

Random forest -luokittelijat käyttävät useita erilaisia päätöspuita eri osaotoksilla dataseteistä. Mallin ennusteeksi otetaan keskimääräinen tulos, mikä parantaa mallin ennustetarkkuutta yleisesti ja torjuu ylisovittamista.

Siten satunnaismetsää voidaan käyttää monimutkaisten koneoppimisongelmien ratkaisemiseen tulosten tarkkuudesta tinkimättä. Ne vaativat kuitenkin enemmän aikaa ennusteen muodostamiseen ja ovat haastavampia toteuttaa.

Lue lisää satunnaismetsien toiminnasta Towards Data Science -blogista.

Tukivektorikone

Tukivektorikoneet käyttävät N-ulotteisessa avaruudessa olevaa hypertasoa datapisteiden luokitteluun. N tässä on piirteiden lukumäärä. Se voi olla periaatteessa mikä tahansa luku, mutta mitä suurempi se on, sitä vaikeammaksi mallin rakentaminen käy.

Voidaan kuvitella hypertaso viivaksi (kaksiulotteisessa avaruudessa). Kun siirrytään yli 3-ulotteisen avaruuden, meidän on vaikea havainnollistaa mallia.

Datapisteet, jotka osuvat hypertason eri puolille, liitetään eri luokkiin.

Esimerkki: Automaattinen järjestelmä, joka lajittelee tomaatit niiden muodon, painon ja värin perusteella.

Valitsemamme hypertaso vaikuttaa suoraan tulosten tarkkuuteen. Etsimme siis tasoa, jolla on suurin etäisyys molempien luokkien datapisteiden välillä.

SVM:t osoittavat tarkkoja tuloksia minimaalisella laskentateholla, kun ominaisuuksia on paljon.

Yhteenveto

Kuten huomaat, koneoppiminen voi olla niinkin yksinkertaista kuin vihannesten poimiminen kaupasta. On kuitenkin monia yksityiskohtia, jotka on pidettävä mielessä, jos et halua pilata sitä. Pysy kuulolla blogissamme, Twitterissä ja Mediumissa, jos haluat lisää hienoa luettavaa koneoppimisesta.

Vastaa

Sähköpostiosoitettasi ei julkaista.