Meneillään olevassa Suomen 4. lintuatlashankkessa kerätään tietoa lintujen levinneisyydestä. Hanke toteutetaan pääosin vapaaehtoistyönä: lintuharrastajat tekevät havaintoja ja tarkkailevat pesinnän merkkejä Suomen kaikissa n. 3859 yhtenäiskoordinaatistoruudussa (ykj-ruudusta, kukin 10 x 10 km). Havainnoinnin suuntaamisessa auttaisi tieto siitä, mitä lajeja milläkin alueella todennäköisesti esiintyy, mutta joista vielä puuttuu havaintoja.
Helppo tapa tehdä tällaisia puutelistoja olisi verrata nykyisen atlaksen havaintoja edellisen 2006-2010 toteutetun 3. lintuatlaksen tietoihin. Mutta tämä voisi vinouttaa havainnointia kannustamalla replikoimaan edellisen atlaksen tuloksia.
Ajantasaisempaa vertailua varten kokeilin tehdä levinneisyysmallin lintulajeista tekoälyn ja koneoppimisen avulla. Tässä kerron teknisiä yksityiskohtia tämän tekemisestä. Malli on käytössä Havistin-palvelun puutelistoilla, ks. esim. Hollolan Arrankorven ruudun puutelista.
Data
Koulutusdatana käytin 12. toukokuuta 2023 mennessä vähintään tyydyttävästi kartoitettujen ruutujen lajitietoja. Tällaisia ruutuja oli 769 kappaletta eli 19,9 % kaikista ruuduista. (Ruutu katsotaan tyydyttävästi kartoitetuksi, jos sen pesimävarmuussumma ylittää tietyn 1980-luvulla määritellyn raja-arvon. Raja-arvo on määritelty mm. ruudun mereisyyden ja leveyspiirin perusteella.) Rajasin havainnot 229 yleisimmin havainnoituun lintulajiin (havaintomäärän perusteella: yleisin kirjosieppo, harvinaisin lapinkirvinen).
Lisäksi käytin jokaisesta ykj-ruudusta laskettuja Corine-datan karkean biotooppijaon (kiitos Ilona Aalto!) mukaisia prosenttiosuuksia. Biotoopit olivat makea vesi, merivesi, metsä, maaseutu, taajama ja puuttuva data.
Kokosin tämän datan taulukoksi, jossa yhdellä rivillä on seuraavat sarakkeet:
- lajinimi
- pesimävarmuusluokka (0-3; ei havaintoja/epätodennäköinen, mahdollinen, todennäköinen tai varma)
- ykj-ruudun pohjoiskoordinaatti, esim. 667
- ykj-ruudun itäkoordinaatti, esim. 337
- kunkin biotoopin osuus ruudulla, 0.1 prosenttiyksikön tarkkuudella
Kaikkiaan dataa tuli 176.101 riviä.
Koulutus
Seuraavaksi latasin tämän taulukon Googlen Vertex AI -palveluun. Käytin palvelua oletusasetuksilla luodakseni regressiomallin, joka ennustaa pesimävarmuusluokan muiden tietojen perusteella. Datasta 80 % käytettyyn mallin luomiseen, 10 % testaamiseen ja 10 % validointiin, satunnaisotannalla.
Koulutukseen kului aikaa 1 nooditunti (node hour), joka maksoi noin 20 euroa.
Valmiin mallin tunnusluvut ovat:
- Mean absolute error (MAE): 0,438
- Mean absolute percentage error (MAPE): 171.626.220
- Root mean square error (RMSE): 0,699
- Root mean squared log error (RMSLE): 0,343
- r squared (r^2): 0,654
Googlen palvelu antaa myös tilastoja siitä, mitkä tekijät vaikuttavat ennusteeseen. Lajilla on odotetusti suurin merkitys:

Tulokset
Kokonaisuutena malli vaikuttaa kohtuullisen hyvältä. Joillakin Lapin lajeilla ennusteet vaikuttavat epätavallisilta, todennäköisesti koska biotooppidata niputtaa metsät, tunturikoivikot ja tunturipaljakat kaikki yhden biotoopin alle.
Mallikarttoja: järripeippo, peltopyy ja harmaalokki. Tummempi väri merkitsee varmempaa pesintää (musta = 3, valkoinen = 0):



Mallia voisi kokeilla parantaa
- Lisäämällä uusia biotooppiluokkia kuten
- avosuo
- tunturipaljakka
- tunturikoivikko
- lehtimetsä
- havumetsä
- ruovikko ja rantaniitty (kosteikkolinnuille)
- joki vs. muu makea vesi
- karkeistamalla koordinaatteja 100 kilometrin tasoon, jotta havaintojen sijainnin satunnaisvaihtelu ei vaikuttaisi malliin liikaa
- Lisäämällä koulutusaikaa