这里写# Task 2 数据分析
Tip: 此部分为零基础入门数据挖掘的 Task2 EDA-数据探索性分析 部分,带你来了解数据,熟悉数据,和数据做朋友,欢迎大家后续多多交流。
赛题:心电图心跳信号多分类预测
2.1 EDA 目标
- EDA的价值主要在于熟悉数据集,了解数据集,对数据集进行验证来确定所获得数据集可以用于接下来的机器学习或者深度学习使用。
- 当了解了数据集之后我们下一步就是要去了解变量间的相互关系以及变量与预测值之间的存在关系。
- 引导数据科学从业者进行数据处理以及特征工程的步骤,使数据集的结构和特征集让接下来的预测问题更加可靠。
- 完成对于数据的探索性分析,并对于数据进行一些图表或者文字总结并打卡。
2.2 内容介绍
- 载入各种数据科学以及可视化库:
- 数据科学库 pandas、numpy、scipy;
- 可视化库 matplotlib、seabon;
- 载入数据:
- 载入训练集和测试集;
- 简略观察数据(head()+shape);
- 数据总览:
- 通过describe()来熟悉数据的相关统计量
- 通过info()来熟悉数据类型
- 判断数据缺失和异常
- 查看每列的存在nan情况
- 异常值检测
- 了解预测值的分布
- 总体分布概况
- 查看skewness and kurtosis
- 查看预测值的具体频数自定义目录标题)
3.相关代码与示例
1.包的导入属于常规操作,这里就不多介绍了
2.介绍下对应如何查看数据结构
df = pd.read_csv("train.csv") # 读取对应文件信息
数据分析有时会用到.xls文件,此时可以使用pd.read_excel读取。出现报错时,按照对应提示安装相关的环境即可。代码如下:
df =pd.read_excel("xxxx.xls",dtype=float) # 取float的原因是为了方便进行后续处理
查看数据到首位信息
df.head().append(data.tail())
查看数据类型和相关统计量
df.describe()
df.info()
3.查看数据分布(不常用)
(1) 总体分布概况(无界约翰逊分布等)
import scipy.stats as st
y = df['label']
plt.figure(1); plt.title('Default')
sns.distplot(y, rug=True, bins=20)
plt.figure(2); plt.title('Normal')
sns.distplot(y, kde=False, fit=st.norm)
plt.figure(3); plt.title('Log Normal')
sns.distplot(y, kde=False, fit=st.lognorm)
2)查看skewness(偏度) and kurtosis(峰度)
sns.distplot(Train_data['label']);
print("Skewness: %f" % Train_data['label'].skew())
print("Kurtosis: %f" % Train_data['label'].kurt())