用語比較
不均衡データの扱い(オーバーサンプリング・アンダーサンプリング・クラスの重み付けの違い)
不均衡データとは、クラスごとのサンプル数に差があるデータです。imbalanced-learnの公式ドキュメントは、この差が学習と予測に影響しうるとしています。
対処は大きく3つに分かれます。少数派を増やすオーバーサンプリング、多数派を減らすアンダーサンプリング、データは変えずにクラスごとの重みを変える重み付けです。
G検定の機械学習の評価では、正解率が不均衡なデータで実態を見誤りやすい点が問われます。このページは、評価指標は知っていても、対処法をどう使い分けるか整理できていない人向けです。
データ拡張との違いは「データ拡張とオーバーサンプリングの違い」のページで扱い、ここでは不均衡への3つの対処の切り分けに絞ります。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。G検定の一次情報確認日: 2026-10-02。
結論
オーバーサンプリング
少数派のクラスに新しいサンプルを生成して、不均衡に対処する。複製するRandomOverSamplerと、補間で合成するSMOTE・ADASYNがある。
アンダーサンプリング
少数派以外のクラスの観測数を減らす。最も単純なのは、対象クラスのサンプルを無作為に取り除く方法。
クラスの重み付け
データの数は変えず、クラスごとの重みを指定する。scikit-learnのclass_weightに'balanced'を指定すると、クラス頻度に反比例する重みが自動で調整される。
違いを表で確認
| 比較軸 | オーバーサンプリング | アンダーサンプリング |
|---|---|---|
| 何を変えるか | オーバーサンプリング・アンダーサンプリング:学習データのサンプル数 | クラスの重み付け:クラスごとの重み(データの数は同じ) |
| サンプルの増減の向き | オーバーサンプリング:少数派のサンプルを増やす(複製または補間で合成) | アンダーサンプリング:少数派以外のサンプルを減らす(無作為に取り除くなど) |
| 実行の仕方 | サンプリング:imbalanced-learnのfit_resampleで再標本化したデータで学習する | 重み付け:class_weightを指定してモデルを学習する |
| 重みの決め方 | サンプリング:クラスの数をそろえる比率を指定する | 重み付け:{クラス: 重み}で指定、または'balanced'でn_samples / (n_classes * np.bincount(y))を自動計算 |
G検定の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
どこで迷っているかを切り分ける
正解率が高ければモデルは良いと考えている人
G検定の用語解説では、正解率はクラスの数に偏りがあると実態を見誤りやすい指標とされています。多数派だけを当てても正解率は高くなりうるため、不均衡データでは別の指標もあわせて見ます。
少数派を増やすか、多数派を減らすか迷う人
imbalanced-learnのドキュメントは、少数派に新しいサンプルを生成する方法と、少数派以外の観測数を減らす方法の両方を、不均衡データの扱い方として紹介しています。減らす方法は学習に使うサンプル数が減る点が、増やす方法との違いです。
データを増減させずに対処できるのか知りたい人
scikit-learnのclass_weightを使うと、データの数を変えずにクラスごとの重みを指定できます。'balanced'を指定すれば、クラス頻度に反比例する重みが自動で調整されます。
具体例で使い分ける
例 1
少数派クラスのサンプルを複製・合成して増やす場合
不均衡データに対して、少数派のサンプルを増やす方法を問う設問です。
- imbalanced-learnのドキュメントは、少数派のクラスに新しいサンプルを生成する方法を紹介します。最も素朴な方法は、復元抽出で元のサンプルを複製するRandomOverSamplerです。
- SMOTEとADASYNは、近傍のサンプルの補間で新しい合成サンプルを生成します。
結論: 少数派を増やす対処は、オーバーサンプリングです。
例 2
多数派クラスのサンプルを無作為に取り除く場合
不均衡を、サンプルを減らして解消する方法を問う設問です。
- 同ドキュメントは、少数派以外のクラスの観測数を減らす方法を、不均衡データの扱い方の一つとして挙げます。
- 最も単純なのは、対象クラスのサンプルを無作為に取り除く方法です。
結論: 多数派を減らす対処は、アンダーサンプリングです。
例 3
データは変えず、クラスごとの重みを変える場合
サンプル数を変えずに不均衡へ対処する方法を問う設問です。
- scikit-learnのLogisticRegressionのclass_weightは、{クラスのラベル: 重み}で重みを指定します。指定しなければ、すべてのクラスの重みは1です。
- 'balanced'を指定すると、入力データのクラス頻度に反比例する重みが自動で調整されます。
結論: データを変えずに重みで対処するのは、クラスの重み付けです。
問題文から答えを選ぶ手順
- 1
変える対象を確認する
学習データのサンプル数を変えるならサンプリング、クラスごとの重みを変えるなら重み付けです。
- 2
サンプルを増やすか減らすか確認する
少数派を増やすならオーバーサンプリング、少数派以外を減らすならアンダーサンプリングです。
- 3
増やし方を確認する
元のサンプルの複製ならRandomOverSampler、補間による合成ならSMOTEやADASYNです。
- 4
評価指標を確認する
不均衡データでは正解率だけで判断せず、適合率・再現率やバランス正解率もあわせて見ます。
試験での見分け方
- 1少数派のサンプルを増やすのが、オーバーサンプリング。
- 2少数派以外のサンプルを減らすのが、アンダーサンプリング。
- 3データの数を変えず、クラスごとの重みを変えるのが、クラスの重み付け。
- 4不均衡データでは、正解率だけで評価しない。
誤答しやすい選択肢
正解率が高いので不均衡データでも十分に評価できたと考える
修正: G検定の用語解説では、正解率はクラスの数に偏りがあると実態を見誤りやすい指標とされています。scikit-learnのバランス正解率は、不均衡なデータセットに対処するため、各クラスの再現率の平均として定義されています。
クラスの重み付けは、サンプルを増やす手法だと考える
修正: class_weightはクラスごとの重みを指定するもので、サンプル数は変わりません。サンプルを増やすのはオーバーサンプリングです。
アンダーサンプリングは、情報を失わないと考える
修正: 少数派以外のクラスの観測数を減らす方法なので、学習に使うサンプル数は減ります。
確認問題
Q1少数派のクラスに新しいサンプルを生成して不均衡に対処する手法はどれですか?(オーバーサンプリング・アンダーサンプリング・クラスの重み付け)
答え: オーバーサンプリング
imbalanced-learnのドキュメントが紹介する方法です。
Q2scikit-learnのclass_weightに'balanced'を指定すると、重みは何に反比例して調整されますか?
答え: 入力データのクラス頻度
n_samples / (n_classes * np.bincount(y))で自動計算されます。
Q3scikit-learnのバランス正解率は、何の平均として定義されていますか?
答え: 各クラスで得られた再現率の平均
不均衡なデータセットに対処するための指標です。
到達チェック
- 不均衡データの意味を言える
- オーバーサンプリングとアンダーサンプリングの向きの違いを言える
- クラスの重み付けがデータの数を変えないことを言える
- 不均衡データで正解率だけに頼れない理由を言える
関連ページで確認する
同じ資格で次に知りたいこと
- VGGとGoogLeNetの違い(G検定のILSVRC 2014の画像認識モデルの見分け方)
VGGとGoogLeNetの違いを、原論文の抄録に沿って、3×3の小さな畳み込みフィルタで深さを16〜19層に押し進めたVGGと、Inception構造で計算量を一定に保ちつつ深さと幅を増やした22層のGoogLeNetの設計思想と成績まで整理し、G検定での見分け方と確認問題を示します。
- 主成分分析とt-SNEの違い|線形の次元削減と可視化向きの非線形な埋め込み(G検定)
主成分分析(PCA)とt-SNEの違いを、線形か非線形か、重視する構造(全体か近傍か)、計算の重さ、結果の安定性、使い分けまで、scikit-learn公式ドキュメントに沿って整理します。G検定の確認問題つきです。
- Seq2SeqとTransformerの違い(G検定の機械翻訳モデルの見分け方)
Seq2SeqとTransformerの違いを、原論文の抄録に沿って、LSTMで固定次元のベクトルを介して系列を変換するSeq2Seqと、再帰も畳み込みも使わず注意機構だけで組むTransformerの構造、翻訳成績、学習の速さまで整理し、G検定での見分け方と確認問題を示します。
よくある質問
Q不均衡データとは何ですか?
クラスごとのサンプル数に差があるデータです。imbalanced-learnのドキュメントは、この差が学習と予測に影響しうると述べています。
Qオーバーサンプリングとアンダーサンプリングの違いは何ですか?
オーバーサンプリングは少数派のクラスに新しいサンプルを生成し、アンダーサンプリングは少数派以外のクラスの観測数を減らします。
Qクラスの重み付けはサンプルを増やしますか?
増やしません。scikit-learnのclass_weightはクラスごとの重みを指定するもので、'balanced'ならクラス頻度に反比例する重みが自動で調整されます。
Q不均衡データで正解率だけを見てよいですか?
G検定の用語解説では、正解率はクラスの数に偏りがあると実態を見誤りやすいとされています。バランス正解率や適合率・再現率もあわせて見ます。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: ミナト編集部(運営者情報を見る)
