1. 目的
2. データ(例:AIの予測値と正解値)
2.1. PVHs.csv
3. コード
4. 実行結果
1. 目的
- Pythonのseabornを使ってバイオリンプロットを作成
2. データ(例:AIの予測値と正解値)
ここで使うデータは、AIが判定した予測値と正解値(0~3)。
- y_true: 正解ラベル
- y_pred: 予測したラベル
2.1. PVHs.csv
y_true | y_pred |
---|---|
0 | 0 |
0 | 0 |
0 | 0 |
0 | 0 |
0 | 0 |
0 | 0 |
0 | 0 |
0 | 1 |
0 | 1 |
0 | 1 |
1 | 1 |
1 | 1 |
1 | 1 |
1 | 1 |
1 | 1 |
1 | 1 |
1 | 1 |
1 | 1 |
1 | 1 |
1 | 2 |
1 | 2 |
1 | 3 |
2 | 1 |
2 | 2 |
2 | 2 |
2 | 2 |
2 | 2 |
2 | 2 |
2 | 2 |
2 | 2 |
2 | 2 |
2 | 2 |
2 | 2 |
2 | 2 |
3 | 2 |
3 | 3 |
3 | 3 |
3 | 3 |
3 | 3 |
3 | 3 |
3 | 3 |
3 | 3 |
3 | 3 |
3 | 3 |
3. コード
import seaborn import pandas as pd from matplotlib import pyplot as plt import matplotlib.ticker as ticker disease='PVHs' df = pd.read_csv('{}.csv'.format(disease)) # print(df) plt.gca().get_yaxis().set_major_locator(ticker.MaxNLocator(integer=True)) seaborn.violinplot(x=df['y_true'], y=df['y_pred']) # seaborn.violinplot(x=df['y_true'], y=df['y_pred'],cut=0) # 確率密度分布を制限して表示する場合 plt.savefig('{}.png'.format(disease)) plt.show()
4. 実行結果
作成したヴァイオリンプロットは以下。
本来は、ラベルは0から3であるが、確率密度分布が-1や4にまで広がっている。
それが気持ち悪い場合は、seaborn.violinplot
の引数にcut=0
を渡してやる。