在本篇中我們來學習一下如何看數據的分佈,其中直方圖和密度圖是比較常用的
設置你的Notebook
我們還是老樣子在開頭先設置一下
<code>import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
print("設置完成")/<code>
選擇數據集
這次我們會使用Iris數據集,Iris是常用的分類實驗數據集,由Fisher, 1936收集整理,Iris也稱鳶尾花卉數據集,是一類多重變量分析的數據集。數據集包含150個數據樣本,分為3類,每類50個數據,每個數據包含4個屬性。可通過花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性預測鳶尾花卉屬於(Setosa,Versicolour,Virginica)三個種類中的哪一類。
iris以鳶尾花的特徵作為數據來源,常用在分類操作中。該數據集由3種不同類型的鳶尾花的各50個樣本數據構成。其中的一個種類與另外兩個種類是線性可分離的,後兩個種類是非線性可分離的。
該數據集包含了4個屬性:
種類:Iris Setosa(山鳶尾)、Iris Versicolour(雜色鳶尾),以及Iris Virginica(維吉尼亞鳶尾)。
下載並上傳
點擊這裡 下載 數據集
我們再把csv文件上傳到vitu的數據集空間裡
接下來我們用pandas來加載這個文件:
<code># 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()/<code>
直方圖
我們來創建一個直方圖看一下花瓣寬度的分佈,使用到sns.distplot這個函數
<code># Histogram
sns.distplot(a=iris_data['Petal Length (cm)'], kde=False)/<code>
密度圖
下一個我們要探索的是密度圖kernel density estimate(KDE)。如果你不太熟悉KDE,你可以大致認為它是一個平滑過的直方圖
我們用sns.kdeplot命令來畫
<code># KDE plot
sns.kdeplot(data=iris_data['Petal Length (cm)'], shade=True)/<code>
二維密度圖
我們還可以用sns.jointplot來畫二維的密度圖
<code># 2D KDE plot
sns.jointplot(x=iris_data['Petal Length (cm)'], y=iris_data['Sepal Width (cm)'], kind="kde")/<code>