AQI를 확인하며 스크롤 중독에서 벗어나기: 노트북의 새 직업이 나를 외출하게 하다
요약
본 글은 AI 기반 공기질 예측 및 모니터링 앱 'AeroVision'을 소개합니다. 이 앱은 26개 인도 도시의 오염 데이터를 학습한 ML 모델을 사용하여 AQI를 예측하고, 실시간으로 대기 오염 정보를 제공하여 사용자가 외출 계획을 세우는 데 도움을 줍니다.
핵심 포인트
- AQI 예측에 Random Forest, XGBoost 등 다중 ML 모델 활용
- 실시간 데이터와 예보를 결합해 최적의 활동 시간대 제시
- Flask, scikit-learn 등으로 구축된 웹 애플리케이션 사례
본 글은 Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass에 제출하는 내용입니다.
내가 만든 것 (What I Built)
AeroVision은 문을 나서기 전에 하나의 질문에 답해주는 AI 기반 공기질 앱입니다. 지금 밖에 있어도 정말 안전한가요?
이 앱은 두 부분으로 구성되어 있습니다:
- AQI 예측기: 26개 인도 도시의 5년 이상의 오염 데이터(29,531건)로 학습된 모델입니다. 오염 물질 농도(PM2.5, PM10, NO2, CO 등)를 입력하면 네 가지 다른 ML 모델(Random Forest, XGBoost, Gradient Boosting, Extra Trees)을 나란히 사용하여 공기질 지수(Air Quality Index)와 건강 카테고리를 예측합니다.
- 실시간 AQI 보기: 실제로 사용자를 외출하게 만드는 부분입니다. 아무 도시나 검색하거나 현재 위치를 사용하면 실시간 오염 물질 데이터를 가져와 학습된 모델로 처리하고, 현재의 AQI, 24시간 예보, 그리고 현재 날씨를 보여줍니다. 이를 통해 다음 날 중 언제가 달리기를 하거나, 개를 산책시키거나, 창문을 열기 위해 실제로 가장 좋은 시간대인지 결정할 수 있습니다.
이 앱은 매일 공기질 변화가 심한 곳에 사는 사람이라면 누구나 유용합니다. 만약 델리(Delhi), 아마다바드(Ahmedabad), 또는 파트나(Patna)에서 극심한 오염 시즌을 보낸 적이 있다면, 그곳이 바로 인도 대부분 지역입니다. 창밖의 안개로 추측하는 대신, 숫자로 된 수치와 실제 예측 시간대를 얻게 됩니다.
데모 (Demo)
코드 (Code)
GitHub logo Pager-dot / AeroVision
AI 기반 공기질 지수 예측 및 모니터링 시스템 (AI-Powered Air Quality Index Prediction & Monitoring System)
AeroVision - AI 기반 공기질 예측 및 모니터링 시스템 (AI-Powered Air Quality Prediction & Monitoring System)
오염 물질 농도에서 **공기질 지수(Air Quality Index, AQI)**를 예측하고 26개 인도 도시 전반의 대기 오염 추세를 모니터링할 수 있는 인터랙티브한 대시보드를 제공하는 머신러닝 웹 애플리케이션입니다.
Flask, scikit-learn, XGBoost, Bootstrap 5, 그리고 Chart.js로 구축되었습니다.
목차 (Table of Contents)
- Problem Statement
- What is AQI?
- Dataset
- Pollutants Explained
- ML Pipeline
- Project Structure
- 실행 방법 (How to Run)
- 특징 (Features)
- 주요 발견 사항 (Key Findings)
- 사용된 기술 (Technologies Used)
문제 정의 (Problem Statement)
대기 오염은 인도에서 가장 심각한 환경적 과제 중 하나입니다. 델리, 아마다바드, 파트나와 같은 도시는 종종 위험한 수준의 오염을 경험하며, 이는 공중 보건에 직접적인 영향을 미칩니다.
목표: 다음 기능을 수행할 수 있는 시스템 구축:
- 오염물질 농도(PM2.5, NO2, CO 등)를 기반으로 AQI 값을 예측하는 것
- 예측된 AQI를… 분류하는 것
제가 구축한 방법 (How I Built It)
AeroVision은 폐쇄형 API가 아닌 오픈 소스 ML을 기반으로 구축되었습니다:
- scikit-learn (Random Forest, Extra Trees, Gradient Boosting) 및 XGBoost를 사용하여 실제 AQI 예측을 수행합니다. 모든 모델은 공개 데이터셋(Kaggle의 인도 대기질 데이터)에서 로컬로 학습되었으며, 전체 파이프라인(데이터 정제, IQR 이상치 제거, StandardScaler, train/test 분할)은 train_model.py에 투명하고 재현 가능하게 구현되어 있습니다.
- Flask가 모델과 실시간 뷰를 제공합니다.
- 실시간 측정값의 경우, OpenWeatherMap의 무료 대기 오염 API를 사용하여 모든 도시의 실제 오염물질 농도를 가져온 다음, 이를 동일한 학습된 모델에 직접 입력합니다. 따라서 실시간 실제 대기질이 OpenWeather가 자체적으로 사용하는 1~5 지수뿐만 아니라 역사적 데이터셋과 동일한 기준으로 점수가 매겨집니다. 앱은 이 두 가지를 나란히 보여줍니다.
모델 자체는 어떤 독점 AI 서비스에도 의존하지 않습니다. 전체 예측 파이프라인은 오픈 소스이며, 저장소를 복제하는 누구나 검사하고 재학습할 수 있습니다.
개방형 혁신(Open Innovation)이 중요한 이유?
이것은 장난감이 아니라 공중 보건 도구이기 때문입니다. 만약 모델이 폐쇄된 API 뒤에 숨겨져 있다면, 아무도 그것이 왜 특정 예측을 했는지 확인할 수 없고, 자신 도시의 데이터로 재학습할 수도 없으며, 편향성(예: 데이터가 희소한 도시에서 체계적으로 오차가 발생하는지?)을 잡아낼 수도 없습니다. 오픈 툴링은 다음을 의미합니다:
- 누구나 AQI가 원시 오염물질로부터 정확히 어떻게 도출되는지 확인할 수 있습니다 (train_model.py에 전체 파이프라인이 담겨 있어 블랙박스가 아닙니다).
- 누구나 자신 국가의 데이터셋으로 교체하고 재학습할 수 있습니다. 이것은 인도에만 국한될 필요가 없습니다.
- 오늘날 자신의 건강에 영향을 미치는 결정과 사람 사이에 API 비용이나 속도 제한 장벽이 존재하지 않습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기