Kategoriat
Yleinen

Tiederahoittajalista

Sain Lens.org -sivuston kautta haetun listan tiederahoittajien nimistä sellaisista tutkimustartikkeleista, joissa on mukana suomalaisia korkeakouluja. Listassa on 2000 tiederahoittajaa, ja tehtäväni oli luoda taulukko, josta näkee; ovatko ne suomalaisia, vai ei. Tarkoituksena on verrata googlen avulla kirjoittamaani listaa ChatGPT-3.5-turbo-0613-tekoälyn ”kädenjälkeen”.

ChatGPT 3.5 -tekoäly on suunniteltu tulkitsemaan tekstiä, ja ”keskustelemaan” käyttäjänsä kanssa. Se ei pysty etsimään lisätietoja internetistä, vaan luottaa sille opetettuun tietoon.

Listasin rahoittajien suomalaisuuden binäärimuodossa True/False tekstein. Ihan jokaista rahjoittajaa en onnistunut paikantamaan, joten merkitsin ne VIRHE-tekstillä. Suomalaisia rahoittajia löytyi 1285, ulkomaalaisia 704, ja virheitä 11.

Kehoitteet

Tekoälyprojektiin käytettiin kolmea erilaista kehoitetta

  • This text is an organization that has funded a scientific publication. Can you determine if the organization is Finnish or not?
  • This text is an organization that has funded a scientific publication. Can you determine if the organization is Finnish or not? Answer with a yes or no answer. Yes for finnish and no for not finnish
  • Tämä teksti on tiederahoittajan nimi. Päättele onko tämä tiederahoittaja suomalainen? Vastaa ainoastaan kyllä, tai ei.

    Kehoitteet ovat sanallisia käskyjä, koska käyttämäni tekoäly on suunniteltu keskustelemaan käyttäjien kanssa. Se ei osaa hakea tietoa internetistä, vaan toistelee sille opetettuja asioita.

Kehoite 1

This text is an organization that has funded a scientific publication. Can you determine if the organization is Finnish or not?

En ajatellut tätä kehoitetta tarpeeksi pitkälle. Tekoäly vastasi kysymyksiin kokonaisin lausein, perusteluiden kera. Vastauksista ei voi siis luoda hyvää karttaa, mutta niiden silmäily paljastaa, ettei tekoäly tuntunut olevan kovin varma monista vastauksistaan.

Kehoite 2

This text is an organization that has funded a scientific publication. Can you determine if the organization is Finnish or not? Answer with a yes or no answer. Yes, for finnish and no for not finnish

Tekoäly vastasi vihdoin binäärivastauksin. Olisi tosin ollut järkevämpää nimetä ne samoin termein, kuin omassakin dokumentissa. (on/ei ole suomalainen) Korjasin tämän pois blogin PowerBi -piirakasta. Tekoäly tuppaa kompuroimaan suomalaisten ruotsinkielisten instituutioiden kohdalla, esim; Liv och Hälsa. Myös säätiöt kuten; Stiftelsen Alma och K. A. Snellman Säätiö aiheuttavat ongelmia, vaikka niissä onkin suomea.

Vaikka tekoäly luokittelikin suurimman osan datasta binäärimuodossa, päätyi se silti sooloilemaan muutaman kerran. Datasta löytyy kaksi erillistä saraketta, joissa tekoäly pahoittelee kyvyttömyyttään käyttäen kokonaisia lauseita. Tekoäly lisäsi myös yhden True -vastauksen perään pisteen, ja teki saman kolmesti No -vastausten kohdalla.
This text is an organization that has funded a scientific publication. Can you determine if the organization is Finnish or not? Answer with a yes or no answer. Yes, for finnish and no for not finnish

Tekoäly vastasi vihdoin binäärivastauksin. Olisi tosin ollut järkevämpää nimetä ne samoin termein, kuin omassakin dokumentissa. (on/ei ole suomalainen) Korjasin tämän pois blogin PowerBi -piirakasta. Tekoäly tuppaa kompuroimaan suomalaisten ruotsinkielisten instituutioiden kohdalla, esim; Liv och Hälsa. Myös säätiöt kuten; Stiftelsen Alma och K. A. Snellman Säätiö aiheuttavat ongelmia, vaikka niissä onkin suomea.

Vaikka tekoäly luokittelikin suurimman osan datasta binäärimuodossa, päätyi se silti sooloilemaan muutaman kerran. Datasta löytyy kaksi erillistä saraketta, joissa tekoäly pahoittelee kyvyttömyyttään käyttäen kokonaisia lauseita. Tekoäly lisäsi myös yhden True -vastauksen perään pisteen, ja teki saman kolmesti No -vastausten kohdalla.


Kehoite 3

Tämä teksti on tiederahoittajan nimi. Päättele onko tämä tiederahoittaja suomalainen? Vastaa ainoastaan kyllä, tai ei.

Kolmas kehoite annettiin suomeksi. Tämä ei kuitenkaan auttanut vastauksissa. Esimerkiksi Turku ja Oulu tunnistettiin ulkomaalaisina paikkoina. Kehoite 3 oli huomattavasti kielteisempi, kuin englanninkielinen kehoite 2. Se ei myöskään totellut annettua binäärikäskyä, vaan vastasi tylysti vastauksella; ”Ei” 102 kertaa. ”On suomalainen” -vastaus kirjoitettiin myös väärin 14 kertaa. Vastausten seasta löytyi myös 21 tapausta, joissa tekoäly oli hylännyt ohjeistuksen, ja alkanut kirjoittamaan omaa tekstiään, käyttäen kokonaisia lauseita.

Pohdintaa

Sain huomattavasti paremmat vastaukset käsin googlailemalla, vaikka se vei aikaa. Kehotteissa ei selkeästi kannata käyttää suomea, eikä tekoäly ole kovin luotettava ”sooloiluongelmansa” takia. Eipä sitä tosin tällaiseen ole suunniteltukkaan. Kunnollisilla kyselyille pitäisi kirjoittaa oma ohjelma, jossa asia on otettu huomioon. Tekoäly pitäisi myös kouluttaa ymmärtämään, että Suomi on kaksikielinen maa…

Lähde

Koulutus.fi. 2023. Sano hei ChatGPT:lle – Mikä on ChatGPT ja mitä siitä pitäisi tietää?. Päivitetty 5.5.2023. Saatavissa: https://www.koulutus.fi/artikkelit/mika-on-chatgpt-ja-mita-siita-pitaisi-tietaa-23286 [viitattu 4.7.2023]

Kategoriat
Yleinen

Ilta-Sanomien artikkelien luokittelu ChatGPT 3.5 -tekoälyn avulla

Minulle annettiin dataa, joka sisälsi kaikki Ilta-Sanomien verkkosivujen artikkelit vuodelta 2020. Data koostui sarakkeista: julkaisupäivä, url-osoite, otsikko, uutisteksti, ID, sanamäärä ja osasto. Tarkoituksena oli antaa data luokiteltavaksi yhdysvaltalaisen OpenAI -tutkimuskeskuksen ChatGPT 3.5 -tekoälylle. Tekoälyn oli tarkoitus ottaa näyte datasta, ja luokitella kaikki siinä olevat artikkelit sille annettuihin osastoihin.

ChatGPT 3.5 -tekoäly on nimensä mukaisesti suunniteltu tulkitsemaan tekstiä, ja ”keskustelemaaan”. Todellisuudessa se vaan toistaa sille opetettuja asioita. Se ei pysty hakemaan lisätietoja hakukoneiden avulla, vaan luottaa täysin oppimaansa tietoon.

Tekoälylle (lyh. AI) ainoastaan annettiin lista uutisartikkeleiden osastoista. Se ei nähnyt artikkeleiden alkuperäisiä osastoja. Käskyt annettiin Pandas -nimisellä Python -kirjastolla, käyttäen OpenAI:n API-avainta.

Itse data oli annettu csv-tiedostona, joka muunnettiin Pandasilla taulukoksi.

ChatGPT osoittautui kinkkiseksi työkaveriksi, joten jouduin ”ajamaan” projektin 90 kpl kokoisilla näytteillä. Valmiiseen työhön kertyi 300 tulosta, joten onnistuneita ajoja kertyi neljä.

Kehote annettiin tekstimuodossa. AI:n täytyi tietenkin tietää, mihin tekstit lajiteltaisiin, joten sille tuli antaa valmis lista osastoista, joihin data luokitellaan. Ilta-Sanomien Mobiili -niminen osasto on jätetty pois datasta, sen aiheuttamien ongelmien takia.

AI:ta viitattiin, kuin persoonana, kirjoittamalla sille ystävällisiä viestejä kokonaisin lausein, ja kuvailevin kriteerein. Skripti periaatteessa huijasi olevansa ihminen, joka kysyi AI:lta inhimillisiä kysymyksiä tietyin aikavälein.

Vastauksille varattiin 200 tokenia, skripti odotti 33 sekuntia kyselyiden välissä. Kolme ensimmäistä ajoa sisälsi 90 uutistekstiä. Näiden ajamiseen kului aikaa: 54min 31sek, 51min 3sek ja 50min 56sek. Viimeinen ajo sisälsi 30 uutistekstiä, ja siihen kului 18min 40sek.

Skriptin odotusluvun säätämisellä oli usein katalia seurauksia, joten jouduin tyytymään odotteluun.  Lopuksi data yhdistettiin csv -tiedostoon, josta kasasin sen suureksi taulukoksi, josta erottuu kaikki saatu data.


300:n uutistekstin joukosta AI onnistui luokittelemaan 125 artikkelia. (n. 42%) Datasta löytyi myös 19 artikkelia, joihin AI oli keksinyt oman vastauksen, vaikkei sille oltu koskaan annettu käskyä keksiä omia osastojaan. Datassa oli myös kolme vastausta, joilla tarkoitettiin sitä, mitä ajettiin takaa, mutta kirjoitusasu ei vastannut annettua promptia. Täysin epäonnistuneita luokitteluja oli 153. (51%)

Voit tutkia värikoodattua dataa osoitteessa: https://ksamk-my.sharepoint.com/:x:/g/personal/bmiha003_edu_xamk_fi/EUP5IUiq1XZChBAvQnRgz_0BHXuvesvZtR7ijQN9z-xNYA?e=qmjgMP
Excel -välilehdiltä löydät datan lajiteltuna.

Lähde

Koulutus.fi. 2023. Sano hei ChatGPT:lle – Mikä on ChatGPT ja mitä siitä pitäisi tietää?. Päivitetty 5.5.2023. Saatavissa: https://www.koulutus.fi/artikkelit/mika-on-chatgpt-ja-mita-siita-pitaisi-tietaa-23286 [viitattu 4.7.2023]

Kategoriat
Yleinen

Ajankohtaisten kysymysten luokittelua: suuret kielimallit ja Suomi

Tekoälyn ympärillä pyörivä hype on lisääntynyt alkuvuodesta merkittävästi. Tämä johtuu pitkälti suurista kielimalleista, joiden keskusteluun optimoitu versio julkaistiin joulukuussa 2022 chatGPT -nimellä.

Kielimallit on opetettu valtavalla määrällä tekstidataa, ja eri kielisen datan määrä vaihtelee paljon. Esimerkiksi englanti, espanja ja kiina ovat määrällisesti aivan eri sarjassa kuin suomi, virosta nyt puhumattakaan. Suomen Turussa koulutetaan parhaillaan kotimaisia GPT3-malleja ja niitä odotellessa on hyvä testata miten hyvin ulkomailla koulutetu mallit osaavat kieltämme.

Xamkin data-analytiikkakoulutuksen ajankohtaisten kysymysten kurssilla kerättiin tekstiaineisto. Jokainen opiskelija linkkasi kurssin keskustelualueelle ajankohtaisen dataan liittyvän uutisartikkelin, minkä jälkeen artikkelien kokotekstejä haettiin verkkosivuilta niiden url-osoitteiden ja lyhyen koodinpätkän avulla. Opiskelijat saivat tehtäväksi analysoida aineistoa luokittelemalla uutistekstien teemoja. Lopputuloksena syntyi 35 artikkelin aineisto. Jokainen sai kylkeensä opiskelijoiden antamat teemat ja ne yhdistettiin samaan sarakkeeseen.

Miten tekoäly suoriutuisi luokittelutehtävästä? Tai mitä muita luokittelutehtäviä sille voisi antaa? Kokeilua varten otettiin käyttöön chatGPT-kielimallin ohjelmointirajapinta. Aineiston uutistekstit lähetettiin ”tekoälylle” ja niiden kanssa kokeiltiin erilaisia ”prompteja” eli kehotteita, jotka ovat tässä tapauksessa ohjeita siitä mitä teksteille pitäisi tehdä.

chatGPT:n rajapinta haluaa sisäänsä järjestelmäkehotteen ja käyttäjäkehotteen. Ensimmäinen määrittelee kontekstia jonka perusteella mallia ohjataan tuottamaan tietynlaista tekstiä. Uutisaineistomme kanssa käytettiin seuraavaa järjestelmäkehotetta:

”olet reipas ja tarkkaavainen tutkimusapulainen joka auttaa tekstidatan luokittelussa”

Sitten kokeiltiin erilaisia käyttäjäkehotteita joilla konetta pyydettiin luokittelemaan tekstiä tai kertomaan siitä asioita.

Käytetyt ”promptit” eli kehotteet

Ensimmäisellä kehotteella pyydettiin erottelemaan tekstistä ihmisten ja organisaatioiden nimet. Toisella pyydettiin laatimaan uutisen pohjalta pahin mahdollinen skenaario ja kolmannessa pyydettiin teemoittelua tarkasti määritellyin ehdoin.

Mutta ovatko tulokset mistään kotoisin? Ensimmäisen kehotteen kohdalla tulokset on kohtuullisen helppo tarkistaa. Lisäksi on olemassa suomen kielellä opetettuja malleja jotka on koulutettu juuri tällaisia tehtäviä varten. Ja tämän pienen aineiston kanssa vaikuttaa, että chatGPT suoriutuu tehtävästä todella hyvin. Toisen ja kolmannen kehotteen laatua on vaikeampi arvioida.

Voit tarkastella tuloksia itse lataamalla csv-tiedoston täältä: https://drive.google.com/file/d/1rgzOo1h9IwBeKBGf8kNw2UU4IeFdlPCF/view?usp=share_link

Kategoriat
Yleinen

Sankey-kaavion luominen Kouvolan ostolaskuista

Sankey-kaavio on virtakaavio, joka edustaa tietojen, resurssien tai energian virtausta yhdestä elementistä toiseen. Kaaviot koostuvat suorakaiteita, jotka edustavat kategorista dataa sekä nuolista, jotka edustavat virtauksia kategorioiden välillä. Nuolen leveys vastaa virtauksen määrää.

Kaavio Kouvolan kaupungin vuoden 2021 ostolaskuaineistosta

Yksi suosittu käyttökohde Sankey-kaavioille on oman talouden hallinta. Seuraamalla omia tuloja ja menoja ja merkitsemällä tiedot ylös exceliin luo hyvän aineiston visualisoitavaksi. Verkkopankissa tiedot ovat hyvin saatavissa ja menojen ja tulojen kategorisointi voi olla myös hyvin opettavainen kokemus.

Seuraavaksi luomme yksinkertaisen Sankey-kaavion käyttämällä ei minun, vaan kotikaupunkini Kouvolan ostolasku-aineistoa vuodelta 2021 joka on saatavilla osoitteessa https://www.kouvola.fi/kouvolankaupunki/kouvola-tietoa/avoin-data/ Kaavion luomiseen käytetään SankeyMATIC -työkalua joka puolestaan käyttää tehokasta JavaScriptin D3.js visualisointikirjastoa.

Data on Excel-tiedostossa joten lienee luontevaa käyttää datan muokkaukseen Exceliä. Ennen visualisointia data on muokattava oikeaan muotoon, joka tässä tapauksessa on seuraava:

Mistä [paljonko] Minne

Vasemmalle puolelle tulee kategoria ja oikealla toinen kategoria johon virtaus kohdistuu. Hakasuluissa esitetään virtauksen määrä, jonka täytyy olla numeerinen muuttuja.

Aluksi poimin ostolaskuexcelistä vain halutut sarakkeet. Tässä tapauksessa vasemmalle puolelle tulee pelkästään ”Kunnan nimi”, oikealle muuttuja nimeltä ”Tiliryhmä 1” sekä numeeriseksi muuttujaksi ”Laskun loppusumma” jolloin taulukon alku näyttää seuraavalta:

Seuraavaksi aineisto pivotoidaan. Tarkoitus on yksinkertaisesti ryhmitellä aineisto Tiliryhmä 1:n mukaan ja laskea jokaiselle ryhmän jäsenelle laskujen summa. Tätä varten luodaan pivot-taulukko painamalla (englanninkielisessä excelissä) Insert -> pivot table -> From Table/range.

Alueeksi valitaan sarakkeet joissa Tiliryhmä 1 ja Laskun loppusumma majailevat, eli tässä tapauksessa sarakkeet B ja C. Pivot-näkymässä Tiliryhmä raahataan hiiren avulla laatikkoon ”rows” ja laskujen eurot raahataan laatikkoon values, josta Excel oletuksena laskee summan.

Pivotoimalla valitut sarakkeet saadaan aikaan nk. GROUP BY toiminto

Seuraavaksi siirrän pivot-taulukon omalle välilehdelle, jossa suoritetaan viimeinen toimenpide ennen visualisointia. Se on datan muuttaminen sankeymaticin haluamaan mistä [paljonko] minne -muotoon.

Lisään pivot taulukon vasemmalle puolelle uuden sarakkeen A joka saa joka rivillä arvon ”kouvolan kaupunki” Edustamaan kaaviomme vasenta laitaa. Sarake B sisältää tiliryhmäluokittelut ja sarake C laskujen summat. Kätevimmin datan saa visualisoitavaan muotoon käyttämällä seuraavaa funktiota uuteen sarakkeeseen:

=CONCATENATE(A2, " [", C2, "] ", B2)

Tässä A-sarakkeen toisella rivillä oleva arvo (koska ensimmäisellä on sarakkeen nimi) tulee vasemmalle, sen väliin C-sarakkeen arvo hakasuluissa ja vasemmalle B-sarakkeen arvo. Concatenate tarkoittaa suurin pirtein toisiinsa kytkemistä tai yhteen liittämistä. Lopputuloksena on seuraavanlainen taulukko:

D-sarakkeessa on funktiolla muodostettu data muodossa mistä [paljonko] minne

D-sarakkeen sisällön voi kopioida sellaisenaan sankeyMATICin inputs-laatikkoon. Työkalu tarjoaa paljon vaihtoehtoja kaavion muokkaamiseen monipuolisella käyttöliittymällä. Esimerkiksi tässä tapauksessa virtaus lähtee yhdestä osoitteesta, mutta sen voi myös jakaa kategorioihin. Lisäksi kaavion ulkonäköä voi muokata todella monipuolisesti haluamansa näköiseksi. Lopputuloksena tiliryhmän visualisoinnista syntyi seuraava kuva, jonka voi kätevästi ladata png-muodossa:

Kategoriat
Yleinen

Power Apps tuntiseurantasovellus

Annetun tehtävänantoni perusteella minun oli luoda tuntiseurantaan suunnattu ohjelma. Ohjelman tarkoituksena olisi tarjota Xamkin oppilaille helppo ja vaivaton keino suoritetun tuntimäärän kirjaamista ja seuraamista varten, lähinnä työharjoittelun yhteydessä, ja sitä tulisi pystyä käyttämään älylaitteella kuten puhelimella tai tabletilla.

Varsinaisesta sovelluskehittämisestä itselläni ei ollut minkään sortin kokemusta, vaikka eri ohjelmointikielten alkeita oli tultukin opiskeltua, kuten muun muassa Python, JavaScript ja PHP. Sovellus oli tarkoitus luoda Power Appsia käyttäen. Nimi ei sanonut omalla kohdallani mitään, mutta helpotuksekseni asiat pian avauvuivat.


Power Apps on Microsoftin Power -tuoteperheeseen (kuva 1) kuuluva sovellusten kehittämistä varten luotu työkalu. Power -tuoteperheen sovellukset ovat suunniteltu toimimaan nimenomaan keskenään, mutta moni niistä toimii myös muiden Microsoftin -palveluiden kesken.

Kuva 1. Microsoft Power -tuoteperhe.

Power Apps -kehittämisympäristö on toteutettu pilvipalveluna ja löytyy osoitteesta https://make.powerapps.com. (kuva 2) Sillä luodut sovellukset toimivat älylaitteilla, kuten puhelimilla ja tableteilla, mutta myös selaimessa. Sovelluskehitys on yhdistelmä palikkaohjelmointia ja kyselykieltä muistuttavien käskyjen kirjoittamista.

Kuva 2. Power Apps käyttöympäristö ja ohjelman aloitussivu.

Tuot projektiisi ennalta luotuja elementtejä jonka jälkeen asetat niille haluamasi arvot ja kerrot kuinka ohjelma reagoi käyttäjän ollessa vuorovaikutuksissa käyttöliittymän kanssa. Nämä tuodut elementit voivat olla näppäimiä, listoja, ajastimia, tai pelkkiä kuvioita tai ihan vain puhdasta tekstiä.

Power Apps -ohjelmat tukevat sisäänkirjautumista Microsoft -tilin kautta, jolloin sovelluskehittäjän itse ei tarvitse huolehtia salasanojen ja käyttäjätunnuksien salaamiseen liittyvistä tietoturvaongelmista. Samalla ohjelma mahdollistaa käyttäjätietoja käsittelevien funktioiden käytön kuten User().FullName ja User().Email, jotka ovat suuri apu luodessa ohjelmaa, jonka on tarkoitus pystyä erittelemään eri käyttäjät toisistaan.

Ja kuten edellä mainitsin Power Apps on suunniteltu toimimaan vuorovaikutuksissa eri Microsoft -palveluiden kanssa. Käytin projektissani Microsoft Sharepoint -palvelun alla toimivaa Lists -sovellusta, joka mahdollistaa taulukkodatan säilömisen ja jakamisen. Loin kaksi listaa/taulukkoa johon toiseen listasin tällä hetkellä olevat työtehtävät (kuva 3) ja toiseen käyttäjien tunnit. Lisäksi siirsin taulut DataLabs Sharepoint -ryhmän alle, jotta kaikilla DataLabs ryhmän jäsenillä olisi lähtökohtaisesti oikeudet taulujen käsittelemiseen sovelluksen käytön yhteydessä. Ohjelma toimi halutulla tavalla jos käyttäjältä puuttuvat taulujen muokkaamista varten edellytettävät oikeudet.

Kuva 3. Sharepoint työtehtävät -lista.

Käyttäjä pystyy hakemaan työtehtäviä sovelluksen saatavilla olevat työtehtävät -painikkeen kautta, joka tulostaa edeltävän kuvan 3 työtehtävät -listan (kuva 4). Työtehtävän nimeä koskettamalla käyttäjä saa esille kyseistä tehtävää koskevat tarkemmat tiedot ja voi halutessaan valita tehtävän itselleen painiketta painamalla.

Kuva 4. Power Apps työtehtävät -lista.

Työtehtävän valitsemisen jälkeen kyseinen tehtävä löytyy tehtävien lisäämisessä käytetyn valikon alta (kuva 5) ja käyttäjä voi kasvattaa sen tehtävän tunteja kirjatessaan suorituksiaan. Valikon kautta käyttäjä pystyy myös muokkaamaan tai poistamaan aikaisemmin kirjattuja tehtäviä. Kenttinä ovat päiväys, työ, tunnit ja valinnainen tekstikenttä johon voi halutessaan kirjoittaa jotain.

Kuva 5. Oman tehtävän lisäys/muokkaus.

Tehtävän kirjaamisen jälkeen tehtävä tulostuu käyttäjän työtehtävät -sivulle (kuva 6), jossa käyttäjä voi tarkastella kirjaamisiaan. Kirjattuja päiviä voi suodattaa halutun päivän mukaan ja niitä voi halutessaan muokata tai poistaa. Tehtävien yhteenlaskettu tuntimäärä tulostuu sovelluksen aloitussivulle. (kuva 2)

Kuva 6. Omien tehtävien näkymä.

Sovelluksen käyttöliittymä on vielä tässä vaiheessa ei-niin-täydellinen ja siitä puuttuu muutama ominaisuus. Pohjimmiltaan sen runko kuitenkin toimii. Tarkoituksena olisi myös luoda interaktiivinen Power BI -visualisointi, jota kautta sovelluksen käyttäjät, opettajat, tai joko kummatkin pystyisivät seuraamaan tuntikirjanpitoon liittyvä tunteja ja tavoitteita.


Power Apps esittää itsensä helppokäyttöisenä ja nopeana tapana luoda sovelluksia Microsoft -ympäristössä sijaitsevan datan ympärille. Omalta osaltani ohjelma ei kuitenkaan ollut aina niin yksiselitteinen mitä se lupasi. Joskus ohjelma ei vain toiminut halutulla tavalla ja sen yksinkertaisuuden takia ongelman löytäminen osoittautui odotettua turhauttavammaksi, mutta vikaa oli aivan varmasti myös käyttäjässä. Ja vaikka välillä ohjelman palikkamainen rakenne voikin tuoda omat rajoitteensa, niin se on silti erinomainen työkalu kaikille heille, jotka eivät ole ohjelmoinnin mestareita.

Kategoriat
Yleinen

R-studio ja Eurostat

R-studio on hallitseva ilmainen avoimeen lähdekoodiin perustuva ohjelmointiympäristö, joka tarjoaa graafisen käyttöliittymän R-kielen kirjoittamiselle antaen huomattavan määrän työkaluja kielen hallintaan. R-ohjelmointikieli on alusta alken luotu datasettien käsittelemistä varten, mutta sen tarjoamista ominaisuuksista eivät nauti pelkästään data-analytiikot ja -tieteilijät, vaan sen käytön ovat omaksuneet myös muunlaiset käyttäjät. (Giorgi F, Ceraolo C & Mercatelli D. 2022.)

Ohjelmointikieli tukee sovitettujen kirjastojen luomista, jotka pitävät sisällään ennalta luotuja komentoja laajentaen ja tehostaen R-kielen käyttöominaisuuksia. Yhtenä näistä kirjastoita on Eurostatin tarjoama eurostat-kirjasto. Eurostat (https://ec.europa.eu/eurostat/web/main/home) on Euroopan komission alainen yksikkö, joka tuottaa tilastotietoa Euroopan unionin käyttöön. Palvelun tarkoituksena on tarjota mahdollisuus suurien tilastojen jalostamiseen EU alueella ja palveluiden parantamiseen. (European Commission. 2022.) Tilastoihin pääsy ja niiden käyttäminen on täysin maksutonta.

Eurostat-kirjasto pitää sisällään funktioita, jotka mahdollistavat R-kielen tarraamisen Eurostatin ylläpitämän tietokannan (https://ec.europa.eu/eurostat/web/main/data/database) ohjelmointirajapintaan. Näin ollen käyttäjä voi tarkastella, käsitellä ja tallentaa sivustolta löytyvää dataa suoraan R-kielen välityksellä.

Eurostatin käyttöönotto

Eurostat kirjaston käyttämäinen edellyttää eurostat paketin asennusta ja se tapahtuu samalla lailla kuin minkä tahansa muunkin paketin asennus. Voit asentaa sen joko R-studion yläreunasta löytyvästä Tools -> Install packages valikosta tai käyttäen install.packages() funktiota malliin install.packages(”eurostat”) (kuva 1). Paketin asentamisen jälkeen saat kirjaston käyttöösi lisäämällä eurostat kirjaston projektiisi library(eurostat) funktiolla.

Kuva 1. Eurostat pakettien ja kirjaston asennus.

Tämän jälkeen Eurostatin eurostat-kirjasto on käytettävissäsi ja pystyt hyödyntämään sen tarjoamia uusia funktioita. Yhtenä alustavimmista funktioista on get_eurostat_toc(), joka tulostaa kaikki Eurostatista nykyhetkellä löytyvät datasetit. Alhalla (kuva 2) on esimerkki kyseisen kyselyn muuttujaan asettamisesta.

Kuva 2. Eurostat datasettien hakeminen.

Muuttujan asettamisen jälkeen voit avata sen ja tarkastella funktion tuoman kyselyn tulosta (kuva 3). R-studio muuntaa datan oletuskohtaisesti taulukkomuotoon, jossa se on myös ihmissilmälle helposti luettavassa muodossa. Taulukosta löytyvä code-sarake on olennainen tieto asian etenemisen kannalta, sillä se toimii taulukon tunnuksena.

Kuva 3. Haetut datasetit.

Datasetin hakeminen

Haetaan cens_hnmga tunnusta käyttävä taulu komennolla df <- get_eurostat(”cens_hnmga”, type = ”label”, time_format = ”num”). Taulu on avattavissa myös selaimella osoitteessa https://ec.europa.eu/eurostat/web/products-datasets/-/cens_hnmga. Taulu sisältää 30 Euroopan valtion väkiluvun vuosina 1981, 1991 ja 2001, sekä sukupuolijakauman. Taulun hakemisen jälkeen se on käytettävissä kuin mikä tahansa muukin R-studiossa sijaitseva taulu, mahdollistaen sen sisältämän datan suodattamisen ja muokkaamisen. (kuva 4)

Kuva 4. Taulun muokkaus.

Muokkaamisen lisäksi taulun dataa voidaan myös tulostella perinteiseen tapaan esimerkiksi ggplot-kirjaston voimin. (kuva 5)

Kuva 5. Esimerkkitulostus.

Loppumietteet

Tarpeen sitä vaatiessa Eurostat soveltuu hyvin erinäisten dataharjoitusten ja projektien datalähteeksi, mutta kaikki Eurostatin tietokannasta löytyvä data ei kuitenkaan käänny yhtä helposti käsiteltävään muotoon. Kokenut R-kielen osaaja jalostaa datasetin kuin datasetin, mutta kokeneemmattomalle käyttäjälle sopivan datasetin löytäminen tuhansien joukosta voi osoittautua omaksi ongelmakseen.

Palikoiden osuessa kohdalleen Eurostat kuitenkin hoitaa roolinsa sujuvasti ja näen sen varteen otettavana vaihtoehtona data-analytiikkaa opiskeleville vailla aineistoa, tai vaikkapa opettajille uuden opetusmateriaalin luonnin yhteydessä.

Lähteet

Giorgi F, Ceraolo C & Mercatelli D. 2022. The R Language: An Engine for Bioinformatics and Data Science. Päivitetty 4.2021. Saatavissa: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9148156/ [viitattu 18.11.2022].

European Commission. 2022. About Eurostat. Saatavissa: https://ec.europa.eu/eurostat/web/main/about-us/ [viitattu 18.11.2022].

Kategoriat
Yleinen

Datalab harjoittelu

Harjoittelussani oli tarkoitus tehdä tehtäviä Excelissä ja tutustua syvemmin sen ominaisuuksiin. Tarkastelin erityisesti analysointityökalua, mikä on Excelin lisäosa. Se antaa mahdollisuuden analysoida isoakin määrä dataa helposti. Analysointityökalun tutkiminen on ollut erittäin kiinnostava ja opettava kokemus.

Data

Näihin töihin data on kerätty Yahoo financista. Keräsin dataa kullan, raakaöljyn, platinan ja hopean hinnan muutoksista. Data oli vuoden 2012 alusta vuoden 2022 huhtikuun loppuun. Tarkemmin sanoen data koostui päivittäisistä päätöshinnoista. Yahoo financista ei ollut suoraa lataus mahdollisuutta näistä tiedoista, joten tietojen keräyksessä piti käyttää luovuutta. Lopulta sain siirrettyä tiedot Exceliin komentoja Ctrl-C ja Ctrl-V käyttäen. Aluksi siirrettyä dataa piti muokata, sillä luvut olivat muodossa 1,000.00, mitä Excel ei ymmärtänyt. Muokkaus perusmuotoon 1000,00 tehtiin käyttäen Excelissä komennolla Ctrl-F avautuvaa Korvaa-työkalua. Korvaa-työkalulla muutin myös päivämäärät muodosta kk.pp.vv muotoon pp.kk.vv.

Kuva 1 Viiva diagrammi raaka-aineiden hinta indeksistä

Valitsin arvokkaita raaka aineita, koska niistä voi nähdä mitä maailman taloudessa tapahtuu. Kullan, hopean ja platinan hinnat Yahoo finanssissa annettiin dollareina unssilta. Öljyn hinta sen sijaan annettiin dollareina tynnyriltä.

Kullalta oli ensimmäinen raaka-aine, jonka päätin valita. Kulta on perinteisesti ollut sijoittajien turvasatama markkinoiden epävakaina aikoina (Talousanomat, 2019). Kulta on siis historiallisesti luotettava ja tasainen arvon osoittaja taloudessa. Yllä olevasta käyrästä voit nähdä kullan hinnan on muutokset prosentteina viimeisen 10 vuoden aikana. Kullan hinta on noussut 70 prosenttia eli noin 800 dollaria viimeisen 10 vuoden aikana.

Hopea valittiin sen halvan hinnan ja sen käytöstä taloudessa. Hopean hintaa heiluttaa paitsi koronatilanne myös toiveet teollisuuden tuotannon elpymisestä ja lisäkysynnästä ja toisaalta huoli tuotannon riittävyydestä (Taloussanomat, 2020). Hopean hinta on korkeimmillaan noussut 170 prosenttia. Hopean alhaisen hinnan takia tämä muutos on ollut vain kymmenien dollarien verran.

Platina taas on arvoltaan kullan ja hopean välissä. Ei liian kallis jalometalli mutta ei myöskään liian halpa. Kuvan 1 mukaan platinan hinta on laskenut huomattavasti viimeisen 10 vuoden aikana. Platinan hinta on pudonnut 40 prosenttia eli noin 700 dollaria.

Raakaöljyn valitsi Ukrainan sodasta seuranneesta hinnan noususta. Jolloin korrelaatio olisi helpompi huomata hinnan muutoksista. Öljyn hinta on noussut 29 prosenttia eli noin 20 dollaria viimeisen 10 vuoden aikana. Öljyn hinta vuonna 2020 putosi 88 prosenttia. Seuraavan kahden vuoden aikana öljyn hinta nousi huimat 117 prosenttia.

Kuva 2 Näkymä datasta Excelissä

Datan käsittelyyn käytettiin Excelin apuohjelmaa analysointityökalut. Analysointityökalut voi aktivoida asetuksista. Kyseisellä työkalulla voit tehdä monenlaisia data-analyysejä suurellekin määrälle dataa helposti. Sen helppokäyttöisyys ja käyttäjäystävällisyys käy ilmi nopeasti.

Korrelaatio

Yksi analysointityökaluista on nimeltään Korrelaatio. Kyseinen työkalu hyödyntää Pearsonin korrelaatiokerrointa, joka mittaa lineaarisen yhteyden voimakkuutta kahden muuttujan välillä. Työkalulla pystyt helposti laskemaan (pareittaiset) korrelaatiokertoimet usean muuttujan tilanteessa (Kuvat 3 ja 4). Huomaa, että jos käytät ainoastaan KORRELAATIO-komentoa Excelissä, saat vain yhden korrelaatiokertoimen. Korrelaatio-työkalun tutkiminen ja sen käyttöön perehtyminen oli kiinnostava projekti ja oli hyvin opettavaista.

Kuva 3 Esimerkki korrelaatio matriisista

Korrelaatio on voimakkaampi mitä lähempänä korrelaatiokerroin on 1 tai -1. Se on sitä heikompi mitä lähempänä se on nollaa. Matriisista (Kuva 3) näet, että kullalla ja raakaöljyllä on heikko suora korrelaatio. Platinalla ja kullalla on sen sijaan heikko suora korrelaatio. Hopealla ja platinalla on voimakas suora korrelaatio. Platinalla ja raakaöljyllä sekä Hopealla ja kullalla on taas vahva korrelaatio. Raakaöljyllä on vahva korrelaatio hopean kanssa.

Korrelaatio matriisia tutkiessani huomasin, miten datasetin laajuus vaikutti suuresti matriisiin. Datan keräys suppeasti tai pieneltä aikaväliltä voi vaikuttaa korrelaatiomatriisiin tuloksiin. Kuvan 4 data on kerätty vuoden alusta alkaen toukokuun alkuun. Kuvien 3 ja 4 matriisit ovat selvästi hyvin erilaiset.

Kuva 4 Esimerkki suppean datan käytöstä korrelaatio matriisissa

Tunnusluvut

Toinen työkalu mihin tutustuin, oli Tunnusluvut-työkalu. Se on hyvin käytännöllinen työkalu, jonka avulla voit saada datasta laskea datasta perustunnusluvut, kuten keskiarvon, moodin ja mediaanin. Huomaa, että moodi voi näkyä myös muodossa #puuttuu! (kuva 5), jos datasetissä ei ole yhtäkään samanlaista arvoa. Kuvassa 5 voit nähdä, mitä kaikkea Tunnusluvut-työkalulla saadaan selville. Tämä työkalu vaikuttaa tehokkaalta työvälineeltä, joten aion tulla käyttämään sitä tulevaisuudessa. Mielestäni sillä on paljon potentiaalisia hyötyjä.

Kullan tämänhetkinen hinta on keskiarvon yläpuolella yllättävän paljon. Kullan hinta on nyt 1909,30 (dollaria unssilta) verrattuna koko datan keskiarvoon 1522,71. Kullan hinta on vaihdellut paljon vuosien varrella, tämän voi nähdä kohdasta Alue, joka tarkoittaa tunnuslukua vaihteluväli (joka kertoo suurimman pienimmän arvon erotuksen). Mielestäni kiinnostavin havainto koskien tunnuslukuja oli raakaöljyn halvin hinta, mikä oli vain -37,63 dollaria tynnyriltä. Tämä oli mielestäni hyvin kiinnostava havainto.

Kuva 5 esimerkki tunnusluvut työkalusta

Pohdinta

Mielestäni aikani analysointityökalu apuohjelman parissa on ollut todella palkitsevaa ja kiinnostava. Opin jopa tämän blogikirjoituksen aikana uusia asioita Excelistä. Odotan innolla, mitä tehtäviä tulee vielä harjoitteluni aikana. Haluaisin tutkia myös muita apuohjelmia ja saada niistä tietoja.

Lähteet

STT–AFP. 2019. Kullan hinta singahti ylimmilleen kuuteen vuoteen. Talousanomat 21.6.2019. Verkkolehti. Saatavissa: https://www.is.fi/taloussanomat/art-2000006150257.html

Startel–Bloomberg. 2020. Kullan hinta harppasi ennätyslukemiin, hopea kalleinta seitsemään vuoteen. Talousanomat 22.7.2020. Verkkolehti. Saatavissa: https://www.is.fi/taloussanomat/art-2000006578695.html

Kategoriat
Yleinen

Harjoittelu: DataLAB

Kokonaisuudessaan harjoitteluni koostui useasta osasta. Minulla oli hieman aikaisempaa työkokemusta, jota kykenin hyödyntämään osana perusharjoittelua. Lopun perusharjoittelun ja syventävän harjoittelun suorituspaikkana toimi DataLAB, jossa työskentelin muutaman isomman projektin ja tehtävän parissa. Harjoittelun suoritin toukokuun 2021 ja joulukuun 2021 välillä.

Hävikki-projekti

Hävikki-projektiin haettiin data-analytiikan opiskelijaa keväällä 2021. Projekti oli kuvauksen perusteella kiinnostava ja mikä tärkeintä, siinä pääsi vaikuttamaan oikeisiin ja olemassa oleviin ongelmiin. Projektin tarkoitus oli selvittää vähittäistavarakaupoista kerättävän datan avulla, voiko ruoan hävikkiä ennustaa.

Pitkälti projektin työkaluna toimi R-studio. Projektin ensimmäisessä vaiheessa hävikkiä ennustettiin regressiomallien avulla. Projektin toisessa vaiheessa saatiin lisää dataa käyttöön ja lähestymistapaa vaihdettiin. Hävikin esiintyvyyttä alettiin tarkastelemaan keskiarvon ja keskihajonnan avulla, joita laskettiin sitä mukaa kun päiviä kertyi. Tällä tavoin ennusteen tarkkuus parani, mitä enemmän dataa saatiin kerättyä.

Hävikki-projekti sai myös jatkoa syksyllä 2021 data-analytiikan opintoihin sisältyvän projektin yhteydessä. Projektin tarkoituksena oli löytää sopiva määritelmä ongelmallisille tuotteille, joilla on suurempi riski aiheuttaa hävikkiä.

Kesätehtävät

Kesän ajaksi sain kolme isompaa tehtävää suoritettavaksi. Ensimmäisenä tehtävänä oli luoda frekvenssejä kuvaava puudiagrammi hyödyntäen R-Studiota. Esimerkiksi kyselytutkimuksen analysoinnissa voi olla hyödyllistä käyttää puudiagrammia, sillä se kuvaa selkeästi muuttujien jakautumista sekä näyttää lisäksi niiden arvot ja frekvenssit. Kirjoitin aiheesta myös erillisen blogin: Frekvenssejä kuvaava puudiagrammi.

Toinen kesätehtäväni oli muokata BRFSS-data kyselytutkimusainestoa vuodelta 2019, jossa on tutkittu Yhdysvaltain kansalaisten terveyttä ja elintapoja. Tarkoituksena oli saada aikaan selkeämpi ja suomennettu kokonaisuus, joka sisältää jatkuvia ja epäjatkuvia muuttujia hyödyntäen R-Studiota. Tarkemmin muokkauksesta kerron blogissa: BRFSS-datan muokkaus.

Kolmas kesätehtäväni oli R-Studion avulla tarkastella logistista regressiota. Tehtävänä oli esitellä logistisen regression teoriaa, mallin tekeminen, ennustaminen ja selvittää mallin toimivuus. Tehtävässä hyödynsin aiemmin muokkaamaani BRFSS-dataa.

Muuta

DataLAB pitää sisällään myös muita työtehtäviä. Niihin kuuluu kuukausittaiset palaverit, joissa käydään läpi sen hetken työtilanteita ja jatkotoimenpiteitä. Kouvolan kampukselle avatun FUEL-tila myötä myös DataLAB sai fyysiset toimitilat syksyllä 2021. Olin itse mukana tekemässä muuttoa ja järjestelyitä uusissa tiloissa. DataLAB piti FUEL-tilan avajaisissa myös omaa pistettä, jossa esiteltiin aikaan saatuja töitä. Omalta osaltani esittelin keväällä 2021 tehtyä Hävikki-projektia.

Lopuksi

Harjoittelusta opin paljon. Tehtävät olivat välillä haastavia, mutta koen sen olleen myös suuri etu. Hienoa oli myös päästä vaikuttamaan oikeisiin ongelmiin sekä nähdä oma työnsä jälki, ja että siitä oli myös hyötyä. DataLAB tarjoaa monipuolisia työtehtäviä opiskelijoille, joten siellä harjoittelun suorittamista kannattaa ehdottomasti pitää mahdollisuutena.

Kategoriat
Yleinen

FREKVENSSEJÄ KUVAAVA PUUDIAGRAMMI

Puudiagrammi on kätevä työkalu, jota voidaan hyödyntää esimerkiksi kyselytutkimuksen analysoinnissa. Puudiagrammi kuvaa selkeästi muuttujien jakautumista sekä näyttää lisäksi niiden arvot ja frekvenssit.

Kuva 1. Esimerkki puudiagrammista

Puudiagrammin tekoon löytyy ohjeistus: Introduction to vtree(Barrowman 2021). Barrowmanin opas toimi pohjana puudiagrammin luomisessa R-Studiolla.

Data

Puudiagrammi toimii parhaiten tarkasteltaessa epäjatkuvia muuttujia. Kyseistä diagrammia luodessa käytettiin Armeniassa sijaitsevien anniskeluravintoloiden ja niihin kohdistuneen kyselytutkimuksen tuloksia (Hambardzumyan. 2017). Yllä olevassa puudiagrammissa on esiteltynä vastaajien sukupuoli, ikä ja syy käydä ravintolassa.

Puudiagrammien tarkastelussa tulee muuttujien arvojoukkojen olla riittävän suppeita. Tarkasteltaessa jatkuvia muuttujia arvojoukot saattavat hyvin usein olla liian laajoja. Tästä syystä muuttujat kannattaa muuntaa epäjatkuviksi muuttujiksi. Tässä tapauksessa esimerkiksi ikä oli jatkuva muuttuja, joka muunnettiin ikäluokaksi.

Diagrammin luominen käytännössä

Puudiagrammin luominen R-Studiossa on yksinkertaista ja funktion avulla vielä yksinkertaisempaa ja nopeampaa. Funktion luominen mahdollistaa sen, että käytännössä käskytykseen tarvitsee syöttää vain halutut sarakkeet, eli muuttujat, joita puudiagrammin avulla halutaan tarkastella.

Kuva 2. Puudiagrammin luominen.

Käytännön kannalta ongelmallista oli, että puudiagrammia ei saatu näkymään muuten, kuin kääntämällä RMD-tiedosto HTML-tiedostoksi. Tarvittaessa puudiagrammi saadaan kopioitua esimerkiksi Word-tiedostoon. Puudiagrammi on myös kuvana iso, joten muuttujien lisääntyessä kannattaa puudiagrammi piirtää pitkittäin. Poikittain piirrettäessä arvojen ja frekvenssien tarkastelu voi olla vaikeaa sillä kuva on pieni.

Tulevaisuudessa hyödyllistä olisi myös luoda työkalu, jolla R-kieltä osaamatonkin henkilö kykenee luomaan puudiagrammin esimerkiksi Excel-taulukon pohjalta.

Lähteet

Barrowman, N. 2021. Introduction to vtree. Opas. Päivitetty 3.10.2021. Saatavissa: https://cran.r-project.org/web/packages/vtree/vignettes/vtree.html [viitattu 12.12.2021].

Hambardzumyan, E. 2017. Armenian Pub Survey. Data. Päivitetty 17.3.2017. Saatavissa: https://www.kaggle.com/erikhambardzumyan/pubs [viitattu 12.12.2021].

Kategoriat
Yleinen

BRFSS-DATAN MUOKKAUS

BRFSS-data on kyselytutkimusainestoa vuodelta 2019, jossa on tutkittu Yhdysvaltain kansalaisten terveyttä ja elintapoja. Data on taulukkomuodossa XPT-tiedostona ja sitä oli noin 400 000 riviä ja yli 300 saraketta. Data on saatavissa täältä (CDC. 2020).

Tehtävänä oli muokata datasta lyhyempi ja selkeämpi kokonaisuus, jota voi käyttää esimerkiksi opetuksessa ilman, että datan muokkaamiseen tarvitsee käyttää paljoa aikaa. Datan käyttö edellyttää jonkin tapaista muokkausta, sillä alkuperäisen datan arvojen tulkitseminen vaatii erillisen tulkintaa varten tehdyn tiedoston (CDC. 2020). Esimerkiksi kyselytutkimuksessa osa vastaajista oli antanut painonsa nauloina ja osa taas kilogrammoina. Lisäksi joukosta löytyi vastaajia, jotka eivät halunneet kertoa painoa tai kohta on jätetty tyhjäksi.

Kuva 1. Painon alkuperäiset arvot tulkinnan avuksi tehdyssä tiedostossa (CDC. 2020).

Datan muokkaus alkoi sillä, että valittiin tiedot, joihin selkeytetty data haluttiin rajata. Yhteensä uuteen dataan kerääntyi saraketietoja noin 30 kappaletta ja rivitietoja rajausten jälkeen oli noin 300 000. Uuteen ja rajattuun dataan valitut tiedot olivat haastateltavan joukon perustietoja (pituus, paino, sukupuoli yms.), alkoholin käyttöön liittyvät vastaukset sekä tupakointiin liittyvät vastaukset.

Itse konkreettinen datan muokkaus oli suurimmilta osin vain arvojen määrittämistä uudelleen. Datan oli tarkoitus koostua sopivassa suhteessa sekä jatkuvista ja epäjatkuvista muuttujista. Lisäksi data käännettiin suomen kielelle. Työkaluna datan käsittelyssä toimi R-studio.

Kuva 2. Arvojen muokkausta.

Lopuksi uusi data tallennettiin omaksi R-tiedostoksi, josta sen voi muuntaa tarvittaessa esimerkiksi Excel-tiedostoksi ja testattiin datan toimivuutta laskemalla jatkuvien muuttujien keskiarvot. Lisäksi muokatulle versiolle tehtiin myös Word-tiedosto, johon kirjattiin kaikki muuttujien nimet ja niiden arvojoukot. Muokatusta datasta tehtiin myös lyhennetty versio, jossa muuttujien nimet on lyhennetty.

Kuva 3. Jatkuvien muuttujien keskiarvot.

Lähteet

LLCP 2019 Codebook Report Overall version data weighted with _LLCPWT Behavioral Risk Factor Surveillance System. 2020. CDC. WWW-lähde. 31.7.2020. Saatavissa: https://www.cdc.gov/brfss/annual_data/2019/pdf/codebook19_llcp-v2-508.HTML [viitattu 12.12.2021].

LLCP2019XPT. 2020. CDC. XPT-tiedosto. Saatavissa: https://www.cdc.gov/brfss/annual_data/annual_2019.html [viitattu 20.12.2021].