机器学习为您揭秘雾霾怎么形成-阿里云开发者社区

开发者社区> 大数据> 正文
登录阅读全文

机器学习为您揭秘雾霾怎么形成

简介: 通过最佳实践帮助您实现上述案例效果 Step1:数据导入MaxCompute 1.1 创建需要上传的本地数据 北京天气指标表: ign="top"> 字段名 含义 类型 描述 time 日期 string 精

通过最佳实践帮助您实现上述案例效果

Step1:数据导入MaxCompute

1.1 创建需要上传的本地数据

北京天气指标表:

字段名 含义 类型 描述
time 日期 string 精确到天
hour 时间 string 表示的是时间,第几小时的数据
pm2 指标 string pm2.5的指标
pm10 指标 string pm10的指标
so2 指标 string 二氧化硫的指标
co 指标 string 一氧化碳的指标
no2 指标 string 二氧化氮的指标

源数据:wumai_data

1.2 创建MaxCompute表

1.2.1 开通MaxCompute

阿里云实名认证账号访问https://www.aliyun.com/product/odps ,开通MaxCompute,选择按量付费进行购买。

<a href=http://img.alicdn.com/tps/TB1TxkNOVXXXXaUaXXXXXXXXXXX-1124-472.png" width="836">

<a href=http://img.alicdn.com/tps/TB1qRw3OVXXXXX_XFXXXXXXXXXX-1243-351.png" width="836">

<a href=http://img.alicdn.com/tps/TB1gvgQOVXXXXXUXVXXXXXXXXXX-1208-337.png" width="836">

1.2.2 数加上创建MaxCompute project

操作步骤:

步骤1: 进入数加管理控制台,前面开通MaxCompute成功页面,点击管理控制台,或者导航产品->大数据(数加)->MaxCompute 点击“管理控制台”。

<a href=http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/49126/cn_zh/1487754370705/a1.png" width="836">

步骤2: 创建项目。付费模式选择I/O后付费,输入项目名称:

a2.png

步骤3: 创建MaxCompute表。进入大数据开发套件的数据开发页面:

以开发者身份进入阿里云数加平台>大数据开发套件>管理控制台,点击对应项目操作栏中的进入工作区

TB1o_.7OVXXXXcRXVXXXXXXXXXX-1092-301.png

1.2.3 创建表

点击菜单数据管理,右上新建表

TB1cY7xOVXXXXXTaFXXXXXXXXXX-1280-310.png

1.2.4 填写信息配置

在新建表页面中填写基础信息的各配置项,点击下一步

TB1GuoyOVXXXXa5aFXXXXXXXXXX-833-503.png

在新建表页面中填写字段和分区信息的各配置项

TB1KWNcPXXXXXXtXpXXXXXXXXXX-935-757.png

1.2.5 点击提交

新建表提交成功后,系统将自动跳转返回数据表管理界面,点击我管理的表即可看到新建表

1.3 导入本地文件

进入大数据开发套件控制台,点击对应项目的进入工作区,点击菜单数据开发-->导入-->导入本地数据

TB1Rzo2OVXXXXcHXFXXXXXXXXXX-798-665.png

选择目标表,并选择字段匹配方式,点击导入

TB1iu3DOVXXXXc8aXXXXXXXXXXX-799-562.png

文件导入成功后,系统右上角将提示文件导入成功,同时可以执行select语句查看数据

TB1gtw1OVXXXXcsXFXXXXXXXXXX-821-662.png

Step2:机器学习中的数据准备

进入机器学习管理控制台,点击对应项目的进入机器学习

a3.png

选择需要的租户及工作空间,点击“提交”

1

进入机器学习页面后,右击我的实验点击新建空白实验,输入实验名和实验描述

TB147wQOVXXXXaEaXXXXXXXXXXX-399-383.png

切换到组件栏,向画布中拖入读数据表,点击读数据表,在右侧表选择栏填入你的MaxCompute表

TB1Dv7QOVXXXXbEXVXXXXXXXXXX-698-205.png

切换到字段信息栏,可以查看输入表的字段名、数据类型和前100行数据的数值分布

TB1ElwQOVXXXXXuaXXXXXXXXXXX-286-325.png

Step3:数据探索流程

实验流程图:

TB18BwQOVXXXXbeaXXXXXXXXXXX-762-587.png

3.1 数据预处理

3.1.1 类型转换

通过类型转换把string型的数据转double。把pm2这一列作为目标列,数值超过200的情况作为重度雾霾天气打标为1,低于200标为0

向画布中拖入数据合并-->类型转换,将源数据表的数据输入到类型转换中,点击类型转换,在右侧进行字段设置

TB1qKEZOVXXXXaaXVXXXXXXXXXX-1017-498.png

右击类型转换点击执行后,查看数据

TB1KJFlPXXXXXXkXXXXXXXXXXXX-426-490.png

3.1.2 SQL脚本

向画布中拖入工具-->SQL脚本,将类型转换的结果输入到SQL脚本中,点击SQL脚本,在右侧写入SQL语句

select time,hour,(case when pm2>200 then 1 else 0 end),pm10,so2,co,no2 from ${t1};

TB1YOZJOVXXXXayapXXXXXXXXXX-657-371.png

右击SQL脚本点击执行后,查看结果

TB18HUBOVXXXXXfaFXXXXXXXXXX-416-488.png

3.1.3 归一化

归一化主要是去除量纲的作用,把不同指标的污染物单位统一。

向画布中拖入数据合并-->归一化,将SQL脚本输入到归一化数据表中,点击归一化,在右侧选择字段

TB1P5QVOVXXXXaYXVXXXXXXXXXX-1003-487.png

右击归一化点击执行后,查看结果

<a href=http://img.alicdn.com/tps/TB1mXZJOVXXXXcZaXXXXXXXXXXX-504-485.png">

TB1N2UWOVXXXXayXVXXXXXXXXXX-483-139.png

3.2 统计分析

我们在统计分析的模块用了两个组件:

3.2.1 直方图

通过直方图可以可视化的查看不同数据在不同区间下的分布。通过这组数据的可视化展现,我们可以了解到每一个字段数据的分布情况,以PM2.5为例,数值区间出现最多的是11.74~15.61,一共出现了430次。

向画布中拖入统计分析-->直方图(多字段),将类型转换的结果输入到直方图(多字段)中,点击直方图(多字段),在右侧选择字段

TB1O.wGOVXXXXauapXXXXXXXXXX-1013-455.png

右击直方图(多字段)点击执行后,查看分析报告

TB1.ygYOVXXXXXqXVXXXXXXXXXX-1133-574.png

3.2.2 数据视图

通过数据视图可以查看不同指标的不同区间对于结果的影响。

向画布中拖入统计分析-->数据视图,将SQL脚本的结果输入到数据视图中,点击数据视图,在右侧选择字段

TB1kIELOVXXXXcMaXXXXXXXXXXX-1014-491.png

右击数据视图点击执行后,查看分析报告

TB1S9QFOVXXXXb2apXXXXXXXXXX-1136-590.png

以no2为例,在112.33~113.9这个区间产生了7个目标列为0的目标,产生了9个目标列为1的目标。也就是说当no2为112.33~113.9区间的情况下,出现重度雾霾的天气的概率是非常大的。熵和基尼系数是表

示这个特征区间对于目标值的影响,数值越大影响越大,这个是从信息量层面的影响。

3.3 拆分

向画布中拖入数据预处理-->拆分,将归一化的数据结果表输入到拆分中,点击拆分,在右侧进行参数设置(这里为默认值)

TB1ibJjPXXXXXXkXXXXXXXXXXXX-1012-481.png

右击拆分点击执行后,查看数据

TB1UpFjPXXXXXaeXXXXXXXXXXXX-494-484.png

TB169.4OVXXXXbOXFXXXXXXXXXX-525-494.png

3.4 随机森林预测及分析

本案其实是采用了两种不同的算法对于结果进行预测,我们先来看看随机森林这一分支。我们通过将数据集拆分,百分之八十的数据训练模型,百分之二十的数据预测。最终模型的呈现可以可视化的显示出来,在左边模型菜单下查看,随机森林是树状模型。

3.4.1 随机森林

向画布中拖入机器学习-->多分类-->随机森林,将拆分输出表的数据输入到随机森林中,点击随机森林,在右侧选择字段和标签列

TB1yzo0OVXXXXcRXFXXXXXXXXXX-1015-491.png

TB1Tsw5OVXXXXb9XpXXXXXXXXXX-275-397.png

3.4.2 预测

向画布中拖入机器学习-->预测,将随机森林结果和拆分的输出表2分别输入到预测的模型结果输入和预测数据输入中

TB1P1oIOVXXXXalapXXXXXXXXXX-560-201.png

右击预测点击执行后,查看数据

TB1sf7yOVXXXXXtaFXXXXXXXXXX-1090-495.png

3.4.3 二分类评估

向画布中拖入机器学习-->评估-->二分类评估,将预测的结果输入到二分类评估中,点击二分类评估,在右侧进行字段设置

TB1r5.EOVXXXXc5aXXXXXXXXXXX-289-427.png

右击二分类评估点击执行后,查看评估报告

TB1tVk5OVXXXXbcXFXXXXXXXXXX-1129-578.png

我们看到AUC是0.99,也就是说如果我们有了本文用到的天气指标数据,就可以预测天气是否雾霾,而且准确率可以达到百分之九十以上。

3.5 逻辑回归预测及分析

3.5.1 逻辑回归二分类

向画布中拖入机器学习-->二分类-->逻辑回归二分类,将拆分的输出表1连接到逻辑回归二分类的训练表中,点击逻辑回归二分类,在右侧选择字段和目标列

TB12C.LOVXXXXb5aXXXXXXXXXXX-282-292.png

3.5.2 预测

向画布中拖入机器学习-->预测,将逻辑回归二分类的逻辑回归模型和拆分的输出表2分别输入到预测的模型结果输入和预测数据输入中

TB1soMVOVXXXXblXVXXXXXXXXXX-659-277.png

右击预测点击执行后,查看数据

TB1bHQ.OVXXXXbLXpXXXXXXXXXX-1062-486.png

3.5.3 二分类评估

向画布中拖入机器学习-->评估-->二分类评估,将预测的结果输入到二分类评估中,点击二分类评估,在右侧进行字段设置

TB1FSUAOVXXXXXxaFXXXXXXXXXX-288-434.png

右击二分类评估点击执行后,查看评估报告

TB11LgCOVXXXXXkaFXXXXXXXXXX-1112-581.png

逻辑回归的AUC为0.98,比用随机森林计算得到的结果略低一点。如果排除调参对于结果的影响因素,可以说明针对这个数据集,随机森林的训练效果会更好一点。

3.6 结果评估

上面介绍了如何通过搭建实验来搭建针对PM2.5的预测流程,准确率达到百分之九十以上。下面我们来分析一下哪种空气指标对于PM2.5影响最大,首先来看下逻辑回归的生成模型:

TB1S7NXPXXXXXabXpXXXXXXXXXX-761-393.png

注意:要显示出生成模型需要设置自动生成PMML,如下图所示:

TB1vnw_OVXXXXcPXpXXXXXXXXXX-478-421.png

因为经过归一化计算的逻辑回归算法有这样的特点,模型系数越大表示对于结果的影响越大,系数符号为正号表示正相关,负号表示负相关。我们看一下正号系数里pm10和no2最大。pm10和pm2只是颗粒尺寸大小不同,是一个包含关系,这里不考虑。剩下的no2(二氧化氮)对于pm2.5的影响最大。我们只要查阅一下相关文档,了解下哪些因素会造成no2的大量排放即可找出影响pm2.5的主要因素。

下面是网上找到的关于no2排放的论述,文中说明了no2主要来自电厂和汽车尾气。[no2来源文章|http://tech.sina.cn/d/zr/2016-12-08/detail-ifxypipt0516239.d.html]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
大数据
使用钉钉扫一扫加入圈子
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

其他文章