申明:文章内容是作者自己的学习笔记,教学来源是开课吧讲师梁勇老师。
不要杠,开心学习!
讲师介绍:梁老师 《细说Java》与《Java深入解析》图书作者。一线互联网资深数据分析专家,超过十年软件开发与培训经验。精通Python与Java开发,擅长网络爬虫,数据分析与可视化,机器学习,自然语言处理等技术。曾参与阿里云大学数据分析,机器学习,自然语言处理等课程开发与认证设计,担任阿里云学院导师。
进入正文:
本篇博客会带你学习:
- 数据分析流程
- 特征工程
- 缺失值、异常值、重复值的处理
- 箱线图怎么判断异常值
- 观察散点图、箱型图、箱线图等进行分析
- 两独立样本T检验
用到的库:numpy 、pandas、 matplotlib、 seaborn
让我们开始吧!!!
AQI分析与预测
1、AQI 分析与预测
1.1 背景信息
AQI(空气质量指数),用来衡量空气清洁或者污染的程度。值越小,表示空气质量越好。近年来,因为环境问题,空气质量也越来越受到人们的重视。
1.2 学习任务说明
我们期望能够运用数据分析的相关技术,对全国城市空气质量进行研究和分析,希望能够解决以下疑问:
这里整合用到了之前的一些统计学习相关的内容。
需要回顾学习的可以点击以下内容:
描述性统计分析。
推断统计分析包括参数估计和假设检验两块内容。
线性回归。
1.3 数据集描述
数据集:获取2015年空气质量指数集。该数据集包括全国主要城市的相关数据以及空气质量指数。
数据集百度云链接,提取码:j63l
数据集中字段(列名)详情:
2、数据分析流程
在进行分析前我们先来了解下数据分析的流程:
什么是特征工程?
有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。通俗的说就是数据预处理的方式,从源数据当中提取相关数据可以放到模型当中。
通过总结和归纳,目前认为特征工程包括以下方面:
什么是超参数调整?
模型参数通常是有数据来驱动调整。
超参数不需要数据来驱动,而是在训练前或者训练中人为的进行调整的参数。
3、读取数据
3.1 导入相关的库
导入需要的库,同时,进行一些初始化设置。
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import seaborn as sns
import warnings
sns.set(style="darkgrid")
plt.rcParams["font.family"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False
warnings.filterwarnings("ignore")
warnings.filterwarnings("ignore")
python通过调用warnings模块中定义的warn()函数来发出警告。我们可以通过警告过滤器进行控制是否发出警告消息。
“ignore”表示忽略匹配的警告。
3.2 加载数据集
data = pd.read_csv("data.csv")
print(data.shape)
结果:(325, 12)(325行12列的形式)
加载之后,可以使用head / tail / sample
等方法查看数据的大致情况。
data.head()
结果:
数据集我们大致查看后,现在要来对数据进行清洗的操作:
4、数据清洗
4.1 缺失值
4.1.1 缺失值探索
我们可以使用如下方法查看缺失值:
- info
- isnull
data.info()
结果:
data.isnull().sum(axis=0)
# 用sum 统计每一列有多少个缺失值
结果:
通过查看发现降雨量Precipitation 有4个缺失值。
4.1.2 缺失值处理
对于缺失值,我们可以使用如下的方式处理:
均值填充:
如果是正态分布用均值填充也可以,但是如果是右偏分布就不可以用均值填充了,因为会受到极值的影响。
中值填充:
中位数不太受异常值或者极值的影响。 类别变量中,单独作为一个类别这种方法用的比较多些。
4.1.2.1 数据分布
print(data["Precipitation"].skew())
# skew 查看下偏度信息
sns.distplot(data["Precipitation"].dropna())
skew()
查看下偏度信息
注意:
seaborn
不支持空值绘制图形,所以需要使用dropna()
将空值剔除掉。
结果:
从图中可以看到,分布多少有些右偏,所以我们可以使用中值对其进行一个填充。
4.1.2.2 填充数据
data.fillna({
"Precipitation":data["Precipita