「オーバーサンプリング(Oversampling)」と「アンダーサンプリング(Undersampling)」をやさしく丁寧に解説

こんにちは。ゆうせいです。
今回は、「オーバーサンプリング(Oversampling)」と「アンダーサンプリング(Undersampling)」という、不均衡データを扱うための重要なテクニックについて解説します。
「クラスが偏ってるとモデルがうまく学習しないって聞いたけど、どう対処するの?」
「オーバーとアンダーって何がどう違うの?」
そんな疑問を持っている方へ。
この記事では、両者の違い・使い分け・メリットとデメリット・よくある手法まで、やさしく丁寧にお伝えしていきます!
不均衡データとは?
まず前提として、「不均衡データ(imbalanced data)」とは何かをおさらいしましょう。
たとえば、ある医療データで「陽性患者が全体の1%、残り99%が陰性」のように、分類クラスの数が極端に偏っている場合です。
このような状態では、学習したモデルが「全部陰性」と予測しても99%正解してしまうため、
本当に知りたい「陽性」を見つける力が低くなります。
オーバーサンプリング vs アンダーサンプリング
どちらも「クラスのバランスを整える」ための方法!
手法 | どうする? | 目的 |
---|---|---|
オーバーサンプリング | 少ないクラス(=マイノリティ)を増やす | 少数派を学習しやすくする |
アンダーサンプリング | 多いクラス(=マジョリティ)を減らす | データ全体のバランスを取りやすくする |
オーバーサンプリングの特徴
方法の例
- 単純な複製(同じデータをコピー)
- SMOTE(Synthetic Minority Over-sampling Technique)
→ 少数派クラスの近くに似たような合成データを作る手法
メリット・デメリット
メリット | デメリット |
---|---|
少ないクラスの特徴を学習しやすくなる | 学習時間が長くなる(データ量が増える) |
情報を失わずに済む | 過学習(同じデータを何度も見せることで)が起きやすい |
アンダーサンプリングの特徴
方法の例
- ランダム削除(マジョリティクラスのデータをランダムに間引く)
- Tomek Links・NearMissなどの知識ベースな間引き方法
メリット・デメリット
メリット | デメリット |
---|---|
モデルがシンプルになる(処理が速い) | 貴重な情報を捨てるリスクがある(データ量減少) |
バランスが取りやすい | 運が悪いと「重要なデータ」を消してしまうこともある |
図でイメージしよう!
元のデータ(不均衡)
●●●●●●●●●●●●●●●(多数派クラス)
○○(少数派クラス)
↓オーバーサンプリング
●●●●●●●●●●●●●●●
○○○○○○○○○○○○○○○(○を増やす)
↓アンダーサンプリング
●●●●●●●●●●●(●を減らす)
○○(○はそのまま)
どちらを使えばいいの?
状況 | 向いている手法 |
---|---|
データが少ない(全部使いたい) | オーバーサンプリング |
計算リソースを節約したい | アンダーサンプリング |
少数派のデータが複雑・多様 | オーバーサンプリング(SMOTEが有効) |
多数派に重複が多く、情報が冗長 | アンダーサンプリング |
実際によく使われる技法
手法名 | 概要 |
---|---|
RandomOverSampler | 少数派クラスのデータをランダムに複製 |
SMOTE | 少数派データから新しいデータを補間で生成 |
RandomUnderSampler | 多数派データをランダムに削除 |
Tomek Links | クラスの境界にあるペアデータを分析して、削除候補を選ぶ |
これらはPythonのライブラリ「imbalanced-learn」で簡単に使えます。
まとめ!
観点 | オーバーサンプリング | アンダーサンプリング |
---|---|---|
操作内容 | 少数派クラスを増やす | 多数派クラスを減らす |
情報保持 | ほぼ完全に保てる | 一部の情報を失う可能性がある |
処理速度 | 遅くなる可能性がある | 比較的速い |
過学習リスク | あり(特に単純な複製では) | 比較的少ない |
適しているケース | 少数派をもっと詳しく学ばせたいとき | データが豊富で高速処理したいとき |
今後の学習の指針
オーバーサンプリングとアンダーサンプリングの基礎が理解できたら、次は以下を学ぶと良いでしょう:
- SMOTEなどの高度なオーバーサンプリング法の仕組みを詳しく学ぶ
- 実際の不均衡データセットで、各手法を比較して精度を検証してみる
- クラス不均衡に強いアルゴリズム(XGBoostなど)との組み合わせも試す
クラスのバランスは、モデル性能に大きく影響する重要ポイントです。
今回の知識をベースに、実際の課題にうまく適用できるようになりましょう!
生成AI研修のおすすめメニュー
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。