メーカー研究開発に携わるプログラミング初心者が学んだことを必要最小限にまとめた記事です。
平行座標プロット
派手で見栄えするので使えたらかっこいい。
何を表現できるか
多変量間の関係性を表現できる。正の相関が見られる場合は線の交差が少なく、負の相関が見られる場合は線の交差が多くなる。また、グループごとの傾向を表現することにも適する。
Pythonコード
まずはseabornよりアヤメ(iris)データセットをインポートする。
#seabornのirisデータセットをインポート
import seaborn as sns
iris = sns.load_dataset('iris')
iris.head()
アヤメデータをplotlyで平行座標プロットする。
#グラフライブラリplotlyの平行座標プロット
import plotly.express as px
fig = px.parallel_coordinates(data_frame=iris, dimensions = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width'])
fig.show()
アヤメの品種ごとに色分けする。
まず、品種(カテゴリ変数)を0, 1, 2に置き換える。
#speciesごとにラベルエンコーディング(カテゴリ変数に数値を割り振る)
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
iris['species'] = le.fit_transform(iris['species'])
その後、plotlyで品種ごとに色分けを指定する。
#アヤメの品種ごとに平行座標プロットの色分け
#colorの引数は数値データしか対応しないため、事前にカテゴリ変数をラベルエンコーディングした
fig = px.parallel_coordinates(data_frame=iris, color = 'species',
dimensions = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width'])
fig.show()
タイトルは.update_layoutで追加できる。
#タイトルをつける
fig.update_layout(title_text = 'Iris',
title_x=0.5,
title_y=1
)
こんなデータに使いたい
クラスター解析でわかったグループごとの変動パターンを可視化