ペンギンデータセットでデータサイエンス入門 〜 特徴行列の可視化編【Python/seaborn/palmerpenguins】
目次
こんにちは。
さて、昨今データサイエンス界隈を賑わせているpalmerpenguins
なるペンギンデータセット。前回の記事でデータ加工して分析の準備が整いました。
今回は実際にペンギンデータセットで特徴行列と目的配列の可視化を学びましょう。
という記事です。
よろしく。
ちなみに本記事ではプログラムにPython3を使います。
過去の関連記事はこちらです。
データセットの準備
今回使うライブラリをインストールします。入ってなければpip install
で入れましょう。
import pandas as pd
import seaborn as sns
前回作ったデータセットを読み込んで、必要な列だけ取り出します。列名は単位がついていて長いので、使いやすいように短く変換します。
df = pd.read_csv('penguins.csv')
df.columns.tolist()
use_col = [
'species',
# 'island',
'bill_length_mm',
'bill_depth_mm',
'flipper_length_mm',
'body_mass_g',
# 'sex',
# 'year',
]
df = df[use_col]
df = df.rename(columns={
'bill_length_mm':'bill_length',
'bill_depth_mm':'bill_depth',
'flipper_length_mm':'flipper_length',
'body_mass_g':'body_mass'
})
こんな感じのデータになりました。
特徴行列と目的配列
今回のデータセットでは、species
(ペンギンの種類)を、他の列を特徴として推定していきたいと思います。
予測したい列のことを目的配列というので、今回はspecies
が目的配列ということになります。
また、残り4つが目的配列を推定するための特徴です。この特徴の列たちを特徴行列といいます。
seabornでデータを可視化する
早速ですが、どんなデータかを見てみましょう。species
を目的配列として指定して、ペアプロットで多次元データの相関を調べられます。
sns.set()
sns.pairplot(df, hue='species', size=1.5)
出力はこちら。データの分布が散布図とカーネル密度推定(ヒストグラムのようなやつ)で出てきます。
色分けが推定したいspecies
です。なんとなく、それぞれの分布が塊になって集まっているのがわかりますね。つまり、それぞれの特徴からspecies
がなんとなく推定できそうだということがわかります。
たとえば左から2列目の1番下を見てわかることは、bill_depth
(くちばしの太さ)とbosy_mass
(体重)を調べると、橙色のGentoo
(ジェンツーペンギン)は判別できそうですが、緑色のChinstrap
(ヒゲペンギン)と青色のAdelie
(アデリーペンギン)の識別はできなさそうだとわかります。
こんな2行でたくさんグラフが出てきて分析した気分になれるのは凄いですね。Matplotlib
よりもSeaborn
の方がpandas
のデータフレームを可視化するのに向いています。(Matplotlib
の方が、pandas
より歴史が古いみたいです。)
こうして分析や推定に取り組む前に、ひとまずデータセットを可視化してデータの傾向を眺めてみることで、戦略が立てやすくなります。
まとめ
ということで、今回はPythonのデータセット可視化ライブラリseaborn
を使ってペンギンデータセットの目的配列と特徴行列を可視化してみました。
データが複数の特徴を持つ場合に、特徴行列の関係をさくっと調べられるので重宝しますね。
次回はscikit-learn
を使って推定していこうと思います。だんだん機械学習っぽくなってきました。
それでは〜