オーバーサンプリングやアンダーサンプリングをしているが、具体的にどう不均衡が発生しているのか視覚化してみたい

不均衡なクラス分布を視覚化するための方法として、クラスごとのデータポイントの数を棒グラフや円グラフで表示することができます。また、オーバーサンプリングやアンダーサンプリングを適用した後のクラス分布も同様に視覚化することができます。

以下に、PythonのMatplotlibを使用してクラス分布を視覚化する方法の例を示します。

python
import matplotlib.pyplot as plt # オリジナルのクラス分布をプロットする plt.figure(figsize=(8, 6)) plt.bar(data['size'].unique(), data['size'].value_counts(), color=['blue', 'green', 'red']) # クラスごとのデータポイントの数を棒グラフで表示 plt.xlabel('Class') plt.ylabel('Number of Data Points') plt.title('Original Class Distribution') plt.show() # オーバーサンプリングまたはアンダーサンプリング後のクラス分布をプロットする plt.figure(figsize=(8, 6)) plt.bar(y_train_resampled.unique(), y_train_resampled.value_counts(), color=['blue', 'green', 'red']) # クラスごとのデータポイントの数を棒グラフで表示 plt.xlabel('Class') plt.ylabel('Number of Data Points') plt.title('Resampled Class Distribution') plt.show()

このコードを実行すると、オリジナルのクラス分布とリサンプリング後のクラス分布が棒グラフで表示されます。これにより、不均衡なクラス分布がどのように変化したかを視覚的に確認することができます。

未分類

Posted by ぼっち