آیا یادگیری ماشین می تواند کیفیت هوا را قبل از خطرناک بودن پیش بینی کند؟


نویسنده (ها): آیشواریا

در ابتدا منتشر شده در به سمت هوش مصنوعیبشر

آیا یادگیری ماشین می تواند کیفیت هوا را قبل از خطرناک بودن پیش بینی کند؟

در سالهای اخیر ، آلودگی هوا از یک مسئله انتزاعی زیست محیطی به یک واقعیت روزانه برای میلیون ها نفر در سراسر جهان منتقل شده است. از شهرهای پر از دود گرفته تا مشاوره های بهداشتی هشدار دهنده ، کیفیت پایین هوا بر نحوه زندگی ، نفس کشیدن و حرکت تأثیر می گذارد.

اما اگر بتوانیم شاهد آمدن آن باشیم ، چه می شود؟

چه می شود اگر بتوانیم شاخص کیفیت هوای فردا (AQI) را پیش بینی کنیم درست مثل اینکه هوا را پیش بینی می کنیم – و اقدام کنیم پیش از هوا سمی می شود؟

این جایی است که یادگیری ماشین قدم در

عکس توسط امیر حسینی در بی تظاهر کردن

🌍 چرا باید کیفیت هوا را پیش بینی کنیم؟

آلودگی هوا فقط یک ناراحتی نیست – این یک بحران سلامتی است. با توجه به WHO ، این تقریباً مسئول است 7 میلیون مرگ زودرس هر سال سطح AQI بالا با حملات آسم ، بیماری های تنفسی ، مشکلات قلبی عروقی و حتی کاهش شناختی همراه است.

اگر بتوانیم AQI را به طور دقیق پیش بینی کنیم:

  • 🚨 جوامع می توانند هشدارهای اولیه دریافت کنند.
  • 🏙 برنامه ریزان شهری می توانند شهرهای باهوش و تمیزتری را طراحی کنند.
  • 🧍‍♂ افراد می توانند تصمیم بگیرند که چه موقع می توان برای یک آهسته دویدن یا ارسال بچه ها برای بازی در خارج از خانه تصمیم گرفت.

بنابراین سوال میلیون دلاری این است:

قوطی یادگیری ماشین به ما کمک کنید تا کیفیت هوا را به موقع برای محافظت از سلامتی خود پیش بینی کنیم؟

بیایید دریابیم

بررسی اجمالی مجموعه داده ها

🌫 داده های کیفیت هوا در هند (2015-2020)

📌 پیوند: مجموعه داده

📝 بررسی اجمالی

این مجموعه داده حاوی داده های کیفیت هوا روزانه از شهرهای بزرگ هند ، جمع آوری شده بین 2015 و 2020بشر این شامل غلظت آلاینده های مختلف ، پارامترهای هواشناسی و مقادیر AQI محاسبه شده است.

files شامل پرونده ها

  • city_day.csv: داده های کیفیت هوا روزانه در هر شهر
  • station_day.csv: داده های کیفیت هوا روزانه در هر ایستگاه
  • stations.csv: ابرداده برای هر ایستگاه نظارت

ما قصد داریم از City_day.csv استفاده کنیم

هر سطر در این پرونده با a مطابقت دارد یک روز از داده های کیفیت هوا برای یک شهر خاص

تصویر توسط نویسنده

کاملا در اینجا یک بازنویسی جذاب و شبیه به انسان از مقاله با یک داستان پردازی-مناسب برای پست های وبلاگ یا سیستم عامل هایی مانند متوسط ​​یا geeksforgeeks وجود دارد:

🧠 رویکرد ما: ML کلاسیک در مقابل گروه یادگیری

بیایید با استفاده از Python برای پیش بینی AQI ، یک گردش کار کامل ML را طی کنیم و دو مدل را با هم مقایسه کنیم: رگرسیون خطی وت جنگل تصادفی رگبشر

🔹 رگرسیون خطی – ساده ، سریع و قابل تفسیر.
🔹 جنگل تصادفی رگ – قدرتمند ، قوی و دقیق.

مرحله 1: بارگیری داده ها

ما در حال استفاده از کیفیت هوا در هند مجموعه داده از Kaggle ، که از سال 2015 تا 2020 سطح آلاینده و ارزش AQI را در شهرهای هند ردیابی می کند.

import pandas as pd
df = pd.read_csv("/content/city_day.csv")

این مجموعه داده شامل اندازه گیری برای PM2.5 ، PM10 ، NO₂ ، CO و سایر آلاینده های اصلی است – اساساً چیزهایی که در هوای نفس می کشیم شناور می شوند.

🧹 مرحله 2: تمیز کردن چیزها

مانند اکثر داده های دنیای واقعی ، این شخص کمی کثیف است. بنابراین ، بیایید آن را مرتب کنیم:

df = df.dropna(subset=['AQI']) # Drop rows with missing target
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df.fillna(df.median(numeric_only=True), inplace=True)
df = df.drop(columns=['Date', 'City', 'AQI_Bucket'])

کاهش ارزش های AQI گمشده
پر کردن شکاف با میانه ستون
از بین بردن ستون هایی که از آنها استفاده نخواهیم کرد (مانند نام شهر یا دسته بندی ها)

🔍 مرحله 3: پیدا کردن آنچه واقعاً در AQI تأثیر می گذارد

اکنون زمان آن رسیده است که اکتشاف کنیم – چه چیزی بر کیفیت هوا تأثیر می گذارد؟

import seaborn as sns
import matplotlib.pyplot as plt
correlation_matrix = df.corr()
plt.figure(figsize=(15, 10))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f")
plt.title("Correlation Heatmap with AQI")
plt.show()
تصویر توسط نویسنده

هشدار اسپویلر: PM2.5 ، PM10 ، NO₂ ، نه ، CO – اینها برخی از بزرگترین مشکل ساز هستند.

🎯 مرحله 4: انتخاب ویژگی

ما روی آلاینده های برتر که زیاد هستند تمرکز خواهیم کرد همبستگی با AQI

selected_features = ['CO', 'PM2.5', 'NO2', 'SO2', 'NOx', 'PM10', 'NO']
X = df[selected_features]
y = df['AQI']

این کمک می کند تا مدل لاغر و متمرکز شود.

🧪 مرحله 5: تقسیم و مقیاس بندی آزمون قطار

بیایید داده های خود را برای مدل های ML آماده کنیم:

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

🔄 ما داده های خود را به مجموعه های آموزش و آزمایش تقسیم می کنیم
📏 ما ویژگی ها را به گونه ای مقیاس می کنیم که مدلهایی مانند رگرسیون خطی با تعداد زیادی اشتباه نمی گیرند

🤖 مرحله 6: زمان آموزش مدل های ما!

بیایید ببینیم دو مدل ما چه کاری می توانند انجام دهند.

from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
lr = LinearRegression()
lr.fit(X_train_scaled, y_train)
lr_preds = lr.predict(X_test_scaled)
rf = RandomForestRegressor(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
rf_preds = rf.predict(X_test)

📊 مرحله 7: آنها چقدر خوب کار کردند؟

بیایید اندازه گیری کنیم که پیش بینی ها به مقادیر واقعی AQI نزدیک هستند.

from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
import numpy as np
def evaluate_model(name, y_true, y_pred):
print(f"\n{name} Results:")
print(f"MAE: {mean_absolute_error(y_true, y_pred):.2f}")
mse = mean_squared_error(y_true, y_pred)
print(f"MSE: {mse:.2f}")
print(f"RMSE: {np.sqrt(mse):.2f}")
print(f"R2 Score: {r2_score(y_true, y_pred):.2f}")

plt.figure(figsize=(8, 5))
sns.scatterplot(x=y_true, y=y_pred, alpha=0.4)
plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'r--')
plt.xlabel("Actual AQI")
plt.ylabel("Predicted AQI")
plt.title(f"{name} - Actual vs Predicted AQI")
plt.grid(True)
plt.show()
evaluate_model("Linear Regression", y_test, lr_preds)
evaluate_model("Random Forest", y_test, rf_preds)

تصویر توسط نویسنده
تصویر توسط نویسنده

تجزیه و تحلیل مقایسه ای: رگرسیون خطی در مقابل جنگل تصادفی

تصویر توسط نویسنده

⚖ چه موقع باید از چه چیزی استفاده کنیم؟

رگرسیون خطی را انتخاب کنید اگر:

  • شما می خواهید نتایج قابل تفسیر
  • مجموعه داده شما کوچک یا تمیز است
  • شما یک مدل سریع و سبک می خواهید

اگر جنگل تصادفی را انتخاب کنید:

  • شما به دقت بالایی نیاز دارید
  • داده های شما دارای روابط غیرخطی است
  • شما با یک رویکرد جعبه سیاه خوب هستید

thoughts افکار نهایی

یادگیری ماشین فقط مربوط به شماره های روی صفحه نیست – بلکه در مورد باز کردن بینش بینش است که می تواند زندگی را تغییر دهد.

با استفاده از داده های زیست محیطی ، ما نه تنها کیفیت هوا را پیش بینی می کنیم – ما به مردم این امکان را می دهیم که قبل از خطرناک شدن عمل کنند. این که آیا به والدین کمک می کند تصمیم بگیرند که آیا بچه هایشان در خارج از خانه بازی می کنند یا به برنامه ریزان شهر در کاهش نقاط مهم آلودگی کمک می کنند ، هر بینش یک قدم را به جوامع سالم نزدیکتر می کند.

از مدلهای ساده و شفاف مانند رگرسیون خطی گرفته تا جنگل های تصادفی با عملکرد بالا ، ما دیده ایم که چگونه الگوریتم های مختلف می توانند نیازهای مختلفی را تأمین کنند. اما در پایان ، هدف یکسان است:

داده های بهتر → تصمیمات باهوش تر → هوای پاک کننده.

همانطور که به جلو نگاه می کنیم ، تصور کنید که این را با فیدهای سنسور در زمان واقعی ، داده های ماهواره ای یا پیش بینی آب و هوا ترکیب کنید. امکانات بسیار گسترده است – و آنها با پروژه ها درست مانند این شروع می شوند.

بیایید نوآوری را ادامه دهیم – یک پیش بینی ، یک نفس و یک خط کد در یک زمان. 🌿💻🌍

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/machine-learning/can-machine-learning-predict-air-quality-before-it-gets-dangerous