python 绘制分布直方图_为什么ECDF优于直方图

在这篇文章中,我们将学习使用python绘制直方图和ecdf,然后我们将探究为什么将ecdf作为第一个可视化工具是更好的选择。我们将使用iris机器学习数据集绘制setosa花瓣长度的直方图。

导入所有必需的Python库

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsfrom sklearn.datasets import load_iris
496acf0d5d8e225e04f3211fad3ee1ae.png

获取iris机器学习数据并将其转换为dataframe

data = load_iris()iris = pd.DataFrame(data= np.c_[data['data'], data['target']], columns= data['feature_names'] + ['target'])
b42f0e7aff4fba0d3667b1d739199b54.png

使用setosa类,并用6个bins绘制其花瓣长度的直方图。

#subsettingsetosa = iris[iris['target'] == 0]#histogramsns.set_style('whitegrid')_ = plt.hist(setosa['petal length (cm)'], bins = 6)plt.title('Histogram')plt.xlabel('setosa petal length (cm)')plt.ylabel('counts')plt.show()
48b1027db8b57143affd9ab961120fbe.png

您可以从上面的Python代码中看到直方图。请注意直方图的结构,条形高度在1.3到1.7之间。

9c293f03168e09dca68ebb1cbe155f3d.png

想象一下5个bins 的相同直方图,并注意分布如何变化。数据的存储方式可能会改变理解数据的方式。这称为Binning Bias。

a4c553bb5a9492729ad5be2365f32644.png

还有别的选择吗?

ECDF代表经验累积分布函数,您应该更多地使用它来理解数据。当应用于setosa dataframe时,自定义ecdf函数的输出包含两个数组

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值