【机器学习PAI实践三】雾霾成因分析
一、背景
如果要人们评选当今最受关注话题的top10榜单,雾霾一定能够入选。如今走在北京街头,随处可见带着厚厚口罩的人在埋头前行,雾霾天气不光影响了人们的出行和娱乐,对于人们的健康也有很大危害。本文通过爬取并分析北京一年来的真实天气数据,挖掘出二氧化氮是跟雾霾天气(这里指的是PM2.5)相关性最强的污染物,从而为您揭秘形成雾霾的罪魁祸首。
这里我们是用阿里云机器学习平台来完成实验:
https://data.aliyun.com/product/learn
登陆阿里云机器学习平台,即可在demo页选择实验并且亲手实现整个机器学习的预测分析,完全零门槛。
二、数据集介绍
数据源:采集了2016全年的北京天气指标。
采集的是从2016年1月1号以来每个小时的空气指标,。具体字段如下表:
字段名 | 含义 | 类型 |
---|---|---|
time | 日期,精确到天 | string |
hour | 表示的是时间,第几小时的数据 | string |
pm2 | pm2.5的指标 | string |
pm10 | pm10的指标 | string |
so2 | 二氧化硫的指标 | string |
co | 一氧化碳的指标 | string |
no2 | 二氧化氮的指标 | string |
三、数据探索流程
阿里云机器学习平台采用拖拉算法组件拼接实验的操作方式,先来看下整个实验流程:
我们把整个实验拆解成四个部分,分别是数据导入及预处理、统计分析、随机森林预测及分析、逻辑回归预测及分析。下面我们分别介绍一下这四个模块的逻辑。
1.数据导入及预处理
(1)数据导入
在“数据源”中选择“新建表”,可以把本地txt文件上传。
数据导入后查看:
(2)数据预处理
通过类型转换把string型的数据转double。把pm2这一列作为目标列,数值超过200的情况作为重度雾霾天气打标为1,低于200标为0,实现的SQL语句如下。
select time,hour,(case when pm2>200 then 1 else 0 end),pm10,so2,co,no2 from ${t1};
(3)归一化
归一化主要是去除量纲的作用,把不同指标的污染物单位统一。
2.统计分析
我们在统计分析的模块用了两个组件:
(1)直方图
通过直方图可以可视化的查看不同数据在不同区间下的分布。通过这组数据的可视化展现,我们可以了解到每一个字段数据的分布情况,以PM2.5为例,数值区间出现最多的是11.74~15.61,一共出现了430次。
(2)数据视图
通过数据视图可以查看不同指标的不同区间对于结果的影响。
以no2为例,在112.33~113.9这个区间产生了7个目标列为0的目标,产生了9个目标列为1的目标。也就是说当no2为112.33~113.9区间的情况下,出现重度雾霾的天气的概率是非常大的。熵和基尼系数是表示这个特征区间对于目标值的影响,数值越大影响越大,这个是从信息量层面的影响。
3.随机森林预测及分析
本案其实是采用了两种不同的算法对于结果进行预测,我们先来看看随机森林这一分支。我们通过将数据集拆分,百分之八十的数据训练模型,百分之二十的数据预测。最终模型的呈现可以可视化的显示出来,在左边模型菜单下查看,随机森林是树状模型。
通过这个模型预测结果的准确率:
我们看到AUC是0.99,也就是说如果我们有了本文用到的天气指标数据,就可以预测天气是否雾霾,而且准确率可以达到百分之九十以上。
4.逻辑回归预测及分析
再来看下逻辑回归这一分支的预测模型,逻辑回归是线性模型:
模型预测准确率:
逻辑回归的AUC为0.98,比用随机森林计算得到的结果略低一点。如果排除调参对于结果的影响因素,可以说明针对这个数据集,随机森林的训练效果会更好一点。
四、结果评估
上面介绍了如何通过搭建实验来搭建针对PM2.5的预测流程,准确率达到百分之九十以上。下面我们来分析一下哪种空气指标对于PM2.5影响最大,首先来看下逻辑回归的生成模型:
因为经过归一化计算的逻辑回归算法有这样的特点,模型系数越大表示对于结果的影响越大,系数符号为正号表示正相关,负号表示负相关。我们看一下正号系数里pm10和no2最大。pm10和pm2只是颗粒尺寸大小不同,是一个包含关系,这里不考虑。剩下的no2(二氧化氮)对于pm2.5的影响最大。我们只要查阅一下相关文档,了解下哪些因素会造成no2的大量排放即可找出影响pm2.5的主要因素。
下面网上是找到的关于no2排放的论述,文中说明了no2主要来自汽车尾气。no2来源文章
五、其它
参与讨论:云栖社区公众号
免费体验:阿里云数加机器学习平台
【机器学习PAI实践三】雾霾成因分析相关推荐
- 阿里云工程师用机器学习破解雾霾成因
原文链接;http://click.aliyun.com/m/13911/ 免费开通大数据服务:https://data.aliyun.com/m/experience 日前,一位署名为"傲 ...
- 【机器学习PAI实践五】机器学习眼中的《人民的名义》
一.背景 最近热播的反腐神剧"人民的名义"掀起来一波社会舆论的高潮,这部电视剧之所能得到广泛的关注,除了老戏骨们精湛的演技,整部剧出色的剧本也起到了关键的作用.笔者在平日追剧之余, ...
- 【机器学习PAI实践十二】机器学习实现男女声音识别分类(含语音特征提取数据和代码)
背景 随着人工智能的算法发展,对于非结构化数据的处理能力越来越受到重视,这里面的关键一环就是语音数据的处理.目前,许多关于语音识别的应用案例已经影响着我们的生活,例如一些智能音箱中利用语音发送指令,一 ...
- 【机器学习PAI实践十二】机器学习算法基于信用卡消费记录做信用评分
背景 如果你是做互联网金融的,那么一定听说过评分卡.评分卡是信用风险评估领域常用的建模方法,评分卡并不简单对应于某一种机器学习算法,而是一种通用的建模框架,将原始数据通过分箱后进行特征工程变换,继而应 ...
- 【机器学习PAI实践九】如何通过机器学习实现云端实时心脏状况监测
背景 我们通过之前的案例已经为大家介绍了如何通过常规的体检数据预测心脏病的发生,请见http://blog.csdn.net/buptgshengod/article/details/53609878 ...
- 机器学习基石-作业三-第2题分析以及通过H证明EIN的讨论
题目: 这是机器学习基石作业三种的第二小题,额,在网上看了很多解答(解答也不多)感觉都没有说清楚为什么,所以励志清楚滴解决一下这个问题,经过努力,自认为得到了详细的解答,内容如下: (一)解决选项(e ...
- 【机器学习PAI实践七】文本分析算法实现新闻自动分类
一.背景 新闻分类是文本挖掘领域较为常见的场景.目前很多媒体或是内容生产商对于新闻这种文本的分类常常采用人肉打标的方式,消耗了大量的人力资源.本文尝试通过智能的文本挖掘算法对于新闻文本进行分类.无需任 ...
- 【机器学习PAI实践二】人口普查统计
产品地址:https://data.aliyun.com/product/learn?spm=a21gt.99266.416540.102.OwEfx2 一.背景 感谢大家关注玩转数据系列文章,我们希 ...
- 【机器学习PAI实践一】搭建心脏病预测案例
产品地址:https://data.aliyun.com/product/learn?spm=a21gt.99266.416540.102.OwEfx2 一.背景 心脏病是人类健康的头号杀手.全世界1 ...
最新文章
- 转帖:硬盘生产全过程(图)
- 与 Linux 一起学习:学习打字
- ASP.NET MVC标记最新的发布新闻或文章
- 皮一皮:顶尖黑客技术,10秒教学,不会你打我!
- QTP的那些事--终极项目脚本设计思路及其测试查询功能的一些实际项目体会
- 数学--数论--费马小定理+求逆元
- 学习笔记整理之StringBuffer与StringBulider的线程安全与线程不安全
- 中国移动技术愿景2020+
- android学习笔记:数据库存储
- wordpress functions.php 在哪,在functions.php中定义变量并在WordPress中的函数钩子中访问它们...
- java 正则首位8或者9的8位数字_从零开始学Python - 第025课:正则表达式的应用
- 雷观(二):当今时代最须要6项能力
- [linux] redhat 7 ssh 安装配置免密登录
- HDOJ-1201 18岁生日
- Docker Get Started VI
- ‘https://start.spring.io‘ 的初始化失败请检查 URL、网络和代理设置。
- python爬取豆瓣电影信息_Python爬虫入门 | 爬取豆瓣电影信息
- fscanf php,php fscanf() 函数使用方法
- 10项目管理--项目沟通管理
- postman上一接口返回值作为下一接口传参
热门文章
- PAT甲级1132 Cut Integer:[C++题解]
- PAT甲级1002 A+B for Polynomials:[C++题解]字符串、多项式加法或高精度加法
- ButterKnife Zelezny导入不成功遇到的问题
- android user-agent iso-8859-1,微信网页授权,错误40163,ios正确,安卓错误?
- 不用python编程,制作词云图
- android表格自动刷新,Android SwipeRefreshLayout 自动刷新
- is属性用法 vue_Vue中is属性的用法 可以动态切换组件
- 提升ListView的运行效率
- 输入对话框 android,android 输入对话框 确认对话框
- linux 解包与打包