本文通过分析北京一年的真实天气数据,构建雾霾天气预测模型,从而挖掘对雾霾天气(指PM 2.5)影响最大的污染物。

数据集

本实验为2016年全年(以小时为单位)的北京空气指标数据,具体字段如下。
字段名 类型 描述
time STRING 日期,精确到天。
hour STRING 第几小时的数据。
pm2 STRING PM 2.5指标。
pm10 STRING PM 10指标。
so2 STRING 二氧化硫指标。
co STRING 一氧化碳指标。
no2 STRING 二氧化氮指标。

雾霾天气预测

  1. 进入PAI-Studio控制台。
    1. 登录PAI控制台
    2. 在左侧导航栏,选择模型开发和训练 > Studio-可视化建模
    3. PAI可视化建模页面,单击进入机器学习进入机器学习
  2. 构建实验。
    1. 在PAI-Studio控制台的左侧导航栏,单击首页
    2. 模板列表,单击雾霾天气预测下的从模板创建
    3. 新建实验对话框,配置参数(可以全部使用默认参数)。
      参数 描述
      名称 输入雾霾天气预测
      项目 不支持修改。
      描述 输入挖掘对雾霾影响最大的污染物
      位置 选择我的实验
    4. 单击确定
    5. 可选:等待大约十秒钟,在PAI-Studio控制台的左侧导航栏,单击实验
    6. 可选:我的实验下,单击雾霾天气预测_XX
      其中我的实验为已配置的实验位置雾霾天气预测_XX为已配置的实验名称_XX为系统自动添加的实验序号)。
    7. 系统根据预置的模板,自动构建实验,如下图所示。
      雾霾预测实验
      区域 描述
      数据导入及预处理:
      1. 通过读数据表组件,导入数据源。
      2. 通过类型转换组件,将STRING类型的数据转换为DOUBLE类型。
      3. 通过SQL脚本组件,将目标列转换为01的二值类型。本实验中,pm2列为目标列。数值大于200的作为重度雾霾天气,将其标记为1,反之标记为0。SQL语句如下。
        select time,hour,(case when pm2>200 then 1 else 0 end),pm10,so2,co,no2 from ${t1};
      4. 通过归一化组件,去除量纲,即将不同指标污染物的单位统一。
      统计分析:
      1. 通过直方图组件以可视化的方式查看每种污染物的分布情况。
        以PM2.5为例,数值出现最多的区间为11.74~15.61,共430次,如下图所示。pm2.5分布
      2. 通过数据视图,可以查看每种污染物不同区间对于结果的影响。
        no2为例,在112.33~113.9区间产生了7个目标列为0的目标和9个目标列为1的目标(如下图所示)。因此,no2在112.33~113.9区间时,出现重度雾霾天气的概率较高。熵和基尼系数表示该特征区间对于目标值的影响(信息量层面的影响),数值越大影响越大。no2数据视图结果
      模型训练及预测,本实验分别使用随机森林逻辑回归二分类组件进行模型训练。
      模型评估。
  3. 运行实验并查看模型效果。
    1. 单击画布上方的运行
    2. 实验运行结束后,右键单击画布中的二分类评估-1,在快捷菜单,单击查看评估报告
    3. 评估报告对话框,单击图表页签,即可查看随机森林训练模型的预测效果。
      随机森林预测结果AUC的取值表示随机森林组件训练的雾霾天气预测模型的准确率达到了99%以上。您可以右键单击画布中的随机森林-1,在快捷菜单,单击模型选项 > 查看模型,查看该预测模型。
    4. 右键单击画布中的二分类评估-2,在快捷菜单,单击查看评估报告
    5. 评估报告对话框,单击图表页签,即可查看逻辑回归二分类训练模型的预测效果。
      逻辑回归二分类模型效果AUC的取值表示逻辑回归二分类组件训练的雾霾天气预测模型的准确率达到了96%以上。您可以右键单击画布中的逻辑回归二分类-1,在快捷菜单,单击模型选项 > 查看模型,查看该预测模型,如下图所示。训练模型经过归一化处理后,训练模型指标的权重越大,表示对结果的影响越大。正数表示影响为正相关,负数表示影响为负相关。如上图所示,正相关的pm10no2权重最大。因为pm10和PM 2.5只是颗粒尺寸不同,所以可以不考虑其对PM 2.5的影响。因此,no2(二氧化氮)对于PM 2.5的影响最大。