心电图心跳分类(二)--EDA

Task2 数据分析

1. 内容

  1. 使用数据科学库和可视化库
  • pandas、numpy、sicpy
  • matplotlib、seaborn、pycharts
  1. 数据类型处理
  2. 缺失值和异常值处理
  • 查看每一列的nan情况
  • 异常值检测
  1. 了解预测值的分布情况
  • 总体分布情况
  • skewness and kurtosis
  • 预测值的具体频数

2. 代码

2.1 所需的库

import numpy as np
import pandas as pd
from pandas import DataFrame
import matplotlib.pyplot as plt 
import seaborn as sns
import missingno as msno
import warnings
warnings.filterwarnings('ignore')

2.2 读取数据集

2.2.1 导入训练集train.csv、测试集testA.csv数据

train = pd.read_csv('./train.csv')
test = pd.read_csv('./testA.csv')

2.2.2 查看数据首尾数据情况

print("train shape", train.shape)
print(train.head(10).append(train.tail(10)))
print("test shape", test.shape)
print(test.head(10).append(test.tail(10)))

运行结果
1

2.3 总览数据概况

  • describe种有每列的统计量,观察数据是否异常值和缺失值。比如分位数值相差太大则有异常值,或发现999 9999和-1 等值则有缺失值。
  • info 通过info来了解数据每列的type,也可以查看列是否有缺失值。

2.3.1 获取train数据的相关统计量

	print(train.describe([0.01, 0.05, 0.1, 0.25, 0.5, 0.85, 0.9, 0.95, 0.99]))

2.3.2 获取train数据类型

print(train.info())

3

2.3.3 获取testA数据的相关统计量

print(test.describe([0.01, 0.05, 0.1, 0.25, 0.5, 0.85, 0.9, 0.95, 0.99]))

运行结果:
4

获取testA的数据类型

print(test.info())

运行结果:
5

2.4 判断数据缺失和异常

data.isnull().sum()查看每列的nan情况

2.4.1 查看trian和testA每列的存在nan情况

在这里插入图片描述

2.5 了解预测值的分布

7

2.5.1 预测值的分布

sns.set(color_codes=True)
y = train.loc[:, 'label']
plt.figure(1)
sns.distplot(y, rug=True, bins=20)

在这里插入图片描述

plt.figure(2); plt.title('Normal')
sns.distplot(y, kde=False, fit=stats.norm)

9

plt.figure(3); plt.title('Log Normal')
sns.distplot(y, kde=False, fit=stats.lognorm)

10

3.5.2 查看skewness(偏态) and kurtosis(峰度)

偏度能够反应分布的对称情况,右偏(也叫正偏),表现为数据右边脱了一个长长的尾巴,这时大多数值分布在左侧,有一小部分值分布在右侧。
峰度反应的是图像的尖锐程度:峰度越大,表现在图像上面是中心点越尖锐。在相同方差的情况下,中间一大部分的值方差都很小,为了达到和正太分布方差相同的目的,必须有一些值离中心点越远,所以这就是所说的“厚尾”,反应的是异常点增多这一现象。

sns.distplot(train['label']);
print("Skewness: %f" % train['label'].skew())
print("Kurtosis: %f" % train['label'].kurt())

11

sns.distplot(train.kurt(), axlabel ='Kurtness')

12

2.5.3 查看预测值的具体频数

plt.hist(train['label'], orientation = 'vertical',histtype = 'bar', color ='red')
plt.show()

13

2.6 用pandas_profiling生成数据报告

import pandas_profiling
pr = pandas_profiling.ProfileReport(train)
pr.to_file("./report.html")

14

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值