User-centric technology stack for weather and air pollution forecasting

A.Yu. Doroshenko, Y.O. Haidukevych, V.O. Haidukevych, O.S. Zhyrenkov

Abstract


This paper proposes the multi-stage process of delivering the forecast data to end-user mobile device. The initial task here is to collect the historical weather and air pollution data. After that, the following steps should allow to build the forecasting infrastructure: the input-output model should be defined for regression task, the machine learning algorithm should be trained and its hyperparameters should be optimized, this forecasting model should be serialized to file and it should be used to create the publicly available web-service, the mobile device should have the application installed that would be querying the forecast data from the service and would be displaying the multi-parameter chart on the screen.

The proposed concept of user-centric distributed application covers the following three pillars of this architecture: machine learning model, containerized web-service and user interface application on mobile device. The Python-based libraries Numpy and Pandas were used to prepare the dataset, the Scikit-learn library and Histogram gradient boosting algorithm were leveraged to build the machine learning model. Here are the technologies employed to build the web-service: Docker, Kubernetes, FastAPI and BentoML. The Google Flutter platform was used to build the application for mobile devices.

Prombles in programming 2024; 4: 34-42


Keywords


regression task; machine learning; forecasting; docker container; web service; mobile application; Google Flutter; Bentoml; Mlops; microservices

References


C. M. Bishop, Pattern recognition and machine learning, Springer, 2006. [cited 04.03.2024]. https://www.microsoft.com/en-us/research/uploads/prod/2006/01/Bishop-Pattern-Recognition-and-Machine-Learning-2006.pdf

A. Van Wyk, Encoding Cyclical Features for Deep Learning. [cited 04.03.2024]. https://www.kaggle.com/code/avanwyk/encoding-cyclical-features-for-deep-learning

Scikit-learn: Machine Learning in Python. https://scikit-learn.org/stable/

Feature selection with scikit-learn library. https://scikit-learn.org/stable/modules/feature_selection.html

X. Dupre, O. Grisel, Accelerate and simplify Scikit-learn model inference with ONNX Runtime. https://cloudblogs.microsoft.com/opensource/2020/12/17/accelerate-simplify-scikit-learn-model-inference-onnx-runtime/

Ribeiro, J. L., et al. "A Microservice Based Architecture Topology for Machine Learning Deployment." IEEE International Smart Cities Conference, Oct. 2019. CrossRef

Kreuzberger, Dominik, et al.Machine Learning Operations MLOps Overview Definition and Architecture.

Kim, Chorwon, et al.A Microservice-Based MLOps Platform for Efficient Development of AI Services in an Edge-Cloud Environment. Oct. 2023. CrossRef

Apache Airflow use cases https://airflow.apache.org/use-cases/

Temporal IO use cases https://temporal.io/in-use

Dagster use cases https://docs.dagster.io/getting-started




DOI: https://doi.org/10.15407/pp2024.04.034

Refbacks

  • There are currently no refbacks.