現在、世界で最も価値のある資源はもはや石油ではなく、データです。視覚化は、数十億行のデータを理解するためのより重要なツールになりつつあります。データを解釈しやすいグラフィック表現に変換することにより、データ視覚化は、関連する情報、パターン、外れ値を強調表示することでデータのストーリーテリングを支援します。ただし、データとグラフィックスは連携して機能する必要があります。これは、優れた分析と優れたストーリーテリングを統合する技術です。このブログ投稿では、Python で書かれた最も有名な視覚化ツールの 1 つである「Sea Born」を紹介します。
視覚化ツール
私たちは視覚化ツールを使用して、傾向、パターン、外れ値、変数間の関係を視覚化します。これは、特にデータ サイエンスのキャリアにおいて非常に需要の高いスキルです。
シーボーン
Seaborn は、matplotlib に基づく Python データ視覚化ライブラリです。魅力的で有益な統計グラフィックスを描画するための高レベルのインターフェイスを提供します。
Seaborn プロット関数:
seaborn には 3 つのカテゴリーのプロットがあります
-
カテゴリプロット。
-
分布プロット。
-
関係プロット。
カテゴリプロット
seaborn のカテゴリプロット関数を使用して、カテゴリ変数の傾向を視覚化するか、少なくとも 1 つのカテゴリ変数を持つ 2 つの変数間の関係を視覚化します。
カウントプロット:
- カテゴリ変数からの各カテゴリの観測値の数を示します。変数の各カテゴリの観測値の数を単純に数えます。
seaborn.catplot(kind = 'count',
data = dataset,
x = 'variable')
棒グラフ:
-
カテゴリカル変数のカテゴリごとの連続変数の傾向の推定値を長方形の高さで表します。したがって、プロット関数は 2 つの変数 (連続変数とカテゴリ変数) を入力として受け取ります。変数_1 のカテゴリごとに、変数_2 の傾向を計算します。
-
傾向は平均や分散にすることも、カスタム関数を渡すこともできます...
seaborn.catplot(kind = 'bar',**data = dataset,**
x = 'variable_1',**y = 'variable_2',**
estimator = np.mean)**
ストリッププロット:
- ストリップ プロットは、データ視覚化において最も単純かつ直接的なプロットの 1 つであり、連続変数の値を表す点を単純に描画します。変数 1 の各カテゴリに対して、変数 2 の値を描画します。
seaborn.catplot(kind = 'strip',
data = dataset,
x = 'variable_1',
y = 'variable_2',
jitter = 0.15)
群プロット:
-
群プロットは、まったく同じ機能を備えているため、ストリップ プロットとよく似ています。唯一の違いは、ポイントの表示方法です。ストリップ プロットでは、データ ポイントが x 軸上にランダムに配置されるため、データ ポイントが重なり合う可能性がありますが、群プロットでは、データ ポイントを互いに積み重ねることによって、データ ポイントが重ならないようにします。
-
ここでの欠点は、データ ポイントが多数ある場合、それらが重ならないようにすることは不可能であるため、アルゴリズムは重ならないようにいくつかのデータ ポイントを削除することです。
seaborn.catplot(kind = 'swarm',
data = dataset,
x = 'variable_1',
y = 'variable_2')
箱ひげ図:
-
箱ひげ図は、カテゴリ変数の各カテゴリの連続変数の分布を表すために使用されます。非常にシンプルですが、多くの情報が得られます。
-
四分位数の値:
ボックスの内側には中央値を表す水平線があります。上の水平線は上位四分位、その下の水平線は下位四分位です。
- 外れ値:
ボックスの外側にいくつかの点があることに注意してください。これらの点は外れ値を表しています。
seaborn.catplot(kind = 'box',
data = dataset,
x = 'variable_1',
y = 'variable_2')
ヴァイオリンのプロット:
バイオリン プロットは、分布ボックスをプロットする代わりに、KDE (カーネル密度推定) を使用してカテゴリ変数のカテゴリごとに連続変数の実際の分布をプロットします。
seaborn.catplot(kind = 'violin',
data = dataset,
x = 'variable_1',
y = 'variable_2')
分布プロット:
seaborn の分布プロット関数を使用して、連続変数の分布を視覚化します。
彼のプロット:
ヒスト プロットは、ビンを使用して連続変数の分布を表します。
seaborn.distplot(kind = 'hist',
data = dataset,
x = 'variable',
bins = 20)
KDE プロット:
Kde プロットは、カーネル密度推定を使用して、データの実際の分布を表します。
seaborn.distplot(kind = 'kde',
data = dataset,
x = 'variable')
2 つの連続変数の二変量分布を表すために使用することもできます。
seaborn.distplot(kind = 'kde',
data = dataset,
x = 'variable_1',
y = 'variable_2')
ECDF プロット:
ECDF プロットは、連続変数の経験的累積分布を表します。
seaborn.distplot(kind = 'ecdf',
data = dataset,
x = 'variable')
関係プロット:
seaborn の関係プロット関数を使用して、連続変数間の関係を視覚化します。
散布図:
- すべてのデータ点を単純にプロットすることで、2 つの連続変数間の関係を示します。
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2')
折れ線グラフ:
- 変数間の関係を連続関数として表します。
seaborn.relplot(kind = 'line',
data = dataset,
x = 'variable_1',
y = 'variable_2')
その他の機能:
すべてのプロット関数で、プロットごとに最大 2 つの変数を使用していることに気づいたかもしれませんが、視覚化にさらに多くの変数を導入したい場合はどうすればよいでしょうか?幸いなことに、Seaborn がそれを処理してくれました。
色相:
- 色相を使用すると、カラー エンコーディングを使用して視覚化にカテゴリカルな 3 番目の変数を導入できます。これは、この 3 番目の変数の同じカテゴリに属するデータ ポイントが同じ色を持つことを意味します。
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
hue = 'variable_3')
サイズ:
- サイズは色相と似ていますが、カラー エンコーディングではなくサイズ エンコーディングを使用します。これは、3 番目の変数の同じカテゴリに属するデータ ポイントが同じ一意のサイズを持つことを意味します。サイズが異なるとカテゴリも異なります。
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
size = 'variable_3',
sizes = [50, 100])
スタイル:
- 色相とサイズとほぼ同じです。これは、3 番目の変数の同じカテゴリに属するデータ ポイントが同じ固有のスタイルを持つことを意味します。ポイント スタイルには、ドット、星、十字、三角形などがあり、これらをマーカーと呼びます。
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
style = 'variable_3',
markers = ['X', '*'])
複数のプロットを使用して新しいカテゴリ変数を導入することもできます。各プロットは、カテゴリ変数のカテゴリに属します。
コル:
3 番目の変数のカテゴリに対して横方向に多数の図を作成します。
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
col = 'variable_3')
行:
3 番目の変数のカテゴリに関して縦に多くの図を作成します。
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
row = 'variable_3')
同じプロット内で色相とサイズを使用して 4 つの変数を表すこともできます。また、同じプロット内で色相、スタイル、および列を使用して 5 つの変数を使用することもできます。同じプロット内で最大 7 つの変数 (変数 1、変数 2、色相、サイズ、スタイル、列、行) を使用できますが、非常に複雑で解釈が非常に困難な、非常に複雑なプロットが生成されます。まったく有益です。
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
hue = 'variable_3',
size = 'variable_4')
結論:
この投稿では、seaborn とその 3 つのカテゴリのプロット関数 (カテゴリ プロット、分布プロット、関係プロット) について学び、各カテゴリの各プロット関数を Python コードとともに説明しました。
このトピックの詳細については、データ サイエンス ブートキャンプ をご覧ください。