こんにちは!
皆さんはPythonでカーネル密度推定のグラフを表示したいと思ったことはありませんか?
カーネル密度推定とは、確率変数の確率密度関数を推定するノンパラメトリック手法の1つで、確率密度関数を推定する際によく使われる手法です。
Pythonでカーネル密度推定のグラフを表示するには、Seabornの「kdeplot()」を使うと簡単に表示することができます。
今回の記事では、以下の内容について紹介します。
- カーネル密度推定とは?
- Pythonでカーネル密度推定を表示する方法
カーネル密度推定
カーネル密度推定とは?
カーネル密度推定とは、ある分布の密度関数を推定したい場合に用いる手法です。
パラメトリックな手法が用いることができない場合に用いるノンパラメトリックな手法です。
以下の図は、ヒストグラムとカーネル密度推定のグラフを重ねたものです。
ヒストグラムに沿ってカーネル密度推定のグラフが描かれているのがわかるかと思います。
カーネル密度推定は簡単にこのようなものだということを覚えておきましょう。
カーネル密度推定のグラフを表示する kdeplot()
カーネル密度推定のグラフを表示するには、「kdeplot()」を使います。
kdeplot()の基本的な使い方
kdeplot()の基本的な書式は以下になります。
以下のプログラムは、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()
解説
実行結果
2軸のカーネル密度推定
kdeplot()では、1次元データを2つ指定することで、2軸のカーネル密度推定のグラフを出力することができます。
以下のプログラムは、sepal lengthとsepal widthの2軸のカーネル密度推定を出力するプログラムです。
sns.kdeplot(df['sepal length (cm)'], df['sepal width (cm)'])
実行結果
まとめ
今回の記事では、以下の内容について紹介しました。
- カーネル密度推定とは?
→ある分布の密度関数を推定したい場合に用いるノンパラメトリックな手法 - Pythonでカーネル密度推定を表示する方法
→「kdeplot()」を使用
Pythonでカーネル密度推定のグラフを描けるようになって、確率密度を推定できるようになりましょう!