参考来源:Vitu.AI
在本篇中我们来学习一下如何看数据的分布,其中直方图和密度图是比较常用的
设置你的Notebook
我们还是老样子在开头先设置一下
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
print("设置完成")
选择数据集
这次我们会使用Iris数据集,Iris是常用的分类实验数据集,由Fisher, 1936收集整理,Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。
iris以鸢尾花的特征作为数据来源,常用在分类操作中。该数据集由3种不同类型的鸢尾花的各50个样本数据构成。其中的一个种类与另外两个种类是线性可分离的,后两个种类是非线性可分离的。
该数据集包含了4个属性:
- Sepal.Length(花萼长度),单位是cm;
- Sepal.Width(花萼宽度),单位是cm;
- Petal.Length(花瓣长度),单位是cm;
- Petal.Width(花瓣宽度),单位是cm;
种类:Iris Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾),以及Iris Virginica(维吉尼亚鸢尾)。
下载并上传
点击这里 下载 数据集
我们再把csv文件上传到vitu的数据集空间里
接下来我们用pandas来加载这个文件:
# Path of the file to read
iris_filepath = "iris.csv"
# Read the file into a variable iris_data
iris_data = pd.read_csv(iris_filepath, index_col="Id")
# Print the first 5 rows of the data
iris_data.head()
直方图
我们来创建一个直方图看一下花瓣宽度的分布,使用到sns.distplot这个函数
# Histogram
sns.distplot(a=iris_data['Petal Length (cm)'], kde=False)
密度图
下一个我们要探索的是密度图kernel density estimate(KDE)。如果你不太熟悉KDE,你可以大致认为它是一个平滑过的直方图
我们用sns.kdeplot命令来画
# KDE plot
sns.kdeplot(data=iris_data['Petal Length (cm)'], shade=True)
二维密度图
我们还可以用sns.jointplot来画二维的密度图
# 2D KDE plot
sns.jointplot(x=iris_data['Petal Length (cm)'], y=iris_data['Sepal Width (cm)'], kind="kde")
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。