Tikslas: Sukurti modelį, kuris prognozuotų elektros energijos suvartojimą įvairiuose Lietuvos regionuose, remiantis demografiniais ir meteorologiniais duomenimis.
Technologijos: Python, pandas, Matplotlib/Seaborn, scikit-learn
Projekto rinkmenos sudėtos šiuose kataloguose:
data/
Duomenys
img/
Paveikslai
models/
Modelis
Pagrindiniame kataloge rasite pagrindines Python *.py
ir kitas bendrąsias rinkmenas. Rinkmenos UTF-8 koduote.
duomenys.py
yra pagrindinė, kurioje esančios Rinkinys ir Lentelė klasės skirtos valdyti duomenis kaip objektus.
-
Surinkti istoriniai AB „Energijos skirstymo operatoriaus“ (ESO) duomenys apie elektros energijos suvartojimą, kuriuos galima rasti Lietuvos atvirų duomenų portale https://data.gov.lt/ pateikstus pamėnesiui CSV ir platinamus pagal CC BY 4.0 licenciją:
- Automatizuotų buitinių vartotojų valandiniai duomenys agreguoti pagal regioną https://data.gov.lt/datasets/1778/.
2022 m. pirminių duomenų kopija padėta
data/elektra_buitis/
kataloge. - Automatizuotų verslo vartotojų valandiniai duomenys agreguoti pagal regioną https://data.gov.lt/datasets/1907/.
2022 m. pirminių duomenų kopija padėta
data/elektra_verslas/
kataloge.
- Automatizuotų buitinių vartotojų valandiniai duomenys agreguoti pagal regioną https://data.gov.lt/datasets/1778/.
2022 m. pirminių duomenų kopija padėta
-
Naudojant pasirašytą
meteo_lt.py
surinkti meteorologiniai duomenys iš https://archyvas.meteo.lt/, įskaitant oro temperatūrą, juntamąją temperatūrą, vėjo greitį, slėgį jūros lygyje, santykinį oro drėgnį, kritulių kiekį, kuriuos teikia Lietuvos hidrometeorologijos tarnyba prie Aplinkos ministerijos (LHMT) ir platina pagal CC BY-SA 4.0 licenciją. Iš svetainės ištrauktų 2022 m. pradinių duomenų kopiją rasite katalogedata/orai/
-
Surinktos Registrų centro svetainėje https://www.registrucentras.lt/p/853 viešai talpinamos ir demografinius duomenis turinčios statistinės suvestinės lentelės apie gyventojų skaičius pagal amžių skirtingose savivaldybėse.
- Naudojant
pandas
:- atrinkti labiau dominantys kintamieji,
- atmestos duomenų eilutės su praleistomis reikšmėmis,
- pataisytos duomenų formato klaidos,
- patikrintos laiko juostos ir UTC laikas pakeistas į vietinį,
- apskaičiuoti išvestiniai kintamieji (pvz., elektros energija, kurią per valandą suvartoja statistinis regiono automatizuotas vartotojas, gyventojų pasiskirstymo pagal amžių procentinė dalis savivaldybėse),
- regionų grupavimo suvienodinamas (pvz., Registrų centre miestų ir rajonų savivaldybės atskirtos, o ESO regionai beveik visas tokias sujungia) bei bendrų regionų atrinkimas,
- galiausiai sujungtos skirtingos duomenų rūšys į bendrą lentelę.
- Šie darbai automatizuoti, tačiau naudotojas, jei nori, gali interaktyviai gali pasirinkti
- analizės laikotarpį tarp 2021 ir 2023 m. ir
- regionus (kelis ar visus) sujungimui į bendrą lentelę.
- Apjungtus ir pertvarkytus atskirų rūšių duomenis rasite
data/elektra_buitis_2022.csv
,data/elektra_verslas_2022.csv
,data/orai_2022.csv
,data/gyventojai_2022.csv
rinkmenose; skirtingų rūšių apjungtus duomenis rasitedata/apjungtieji_2022.csv
rinkmenoje.
-
2022 m. pilniausi, tada automatizuotų elektros abonentų skaičius buvo didžiausias.
-
Netolygus automatizuotų elektros abonentų skaičius: didžiausias Vilniaus, Kauno ir Šiaulių regionuose
-
Ryškus elektros vartojimo sezoniškumas: žiemą didžiausias (~10 kWh/val abonentui), o vasarą mažiausias (~5 kWh/val)
-
Elektros energijos vartojimo dėsningumas yra gana vienodas paros eigoje nepriklausomai nuo mėnesio, netgi gretimuose mėnesiuose perėjus tarp vasaros ir žiemos laiko (t.y. netgi lyginant vasarį ir balandį, rugsėjį ir lapkritį).
-
Gyventojų netolygus pasiskirstymas regionuose pagal amžiaus grupes: santykinai daugiausia senyvo amžiaus žmonių gyvena Ignalinoje, o santykinai daugiausia jaunimo yra didžiųjų miestų Vilniaus ir Klaipėdos regionuose.
-
Duomenų analizę galite atkartoti įvykdę
analize.py
-
Analizei vizualizuoti sukurtas įrankis
zemelapis.py
, kuris nupiešia Lietuvos kontūrą ir pasirinktus duomenis gali atvaizduoti skirtingų dydžių, spalvų skrituliukais ties atitinkamais regionais.
- Sukurtas atsitiktinių miškų regresijos (RandomForestRegressor iš scikit-learn) modelis gali prognozuoti, kiek elektros energijos (kWh) suvartotų vidutinis pasirinkto Lietuvos regiono automatizuotas vartotojas.
- Nors tai bendras modelis visiems regionams, bet modelio valdymo metodai automatiškai pasiima ir naudoja regionų koordinatės ir atsižvelgia į jas, o ne į regioną kaip kategoriją.
- Sukurta klasė su metodais modelio kaip objekto valdymui (pvz., apmokyti, vertinti, atlikti hiper-paramtrų paiešką, apmokytą modelį įrašyti į diską ir vėliau nuskaityti pakartotiniam naudojimui).
- Įgyvendinta galimybė naudotojui interaktyviai rankiniu būdu pasirinkti regioną, norimas veiksnių reikšmes.
- Modelis pasižymi pakankamu tikslumu:
- vidutinė standartinė paklaida (MSE) yra
0,107
naudojant 8 nepriklausomus kintamuosius:
- vidutinė standartinė paklaida (MSE) yra
Veiksnys | Svarba |
---|---|
Platuma | 0,394 |
Temperarūra (C) | 0,196 |
Slėgis (hPa) | 0,113 |
Drėgnis (%) | 0,073 |
Vėjo greitis (m/s) | 0,068 |
Valanda | 0,068 |
Gyventojai 60 m. + (%) | 0,061 |
Ilguma | 0,028 |
Modelį galima išbandyti iškvietus modeliavimas.py
Viską galima išbandyti iškviestus main.py
Programinis Python kodas platinamas pagal GNU Bendrosios Viešosios licencijos (GNU General Public License) versiją Nr. 3.