数据分布探索函数(可以直接调用)

在建模之前要对数据进行探索性分析,首先要对数据分布有一个大致了解。matplotlib里面有自带的hist()函数,直接data.hist(),全部特征的分布状态就能在一张画布上展示出来,对于一个样本量较小的数据集来说,非常方便(700多个样本,60几个特征)。比如这样:
在这里插入图片描述
在一个样本量为300多万的数据集上面跑了一下,效果也还可以,优点是速度真的很快(对比后面自己写的那个函数)。但是真的没法看得很精细。比如这个数据集的几个特征分布图都有这样的特点(拿第一行第四幅图举例):大量数据集中在0附近,往后就空空如也,如果真的数据在后面的区间里没有分布,那为什么函数要画出来呢?

data.hist(bins=50,figsize=(20,15))
plt.show()

在这里插入图片描述这个时候还是要结合.value_counts()函数来看一下:

merchant['avg_sales_lag3'].value_counts().sort_index()

在这里插入图片描述可以看到:数据不仅分布在大于0的区间,其实小于0的区间还是存在蛮多样本的,而当数值非常大的时候数据分布得很稀疏。“贫富差距”及其大得偏态分布样本。试想一下,如果这个变量存在一些缺失值,要怎样填补呢?如果直接用均值来填补的话,是不是很容易因为最大值太大而把数据分布拉偏呢?但当我用data.hist()方法来进行数据探索的时候,我真的因为对这个变量分布认识得不到位,而选择了不恰当的填补方式。

当数据量非常大时,容易出现的一个情况就是:有些连续性变量的取值范围很大、很散,而分类型变量索取的几个值之间距离也很大,这时候对分类变量画出的直方图也特别奇怪。

而且如果数据中有NaN、inf的情况下,直接data.hist()这种方法行不通,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值