【Python】Seabornでカーネル密度推定のグラフを表示する方法を紹介!

こんにちは!

皆さんはPythonでカーネル密度推定のグラフを表示したいと思ったことはありませんか?

Python初心者
カーネル密度推定って何?
先パイ
ある分布の密度関数を推定する手法に1つじゃよ

カーネル密度推定とは、確率変数の確率密度関数を推定するノンパラメトリック手法の1つで、確率密度関数を推定する際によく使われる手法です。

Pythonでカーネル密度推定のグラフを表示するには、Seabornの「kdeplot()」を使うと簡単に表示することができます。

今回の記事では、以下の内容について紹介します。

  • カーネル密度推定とは?
  • Pythonでカーネル密度推定を表示する方法

カーネル密度推定

カーネル密度推定とは?

カーネル密度推定とは、ある分布の密度関数を推定したい場合に用いる手法です。

パラメトリックな手法が用いることができない場合に用いるノンパラメトリックな手法です。

以下の図は、ヒストグラムとカーネル密度推定のグラフを重ねたものです。

ヒストグラムに沿ってカーネル密度推定のグラフが描かれているのがわかるかと思います。

カーネル密度推定は簡単にこのようなものだということを覚えておきましょう。

カーネル密度推定のグラフを表示する kdeplot()

カーネル密度推定のグラフを表示するには、「kdeplot()」を使います。

kdeplot()の基本的な使い方

kdeplot()の基本的な書式は以下になります。

seaborn.kdeplot(data)

以下のプログラムは、irisデータセットのsepal lengthのデータのカーネル密度推定のグラフを表示するプログラムです。

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['species'] = iris.target_names[iris.target]

sns.kdeplot(df['sepal length (cm)'])

plt.show()

解説

sns.kdeplot(df[‘sepal length (cm)’])
sepal lengthの列のデータを用いて、カーネル密度推定のグラフを描きます。

実行結果

2軸のカーネル密度推定

kdeplot()では、1次元データを2つ指定することで、2軸のカーネル密度推定のグラフを出力することができます。

以下のプログラムは、sepal lengthとsepal widthの2軸のカーネル密度推定を出力するプログラムです。

sns.kdeplot(df['sepal length (cm)'], df['sepal width (cm)'])

実行結果

まとめ

今回の記事では、以下の内容について紹介しました。

  • カーネル密度推定とは?
    ある分布の密度関数を推定したい場合に用いるノンパラメトリックな手法
  • Pythonでカーネル密度推定を表示する方法
    「kdeplot()」を使用
Python初心者
カーネル密度推定って難しそうだけどPythonを使ったら簡単に描けるね!

Pythonでカーネル密度推定のグラフを描けるようになって、確率密度を推定できるようになりましょう!