一、导入相关包
numpy:python中做数据分析常用的包;
pandas:也是用于数据分析,擅长处理表,数据没那么大要放入内存中,这将是首选;
matplotlib.pyplot:源自matlab的画图工具;
seaborn:基于matplotlib,提供更多的画法
剩下两行用于将图片设成svg文件(画起来分辨率相对高一点)
# !pip install seaborn pandas matplotlib numpy import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from IPython import display display.set_matplotlib_formats('svg') # Alternative to set svg for newer versions # import matplotlib_inline # matplotlib_inline.backend_inline.set_matplotlib_formats('svg')
二、读取数据
!wget https://c.d2l.ai/stanford-cs329p/_static/house_sales.ftr data = pd.read_feather('house_sales.ftr') data = pd.read_csv('house_sales.zip') # csv文件这样读取
csv文件存下来相对比较大,可以先压缩成一个zip或一个tar,主流的读取文件都可以从压缩文件中读取。建议存成压缩文件,在传输存储都会比较好,甚至还会比直接读取还要好(这个方法可用于文本)
data.head() 把前面几行信息打出来
将列中30%缺失的列删去,以此来简化数据
inplace的作用是,直接将要去掉的列给改写掉(直接对数进行修改),可以省些内存,但是这个只能跑一次
检查数据类型
处理错误的数据类型
最后用data.describe()看看处理完的数据的特征
可以通过这里初步判断是否有噪音
三、做简单的处理
在这里用log10可以让分布均匀点
查看房子的种类
查看一平米可以卖多少钱
不同颜色是不同类别,那条横线表示的是均值,boxplot可以比较直观的看到不同分布之间的对比
查看每个邮政编码的房价
热力图
查看每个特征之间的关系(协方差)
可以直观的看出, 跟我要预测的东西关联度最高
总结
本笔记本演示了EDA的基本技术,包括
理解列数据类型、值和分布
理解列之间的相互作用
参考代码 eda slides