Data ja sen merkitys tekoälylle

Mitä digitaalinen data on?

Tekoälyä kuvataan usein uutena sähkönä, joka vaikuttaa lähes kaikkiin elämänalueisiin. Tätä vertauskuvaa voi jatkaa viittaamalla dataan uutena polttoaineena, joka tuottaa tekoälyä ja pitää sen käynnissä. Digitaalinen data on tietokoneen ymmärtämässä muodossa olevaa tietoa. Sitä voidaan syöttää, muokata ja poistaa kulloinkin tarpeeseen soveltuvalla ohjelmalla, olipa kyse tekstinkäsittelystä, taulukkolaskennasta, grafiikasta, kuvista tai videoista. Myös kaikki yritystoiminnan käyttämät järjestelmät toimivat samoilla periaatteilla: kerätään dataa, muokataan ja lasketaan sitä käyttötarkoitukseen sopivaksi ja annetaan käyttäjälle lopputulos.

Vaikka käytettävissä oleva data esitetään tarvittavassa muodossa, on tietokoneen käytössä vain numeerista - tarkkaan ottaen binääristä - tietoa. Kaikki digitaalisen datan käsittely pohjautuu siis laskentaan. Tämä tarkoittaa sitä, että tekoälyn kanssa käytettävä data pitää kerätä, saattaa yhdenmukaiseen muotoon ja syöttää määritellyllä tavalla.

Datan jalostamisesta

Alla oleva kuva DIKW-pyramidista esittää rakennetta, jossa pohjana on digitaalinen data kerättynä tarpeeseen soveltuvista lähteistä, joita voivat olla vaikkapa erilaiset IoT-laitteet, tietokannat, käytettävissä olevat tiedostot sekä internet.

Pyramidia kannattaa lähestyä navigointiesimerkin avulla seuraavasti:

Kuva. Datan merkitystä kuvaava DIKW-pyramidi. Alimmassa kerroksessa on raakadata, sen päällä on jalostettu kerros datasta informaatioksi, joka edelleen jalostetaan tietämykseksi (knowledge) ja se puolestaan jalostetaan viisaudeksi (wisdom).

Datan hankinta

Datan hankinta tarkoittaa tietojen keräämistä ja tallentamista jatkokäsittelyä varten. Datan hankintaan voi sisältyä monia erilaisia menetelmiä. Seuraavaksi näitä tarkastellaan lähemmin:

1. Tiedostojen ja tietokantojen lukeminen:

    - Tiedostot: Usein dataa säilytetään tiedostoissa, kuten CSV-, JSON-, XML- tai Excel-tiedostoissa. Tiedostojen lukeminen on yksi perusmenetelmistä datan hankinnassa. Usein käytetään ohjelmointikieliä, kuten Python tai R, ja niiden kirjastoja tiedostojen käsittelyyn.

    - Tietokannat: Kun dataa säilytetään järjestelmällisesti tietokannoissa, kuten SQL tai NoSQL -tietokannoissa, niin tietojen lukemiseen käytetään yleensä kyselykieliä (esim. SQL) tai ohjelmointikielten kirjastoja tietokantayhteyksien hallintaan.

2. Ohjelmointirajapintojen käyttäminen: API-rajapinta (engl. Application Programming Interface) on tapa, jolla ohjelmat voivat keskustella keskenään ja jakaa tietoa. Esimerkiksi monilla verkkopalveluilla on API-rajapintoja, jotka mahdollistavat tietojen hakemisen suoraan palvelusta ohjelmallisesti. Tätä menetelmää käytetään yleensä, kun halutaan hyödyntää ajantasaisia tietoja tai automatisoida datan kerääminen.

3. Verkkosivujen haravointi: (engl. Web Scraping) tarkoittaa verkkosivujen tietojen keräämistä ohjelmallisesti. Tämä on hyödyllistä, kun halutaan kerätä dataa sivuilta, joilla ei ole API-rajapintaa. Verkkosivujen haravointiin käytetään tyypillisesti ohjelmointikieliä, kuten Pythonia ja sen kirjastoja, kuten BeautifulSoup tai Scrapy. On kuitenkin tärkeää huomioida, että verkkosivujen haravointi saattaa rikkoa sivuston käyttöehtoja ja/tai lakia, joten sen käyttöön tulee suhtautua varoen.

4. Datan kerääminen sensoreista: Datan kerääminen antureista on tärkeää erityisesti IoT (Internet of Things) -sovelluksissa. Tähän voi sisältyä esimerkiksi lämpötila-antureiden, liiketunnistimien tai muiden sensorien datan lukemista. Anturidata voidaan lukea suoraan laitteelta tai välittää pilvipalveluun, josta se on helpompi hakea analysointia varten. Anturidatan kerääminen vaatii yleensä tietoa laitehallinnasta ja verkkotekniikoista.

Datan hankinnassa on tärkeää varmistaa datan laatu, käsitellä sitä huolellisesti ja noudattaa eettisiä periaatteita sekä lainsäädäntöä. Lisäksi on tärkeää huomioida datan turvallisuus ja yksityisyys, erityisesti kun käsitellään henkilötietoja.

Datan muokkaaminen

Kun data on kerätty, seuraava askel on datan esikäsittely, joka on välttämätöntä datan puhdistamiseksi, muokkaamiseksi ja muuntamiseksi sopivaan muotoon analyysiä tai muita jatkokäsittelyitä varten. Datan esikäsittely koostuu usein seuraavista vaiheista:

1. Datan puhdistaminen (Data Cleaning):

    - Puuttuvien arvojen käsittely: Voit korvata puuttuvat arvot esimerkiksi keskiarvolla, mediaanilla tai jollakin muulla menetelmällä, tai poistaa rivit, joissa on puuttuvia arvoja.

    - Virheellisten tai epäjohdonmukaisten tietojen korjaaminen: Jos datasetissä on virheitä tai epäjohdonmukaisuuksia, ne tulee korjata tai poistaa.

2. Datan muokkaaminen (engl. Data Transformation):

    - Normalisointi: Jos datasetin ominaisuudet ovat eri mittakaavoissa, ne voidaan normalisoida esimerkiksi skaalaamalla arvot välille 0 ja 1.

    - Koodaus: Kategoristen muuttujien, kuten värien tai luokkien, muuntaminen numeeriseen muotoon. Yksi tapa on esimerkiksi one-hot encoding, jossa jokainen kategoria saa oman sarakkeen, jossa on arvot 0 tai 1.

    - Ominaisuuksien muodostaminen: Uusien ominaisuuksien luominen olemassa olevasta datasta. Esimerkiksi päivämäärien muuntaminen viikonpäiviksi tai aikaleimojen muuntaminen ajankohdiksi.

3. Datan vähentäminen (Data Reduction):

    - Ominaisuuksien valinta: Jos datasetissä on paljon ominaisuuksia, voi olla hyödyllistä valita vain ne, jotka ovat oleellisia analyysille.

    - Ulottuvuuksien vähentäminen: Tekniikat, kuten pääkomponenttianalyysi (engl. Principal Component Analysis = PCA), voidaan käyttää datan ulottuvuuksien (dimensioiden) vähentämiseen säilyttäen samalla tärkeimmät piirteet.

4. Datan jakaminen (engl. Data Splitting): Usein data jaetaan koulutus- ja testijoukkoihin, varsinkin koneoppimisessa. Koulutusjoukkoa käytetään mallin kouluttamiseen, kun taas testijoukkoa käytetään mallin suorituskyvyn arviointiin.

5. Datan tallentaminen: Kun data on esikäsitelty ja valmis jatkokäsittelyyn, se tulee tallentaa sopivassa muodossa. Tämä voi olla tiedostona, kuten CSV tai HDF5, tai tietokannassa.

Tämän prosessin aikana on tärkeää ymmärtää, mitä dataa ollaan käsittelemässä ja mitkä ovat analyysin tai jatkokäsittelyn tavoitteet, jotta voidaan tehdä parhaita mahdollisia päätöksiä datan esikäsittelyssä. Datan esikäsittely on käytännössä aikaa vievä prosessi, mutta se on kriittinen askel datan hyödyntämisessä ja analysoinnissa.