Twiittaa Jaa Jaa

Viimeisin päivitetty 17. elokuuta 2020

Koneoppimisen ennakoivan mallintamisen suorituskyky on vain niin hyvä kuin datasi, ja datasi on vain niin hyvä kuin tapa, jolla valmistelet sen mallintamista varten.

Yleisin lähestymistapa datan valmisteluun on tutkia tietokokonaisuutta ja tarkastella koneoppimisalgoritmien odotuksia, minkä jälkeen valitaan huolellisesti sopivimmat datan valmistelutekniikat, joilla raakadata muunnetaan vastaamaan parhaiten algoritmin odotuksia. Tämä on hidasta, kallista ja vaatii valtavasti asiantuntemusta.

Vaihtoehtoinen lähestymistapa datan valmisteluun on ruudukkohaku, jossa raakadataan joukko yleisiä ja yleisesti hyödyllisiä datanvalmistustekniikoita. Tämä on vaihtoehtoinen filosofia datan valmistelulle, jossa datan muunnoksia käsitellään mallinnusputken toisena hyperparametrina, jota haetaan ja viritetään.

Tämä lähestymistapa vaatii vähemmän asiantuntemusta kuin perinteinen manuaalinen lähestymistapa datan valmisteluun, vaikka se onkin laskennallisesti kallista. Sen etuna on, että se voi auttaa löytämään ei-intuitiivisia datanvalmistusratkaisuja, joilla saavutetaan hyvä tai paras suorituskyky tietyssä ennustavan mallintamisen ongelmassa.

Tässä opetusohjelmassa opit käyttämään ruudukkohakumenetelmää taulukkomuotoisen datan datan valmisteluun.

Tämän opetusohjelman suoritettuasi osaat:

  • Ruudukkohaku tarjoaa vaihtoehtoisen lähestymistavan taulukkomuotoisen datan datan valmisteluun, jossa transformaatioita kokeillaan mallintamisiputken hyperparametreina.
  • Miten ruudukkohakumenetelmää käytetään datanvalmistuksessa parantamaan mallin suorituskykyä verrattuna perustasoon standardiluokitteluaineistolle.
  • Miten ruudukkohakumenetelmien datanvalmistusmenetelmien sekvenssejä käytetään mallin suorituskyvyn parantamiseksi edelleen.

Käynnistä projektisi uudella kirjallani Data Preparation for Machine Learning, joka sisältää vaiheittaiset opetusohjelmat ja Python-lähdekooditiedostot kaikille esimerkeille.

Lähdetään liikkeelle.

Miten ruudukkohakumenetelmällä haetaan datan valmistelumenetelmää
Kuva: Wall Boat, jotkin oikeudet pidätetään.

Oppikirjan yleiskatsaus

Tämä opetusohjelma on jaettu kolmeen osaan; ne ovat:

  1. Grid Search Technique for Data Preparation
  2. Dataset and Performance Baseline
    1. Wine Classification Dataset
    2. Baseline Model Performance
  3. Grid Search Approach to Data Preparation

Grid Search Technique for Data Preparation

Datan valmistelu voi olla haastavaa.

Lähestymistapa, joka useimmiten määrätään ja jota noudatetaan, on tietokokonaisuuden analysointi, algoritmien vaatimusten tarkastelu ja raakadatan muuntaminen vastaamaan mahdollisimman hyvin algoritmien odotuksia.

Tämä voi olla tehokasta, mutta se on myös hidasta ja voi vaatia syvällistä asiantuntemusta data-analyysin ja koneoppimisalgoritmien suhteen.

Vaihtoehtoinen lähestymistapa on käsitellä syötemuuttujien valmistelua mallinnusputken hyperparametrina ja virittää se yhdessä algoritmin ja algoritmikonfiguraatioiden valinnan kanssa.

Tällöin datan muunnos voi olla sellainen, että sen ”ei ”pitäisi” toimia” tai sen ”pitäisi” ei ”pitäisi” olla tarkoituksenmukaista algoritmille”, mutta silti tuloksena syntyy hyvä tai loistava tulos. Vaihtoehtoisesti se voi olla sellaisen syötemuuttujan datamuunnoksen puuttuminen, jota pidetään ”ehdottoman välttämättömänä”, mutta joka kuitenkin johtaa hyvään tai loistavaan suorituskykyyn.

Tämä voidaan saavuttaa suunnittelemalla datanvalmistustekniikoiden ruudukkohaku ja/tai datanvalmistustekniikoiden sekvenssit putkistoissa. Tähän voi sisältyä kunkin arvioiminen yhdellä valitulla koneoppimisalgoritmilla tai koneoppimisalgoritmien sarjalla.

Tämän lähestymistavan etuna on, että sen tuloksena saadaan aina ehdotuksia mallinnusputkistoista, jotka antavat hyviä suhteellisia tuloksia. Mikä tärkeintä, se voi kaivaa esiin ei-ilmiselviä ja epäintuitiivisia ratkaisuja harjoittelijoille ilman syvällistä asiantuntemusta.

Voidaan tutustua tähän lähestymistapaan datan valmisteluun työstetyn esimerkin avulla.

Ennen kuin sukellamme työstettyyn esimerkkiin, valitaan ensin vakiomuotoinen datakokonaisuus ja kehitetään suorituskyvyn lähtötaso.

Haluatteko aloittaa datan valmistelun käytön?

Osta nyt ilmainen 7 päivän sähköpostin pikakurssini (esimerkkikoodin kera).

Klikkaa ilmoittautuaksesi ja saadaksesi myös ilmaisen PDF-kirjaversion kurssista.

Lataa ILMAINEN minikurssisi

Aineisto ja suorituskyvyn perustaso

Tässä osiossa valitsemme ensin vakiomuotoisen koneoppimisaineiston ja määrittelemme suorituskyvyn perustason tällä aineistolla. Tämä luo kontekstin seuraavassa jaksossa tapahtuvalle ruudukkohakumenetelmän tutkimiselle datan valmistelussa.

Viinien luokittelua koskeva tietokokonaisuus

Käytämme viinien luokittelua koskevaa tietokokonaisuutta.

Tässä tietokokonaisuudessa on 13 syötemuuttujaa, jotka kuvaavat viininäytteiden kemiallista koostumusta, ja siinä edellytetään viinin luokittelua johonkin kolmesta tyypistä.

Osaat lisätietoja tietokokonaisuudesta täältä:

  • Viinitietokokonaisuus (wine.csv)
  • Viinitietokokonaisuuden kuvaus (wine.names)

Tietokokonaisuutta ei tarvitse ladata, sillä lataamme sen automaattisesti osana työstämiämme esimerkkejä.

Avaa tietokokonaisuus ja tutustu raakadataan. Alla on lueteltu ensimmäiset tietorivit.

Voidaan nähdä, että kyseessä on moniluokkainen luokitteluennustemallinnusongelma, jossa on numeerisia syötemuuttujia, joilla kullakin on erilainen asteikko.

Alhaalla oleva esimerkki lataa tietokokonaisuuden ja jakaa sen tulo- ja lähtösarakkeisiin, minkä jälkeen tiivistää tietomäärät.

Ajamalla esimerkin näemme, että tietokokonaisuus ladattiin oikein ja että siinä on 179 tietoriviä, joissa on 13 syöte- eli input-muuttujaa ja yksi kohdemuuttuja.

1
(178, 13) (178,)

Arvioidaan seuraavaksi mallia tällä aineistolla ja luodaan suorituskyvyn perustaso.

Mallin perustason suorituskyky

Voidaan luoda perustaso suorituskyvylle viiniluokittelutehtävässä arvioimalla mallia raa’alla syöttöaineistolla.

Tässä tapauksessa arvioimme logistista regressiomallia.

Voidaan ensin määritellä funktio, jolla ladataan tietokokonaisuus ja suoritetaan minimaalinen tietojen valmistelu sen varmistamiseksi, että syötteet ovat numeerisia ja kohde on etikettikoodattu.

Arvioimme mallia käyttämällä kultaista standardia, joka on toistuva ositettu k-kertainen ristiinvalidointi 10 kertauksella ja kolmella toistolla.

Voidaan sitten kutsua funktiota lataamaan tietokokonaisuus, määritellä mallimme ja sitten arvioida se raportoimalla tarkkuuden keskiarvo ja keskihajonta.

Tämä yhteen nivomalla täydellinen esimerkki logistisen regressiomallin arvioinnista raa’alla viiniluokitteluaineistolla on lueteltu alla.

Esimerkin suorittaminen arvioi mallin suorituskyvyn ja raportoi luokittelutarkkuuden keskiarvon ja keskihajonnan.

Huomautus: Tuloksesi voivat vaihdella algoritmin tai arviointimenettelyn stokastisen luonteen tai numeerisen tarkkuuden erojen vuoksi. Harkitse esimerkin suorittamista muutaman kerran ja vertaa keskimääräistä tulosta.

Tässä tapauksessa voimme nähdä, että logistinen regressiomalli, joka on sovitettu raa’an syöttötiedon perusteella, saavutti keskimääräisen luokittelutarkkuuden, joka oli noin 95,3 prosenttia, mikä tarjoaa suorituskyvyn perustason.

1
Tarkkuus: 0.953 (0.048)

Seuraavaksi tutkitaan, voimmeko parantaa suorituskykyä käyttämällä ruudukkohakuun perustuvaa lähestymistapaa tietojen valmisteluun.

Ruudukkohakuun perustuva lähestymistapa tietojen valmisteluun

Tässä osassa tutkitaan, voimmeko parantaa suorituskykyä käyttämällä ruudukkohakuun perustuvaa lähestymistapaa tietojen valmisteluun.

Ensimmäinen vaihe on määritellä sarja arvioitavia mallinnusputkia, joissa kukin putki määrittelee yhden (tai useamman) tiedonvalmistustekniikan ja päättyy malliin, joka ottaa muunnetun datan syötteenä.

Määrittelemme funktion, jolla luomme nämä putket listana tupleista, joissa kukin tuple määrittelee putken lyhyen nimen ja itse putken. Arvioimme erilaisia datan skaalausmenetelmiä (esim. MinMaxScaler ja StandardScaler), jakaantumismuunnoksia (QuantileTransformer ja KBinsDiscretizer) sekä dimensioiden pienentämismuunnoksia (PCA ja SVD).

Kutsumme tätä funktiota saadaksemme luettelon muunnoksista ja luettelemme sitten jokaisen, arvioimme sen ja raportoimme suorituskyvyn matkan varrella.

Ajon päätteeksi voimme luoda laatikko- ja whisker-diagrammin kullekin pistesarjalle ja vertailla tulosten jakaumia visuaalisesti.

1
2
3
4

# piirrä tulos
pyplot.boxplot(results, labels=names, showmeans=True)
pyplot.show()

Tämä yhteenvetona täydellinen esimerkki ruudukkojen etsintätekniikoiden datanvalmistustekniikoista viinien luokittelutietoaineistolla on lueteltu seuraavassa.

Esimerkin ajaminen arvioi kunkin putken suorituskyvyn ja raportoi luokittelutarkkuuden keskiarvon ja keskihajonnan.

Huomautus: Tuloksesi voivat vaihdella algoritmin tai arviointimenettelyn stokastisen luonteen tai numeerisen tarkkuuden erojen vuoksi. Harkitse esimerkin ajamista muutaman kerran ja vertaa keskimääräistä tulosta.

Tässä tapauksessa nähdään, että sekä tulomuuttujien vakioimisella että kvantiilimuunnoksen käyttämisellä saavutetaan paras tulos, jonka luokittelutarkkuus on noin 98.7 prosenttia, mikä on parannus verrattuna perustasoon ilman tietojen valmistelua, jolla saavutettiin 95,3 prosentin luokittelutarkkuus.

Voit lisätä omia mallinnusputkistojasi get_pipelines()-funktioon ja verrata niiden tulosta.

Pystytkö saamaan parempia tuloksia?
Kertokaa minulle alla olevissa kommenteissa.

1
2
3
3
4
5
5
6

>normaalinorm: 0.976 (0.031)
>std: 0.987 (0.023)
>quan: 0.987 (0.023)
>kbins: 0.968 (0.045)
>pca: 0.963 (0.039)
>svd: 0.953 (0.048)

Luotiin kuva, jossa esitetään laatikko- ja whisker-diagrammit, joissa esitetään yhteenveto luokittelutarkkuuspisteiden jakaumasta kullekin datan esikäsittelymenetelmälle. Näemme, että standardointi- ja kvantiilimuunnosten pistemäärien jakaumat ovat tiiviitä ja hyvin samankaltaisia, ja niissä on yksi outlier. Näemme, että muiden muunnosten pisteiden jakauma on suurempi ja vinoutuu alaspäin.

Tulokset voivat viitata siihen, että aineiston vakioiminen on luultavasti tärkeä vaihe tietojen valmistelussa ja siihen liittyvissä muunnoksissa, kuten kvantiilimuunnoksessa, ja kenties jopa potenssimuunnos voi tarjota hyötyjä, jos se yhdistetään vakioimiseen tekemällä yhdestä tai useammasta syötemuuttujasta gaussisempi.

Box and Whisker Plot of Classification Accuracy for Different Data Transforms on the Wine Classification Dataset

Voidaan myös tutkia transformaatioiden peräkkäisyyksiä nähdäksemme, voisivatko ne tarjota nostetta suorituskyvylle.

Voidaan esimerkiksi soveltaa RFE-ominaisuuksien valintaa vakiointitransformaation jälkeen nähdäksemme, voidaanko käyttää samoja tai parempia tuloksia pienemmällä määrällä tulomuuttujia (esim.esim. vähemmän monimutkaisuutta).

Voisimme myös haluta nähdä, voisiko potenssimuunnos, jota edeltää datan skaalausmuunnos, saavuttaa hyvän suorituskyvyn aineistossa, kuten uskomme sen voivan, kun otetaan huomioon kvanttiilimuunnoksen menestys.

Päivitetty get_pipelines()-funktio, jossa on muunnosten sekvenssejä, on esitetty alla.

Tämä yhteen liittäen täydellinen esimerkki on lueteltu alla.

Esimerkin ajaminen arvioi kunkin putken suorituskyvyn ja raportoi luokittelutarkkuuden keskiarvon ja keskihajonnan.

Huomautus: Tuloksesi voivat vaihdella algoritmin tai arviointimenettelyn stokastisen luonteen tai numeerisen tarkkuuden erojen vuoksi. Harkitse esimerkin suorittamista muutaman kerran ja vertaa keskimääräistä tulosta.

Tässä tapauksessa näemme, että standardointi ominaisuuksien valinnalla tarjoaa lisähyötyä tarkkuuteen 98,7 prosentista 98,9 prosenttiin, vaikka datan skaalaus ja potenssimuunnos eivät tarjoa mitään lisähyötyä kvantiilimuunnokseen verrattuna.

1
2

>std: 0.989 (0.022)
>teho: 0.987 (0.023)

Luotiin kuva, jossa näytetään laatikko- ja whisker-diagrammit, jotka esittävät yhteenvedon luokittelutarkkuuspisteiden jakaumasta kullekin tiedonvalmistustekniikalle.

Voidaan nähdä, että molempien muunnosputkien tulosten jakauma on tiivis, ja siinä on hyvin vähän hajontaa lukuun ottamatta poikkeamia.

Box and Whisker Plot of Classification Accuracy for Different Sequences of Data Transforms on the Wine Classification Dataset

Further Reading

Tässä osiossa on lisää resursseja aiheesta, jos haluat syventyä.

Kirjat

  • Feature Engineering and Selection, 2019.
  • Feature Engineering for Machine Learning, 2018.

APIs

  • sklearn.pipeline.Pipeline API.

Yhteenveto

Tässä opetusohjelmassa opit käyttämään ruudukkohakumenetelmää taulukkomuotoisen datan tietojen valmisteluun.

Kohtaisesti opit:

  • Ruudukkohaku tarjoaa vaihtoehtoisen lähestymistavan taulukkomuotoisen datan tietojen valmisteluun, jossa transformaatioita kokeillaan mallinnusputken hyperparametreina.
  • Miten ruudukkohakumenetelmää käytetään datan valmistelussa parantamaan mallin suorituskykyä verrattuna perustasoon standardiluokitteluaineistolle.
  • Miten ruudukkohakumenetelmän datan valmistelumenetelmien sekvenssejä käytetään mallin suorituskyvyn parantamiseksi entisestään.

Onko sinulla kysyttävää?
Kysy kysymyksesi alla olevissa kommenteissa, ja teen parhaani vastatakseni.

Ota haltuun moderni datanvalmistus!

Valmista koneoppimisdatasi minuuteissa

…vain muutamalla rivillä python-koodia

Löydä miten uudessa Ebookissani:
Data Preparation for Machine Learning

Se tarjoaa itseopiskeluoppaita täydellä toimivalla koodilla:
Feature Selection, RFE, Data Cleaning, Data Transforms, Scaling, Dimensionality Reduction, ja paljon muuta…

Tuo nykyaikaiset datanvalmistustekniikat
koneoppimisprojekteihisi

Katso, mitä sisällä on

Twiittaa Jaa Jaa

Vastaa

Sähköpostiosoitettasi ei julkaista.