北京PM2.5浓度回归分析

通过温湿度、压强、风速等对北京当时刻的PM2.5值进行预测

Link: http://www.dcjingsai.com/common/cmpt/北京PM2.5浓度回归分析训练赛_竞赛信息.html (对原题数据改动较大)

题目描述

PM2.5就是空气中的有毒垃圾,简称“空气毒品”,空气动力学当量直径小于或等于2.5微米的颗粒物(可悬浮于空气中的固态和液态颗粒物)。

PM2.5不是一种单一成分的空气污染物,而是由来自许多不同的人为或自然污染源的大量不同化学组分组成的一种复杂而可变的大气污染物。就产生过程而言,PM2.5可以由污染源直接排出(称为一次粒子),也可以是各污染源排出的气态污染物经过冷凝或在大气中发生复杂的化学反应而生成(称为二次粒子)。大气颗粒物中大部分的硫酸、硫酸氢铵、硫酸铵、硝酸铵、元素碳和有机碳等组分存在于之中。

这里的数据主要包括2010年1月1日至2014年12月31日间北京pm2.5指数以及相关天气指数数据,包括露点、温度、压强等等。在这些数据中抽出其中的某些天,并抹去其PM2.5值,通过其他数据对这些天的PM2.5进行回归,得出PM2.5的预测值。用这个预测值和真实值进行比较,看看效果如何。好的预测效果将有利于对PM2.5的成因、趋势、相关影响有更深入的认识作用。

小提示

  • 本题是一道比较基础的线性回归
  • 可以通过把不同的因素加入线性回归当中,看模型能力是否提升,比如可以比较R方的变化,以此来筛选有影响的特征。也可通过相关系数进行判断。
  • 得到合理的回归模型后,可以直接进行预测。

先修技能

  • 常用的回归方法,如多元线性回归、CART、提升树、神经网络等。
  • 可以适当有一点时序分析能力,包括趋势、季节、ARIMA模型等。
  • 计算平均预测误差。
  • 如果要采用神经网络,可以适当掌握相关的技巧,如SoftMaxReLu等。

解释术语

  • 线性回归:线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w'x+e,e为误差服从均值为0的正态分布。回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。

  • 多元线性回归:在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大。

  • 均方误差:均方误差(mean-square error, MSE)是反映估计量与被估计量之间差异程度的一种度量。

输入格式

  • 数据分为训练数据和测试数据,分别保存在pm25_train.csv和pm25_test.csv两个文件中。
  • 其中训练数据主要包括29757条记录,13个字段,主要字段说明如下:
  • day:收集到的数据所在日期。单位:年/月/日
  • hour:收集到的数据所在小时。单位:时
  • pm2.5:当前时间的的pm2.5指数。单位:ug/m^3
  • dew_point:露点温度,空气中所含的气态水达到饱和而凝结成液态水所需要降至的温度。单位:摄氏度。
  • temperature:当前时间点的温度。单位:摄氏度。
  • pressure:观测时间点对应的压强。单位:hPa。
  • wind_speed:当前的风速。单位:m/s。
  • snow_time:目前为止总共降雪的时长。单位:h。
  • rain_time:目前为止总共降雨的时长。单位:h。
  • wind_ne:风向是否为东北风(m/s)
  • wind_nw:风向是否为西北风(m/s)
  • wind_se:风向是否为东南风(m/s)
  • wind_cv:风向是否为静风(m/s)

  • 测试数据主要包括5989条记录,12个字段,测试数据的字段信息和训练数据相比,除了不包括pm2.5字段以外其他完全相同。

  • submission_sample.csv是一个您应当提交的格式样例。

输出格式

您的提交csv文件应包含行名,并采用以下格式:对于测试集中的每行数据,输出一行,其中包含日期、时间和PM2.5预测值。(注意,请按日期时间顺序进行排列)如下所示:

date    hour    pm2.5
2010/1/6    0    10
2010/1/6    1    10
2010/1/6    2    10
(etc...)

评价

通过计算均方误差来衡量回归模型的优劣。平均预测误差越小,说明回归模型越好。均方误差计算公式如下:

$$ Mean\ Square\ Error = \frac{\sum e_i^{2}}{n}

$$

其中,n是测试数据的记录数(即5989), $$e_i$$是第i个的预测PM2.5值和真实PM2.5值之间的误差。

代码与数据

测评配置环境

python

pip install -U numpy
pip install pandas
pip install -U scikit-learn

测评代码

from sklearn.metrics import mean_squared_error
import pandas as pd
y_test = pd.read_csv(data_dir + "correct_submission.csv") # 正确答案
y_pred = pd.read_csv(data_dir + "prediction_test.csv") # 用户预测的答案
mse = mean_squared_error(y_test['pm2.5'],y_pred['pm2.5'])
# 注意mse越小越好,排名应当越高。

results matching ""

    No results matching ""