EDA-数据探索性分析

1. EDA-数据探索性分析目标

  • EDA价值主要是在于熟悉数据集,了解数据集的结构和和数据的分布情况
  • 当了解数据集之后,我们可以进行下一步对数据集中个变量(数据标签)和数据之间相互关系以及变量与预测值之间的存在的关系

2.探索步骤

2.1 导入各数据科学机器可视化库

#coding:utf-8
#导入warnings包,利用过滤器来实现忽略警告语句。
import warnings
warnings.filterwarnings('ignore')
import missingno as msno
import pandas as pd
from pandas import DataFrame
import matplotlib.pyplot as plt 
import seaborn as sns
import numpy as np

2.2 整体总览

2.2.1 导入数据集后进行基础观察

  • 通过df.shape(),df.head()等函数对数据集有个大致的认识
    data.head().append(data.tail())——观察首尾数据
    data.shape——观察数据集的行列信息
    观察train、testA首尾数据(实际观察时,需要分开观察)
Train_data.head().append(Train_data.tail())
Test_data.head().append(Test_data.tail())

观察train、test数据集行列信息(实际观察时,需要分开观察)

Train_data.shape
Test_data.shape

2.2.2 总览数据情况

  • df.info(),df.describe()等函数对数据集有个总览

1.describe中有每列的统计量,个数count、平均值mean、方差std、最小值min、中位数25% 50% 75% 、以及最大值 看这个信息主要是瞬间掌握数据的大概的范围以及每个值的异常值的判断,比如有的时候会发现999 9999 -1 等值这些其实都是nan的另外一种表达方式,有的时候需要注意下
2. info 通过info来了解数据每列的type,有助于了解是否存在除了nan以外的特殊符号异常

获取train数据的相关统计量

Train_data.describe()

获取train数据类型

Train_data.info

获取test数据的相关统计量

Test_data.describe()

获取test数据类型

Test_data.info

2.2.3 判断数据缺失和异常

  • data.isnull().sum()——查看每列的存在nan情况

查看trian每列的存在nan情况

Train_data.isnull().sum()

查看·testA·每列的存在nan情况

Test_data.isnull().sum()

2.3 了解预测值的分布

2.3.1 了解相关label个数和分布情况

import matplotlib.pyplot as plt
import seaborn as sns
sns.countplot(train['label'])
sns.countplot(train['label'])

Train_data['label'].value_counts()

0.0 64327
3.0 17912
2.0 14199
1.0 3562
Name: label, dtype: int64

2.3.2 总体分布概况

查看无界约翰逊分布等

import scipy.stats as st
y = Train_data['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)

在这里插入图片描述
查看skewness and kurtosis

sns.distplot(Train_data['label']);
print("Skewness: %f" % Train_data['label'].skew())
print("Kurtosis: %f" % Train_data['label'].kurt())
Skewness: 0.871005
Kurtosis: -1.009573

在这里插入图片描述

Train_data.skew(), Train_data.kurt()
(id       0.000000
 label    0.871005
 dtype: float64,
 id      -1.200000
 label   -1.009573
 dtype: float64)
sns.distplot(Train_data.kurt(),color='orange',axlabel ='Kurtness')

在这里插入图片描述
查看预测值的具体频数

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

alstonlou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值