Koneoppimismallin harjoittaminen
Koneoppimismallin harjoittamiseen kuuluu koneoppimisalgoritmin asentaminen harjoitustietoihin, jotta voidaan määrittää hyväksyttävän tarkka funktio, jota voidaan käyttää sen ominaisuuksissa, ja laskea vastaavat otsikot. Tämä voi tuntua käsitteellisesti yksinkertaiselta ajatukselta; Mutta todellinen prosessi, jossa harjoitetaan mallia, joka tuottaa tarkkoja ennusteita uusista tiedoista, ei vain tietoja, joita varten se on harjoitettu, voi olla haastavaa, ja siihen liittyy toistuva lähestymistapa mallien toistuvaan harjoittamiseen ja arviointiin useiden algoritmien ja parametrien avulla.
Harjoitus- ja vahvistustiedot
Yleinen tapa koneoppimismallin harjoittamisessa on jakaa tiedot satunnaisesti alijoukkoihin harjoittamista ja vahvistusta varten. Voit sitten käyttää harjoitustietojoukkoa algoritmin sovittamiseen ja mallin harjoittamiseen ja testata sitten, miten hyvin malli suoriutuu pidättelemiesi vahvistustietojen kanssa. Tämä auttaa varmistamaan, että malli yleistyy hyvin – toisin sanoen se luo tarkkoja ennusteita harjoittamista varten, jota ei ole harjoitettu.
Huomautus
Mallit, jotka ennustavat hyvin tietoja, joihin ne on harjoitettu, mutta jotka eivät toimi kunnolla uusissa tiedoissa, kuvataan harjoitustietojen ylitäytetyiksi .
Yleensä sinun tulee harjoittaa mallia noin 70% tiedoilla ja pidät painettuna noin 30% vahvistusta varten.
Koneoppimisen algoritmit
On olemassa monia koneoppimisen algoritmeja, jotka on ryhmitelty eri algoritmityyppeihin ratkaistavan koneoppimisongelman tyypin perusteella. Useimmat koneoppimisen kehykset sisältävät useita algoritmeja regressiota ja luokitusta varten sekä algoritmeja valvomattomissa koneoppimisen ongelmissa, kuten klusterointissa.
Kun olet tunnistanut ongelman tyypin, jonka haluat luoda ratkaisemaan mallin, voit valita useista tämäntyyppisistä algoritmeista. Jokaisessa tyypissä voi olla useita algoritmeja valittaina, usein erilaisten matemaattisten algoritmien perusteella. Esimerkiksi luokitusalgoritmien joukossa on seuraavantyyppisiä algoritmeja:
- Logistisia regressioalgoritmeja , jotka käyttävät iteratiivisesti logistisia funktioita laskemaan nollan ja 1:n välille arvon, joka edustaa kunkin mahdollisen luokan todennäköisyyttä, ja optimoimaan funktion kertoimia ennustetun luokan ja todellisen tunnetun otsikkoarvon välisten erojen perusteella.
- Puupohjaiset funktiot, jotka määrittävät päätöspuun, jossa yksittäistä ominaisuutta käsitellään. ja sen arvon perusteella otetaan huomioon toinen ominaisuus, ja niin edelleen, kunnes sopiva luokan tunniste määritetään.
- Yhdistelmäalgoritmit , jotka yhdistävät useita tekniikoita optimaalisen yleisen ennakoivan funktion löytämiseksi.
"Paras" algoritmi riippuu tiedoistasi, ja sen määrittäminen vaatii yleensä toistuvan kokeilun ja virheen.
Hyperparametrit
Koneoppimisalgoritmin parametrit ovat tieto-ominaisuudet (ja otsikot), joilla se on harjoitettu. Lisäksi useimmat koneoppimisen algoritmit tarjoavat hyperparametreja , joiden avulla voit vaikuttaa algoritmin toimintaan. Hyperparametrien avulla voit hallita erilaisia asioita, kuten mallissa sallittavaa satunnaisuustasoa (jolloin se yleisesti ottaen toimii hyvin, mutta tuottaa silti hyväksyttävän tarkkoja ennusteita), optimaalisen mallin löytämiseksi suoritettujen iterointien määrää (jotta vältät harjoitusajan ylikuormittelun ja optimoinnin), puumallissa huomioon otettujen haarojen määrän, ja muita algoritmikohtaisia tekijöitä.
Mallin asentaminen
Jos haluat harjoittaa mallin, sinun on sovitettava algoritmi tietoihin. Tähän käytettävät erityiset syntaksi- ja tietomuodot voivat vaihdella eri koneoppimiskehyksissä, mutta periaate on aina sama. Valvotussa koneoppimisessa algoritmi sovitetaan tunnettuihin tunnisteisiin perustuviin ominaisuuksiin. Valvomatonta koneoppimista varten annat ominaisuudet ja algoritmi yrittää erottaa ne erillisiin klustereihin.
Seuraavassa esimerkissä näytetään koodi, jota käytetään logistisen regressiomallin harjoittamisen aloittamiseen Spark MLlib -kehyksen avulla. Harjoitustiedot toimitetaan tietokehyksenä, jossa otsikot ovat kokonaislukuarvojen sarakkeessa ja vastaavat ominaisuudet esitetään yksittäisenä vektorina (matriisina). Tässä esimerkissä on määritetty myös kaksi hyperparametria (maxIter ja regParam).
from pyspark.ml.classification import LogisticRegression
lr = LogisticRegression(labelCol="label", featuresCol="features", maxIter=10, regParam=0.3)
model = lr.fit(training_df)