機械学習の具体的手法
G検定の特徴量エンジニアリングとスケーリング
特徴量エンジニアリングは、機械学習の前に、予測の手がかりとなる列を選び、尺度をそろえ、必要なら少数の軸にまとめる作業です。このページでは、特徴量選択・スケーリング・次元削減の3つの違いを表にし、年齢と年収の5人のデータで、スケーリングの前後で結果が変わる様子を計算します。特徴量選択は列を減らし、スケーリングは尺度をそろえ、次元削減は新しい軸を作ります。
このページは試験の学習用の整理です。5人のデータは説明用の架空の例です。
この記事の目次
公式情報の確認
試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。
試験の出題範囲・実施要項は変動するため、受験前に公式情報を確認してください。
特徴量選択・スケーリング・次元削減の違いと標準化
- 特徴量選択は元の列の一部を残す。スケーリングは列の数を変えず、尺度だけをそろえる。次元削減は元の列を組み合わせた新しい軸を作る
- 標準化は平均0・分散1に、最小最大変換は指定の範囲(多くは0から1)にそろえる
- 距離を使う手法では、尺度の大きい列が結果を決める。年齢と年収の例では、標準化すると2番目に近い人が入れ替わる
- 平均や標準偏差は訓練データで求め、同じ変換をテストデータに適用する
- 公式シラバスの記載は、教師あり学習で特徴量が必要なこと、教師なし学習の次元削減と主成分分析まで。特徴量選択やスケーリングという語は、確認できた範囲では見当たらない
シラバスの記載範囲
JDLAの公式シラバス(G2024#6から適用、2026年5月11日の第1.4版)を、2026年11月6日に調べました。機械学習の概要では、教師あり学習に「特徴量と教師データのペアが必要であること」、教師なし学習に「特徴量のみが必要であること」を理解する項目があります。教師なし学習のキーワード欄には、次元削減と主成分分析(PCA)が載っています。
一方、特徴量選択・特徴量エンジニアリング・スケーリング・標準化という語は、項目名にもキーワード欄にも見つかりませんでした。「正規化層」という語は載っていますが、これはディープラーニングの要素技術で、入力の列の尺度をそろえる前処理とは別の話です。出題で優先して押さえるのは、特徴量の意味と、次元削減・主成分分析です。スケーリングと特徴量選択は、シラバスに語としては載っていないものの、機械学習の前処理として広く使われるため、違いだけ押さえておくと用語を読み間違えにくくなります。特徴量そのものの意味はG検定の特徴量の用語解説にあります。
選択・スケーリング・次元削減の違い
3つは、列に何をするかで見分けます。scikit-learnの公式文書では、特徴量選択を、特徴量に対して使う機械学習の技法とし、SelectKBest、RFE、SelectFromModelなどを挙げています。標準化は、各列から平均を引いて標準偏差で割る変換、最小最大変換は、指定した最小値と最大値の間に収める変換です。PCAは、多変量データを、分散を最大限説明する直交した成分に分解します。
| 種類 | 何をするか | 結果の列 | 手法の例 |
|---|---|---|---|
| 特徴量選択 | 使う列を選び、使わない列を取り除く | 元の列の一部が残る。列の数が減る | SelectKBest(得点の高い上位k個)、再帰的特徴量削減(RFE)、SelectFromModel(重要度がしきい値を下回る列を除く) |
| スケーリング | 列ごとの単位や幅をそろえる | 列の数は変わらず、値の尺度だけが変わる | 標準化(平均を引いて標準偏差で割る)、最小最大変換(指定の範囲、多くは0から1に収める) |
| 次元削減 | 元の列を組み合わせて、少数の新しい軸にまとめる | 元の列とは別の、新しい列ができる | 主成分分析(PCA。分散を最大限説明する直交した成分に分解する) |
scikit-learnでは、特徴量抽出を、文章や画像のような任意のデータを数値の特徴量へ変換することと説明し、特徴量選択とは大きく異なると注記しています。PCAのような新しい軸への変換は、このページでは次元削減として扱います。選択と抽出の違いは特徴量選択と特徴量抽出の違いのページ、次元削減の手法はk-means法と主成分分析のページで扱っています。
5人のデータでスケーリング
年齢が20、30、40、50、60歳、年収が700、300、500、600、400万円の5人(A〜E)がいるとします。年齢の平均は40歳で標準偏差は約14.14、年収の平均は500万円で標準偏差は約141.42です(5人全員をnで割った値)。標準化の値は(値−平均)÷標準偏差、最小最大変換の値は年齢が(値−20)÷40、年収が(値−300)÷400です。
| 人 | 年齢 | 年収(万円) | 標準化 年齢 | 標準化 年収 | 最小最大 年齢 | 最小最大 年収 |
|---|---|---|---|---|---|---|
| A | 20 | 700 | −1.41 | 1.41 | 0.00 | 1.00 |
| B | 30 | 300 | −0.71 | −1.41 | 0.25 | 0.00 |
| C | 40 | 500 | 0.00 | 0.00 | 0.50 | 0.50 |
| D | 50 | 600 | 0.71 | 0.71 | 0.75 | 0.75 |
| E | 60 | 400 | 1.41 | −0.71 | 1.00 | 0.25 |
標準化すると、年齢も年収も−1.41から1.41の範囲にそろい、最小最大変換では0から1にそろいます。元の値では年収の幅が400万円、年齢の幅が40で、数字の大きさに10倍の開きがありました。標準化の考え方はDS検定の正規分布と標準化のページでも別の例で確認できます。
G検定の学習に使う書籍(Amazon)
PRスケーリングで近い人が入れ替わる
新しく50歳・年収480万円の人Xが来て、距離が近い人を探す(k近傍法のような)場面を考えます。元の値のまま距離を測ると、年齢の差は最大でも40、年収の差は数百になり、年収の差がほぼ全てを決めます。標準化した値で測ると、年齢と年収が同じ重みで効きます。
| Xから見た人 | 元の値の距離 | 標準化後の距離 |
|---|---|---|
| C(40歳・500万円) | 22.4 | 0.72 |
| D(50歳・600万円) | 120.0 | 0.85 |
| E(60歳・400万円) | 80.6 | 0.91 |
1番近いのはどちらでもCですが、2番目は、元の値ではE(約80.6)、標準化後ではD(約0.85)です。Eは年齢が10歳違い、年収が80万円違い、Dは年齢が同じで、年収が120万円違います。元の値では年収の80と120の差が効き、標準化後は、年齢が同じという点が効きます。尺度をそろえないと、単位が大きい列が「近さ」を決めてしまいます。k近傍法で単位の影響を7点の例で確かめた内容はk近傍法のページにまとめています。
訓練データだけで求める
スケーリングの平均や標準偏差は、訓練データだけで求めます。scikit-learnの公式文書も、StandardScalerは訓練データで平均と標準偏差を求め、同じ変換をあとからテストデータへ適用できると説明しています。上の5人を訓練データ、Xをテストデータとみなすと、Xの標準化には、5人の平均(40歳・500万円)と標準偏差を使い、Xを含めて求め直しません。
テストデータの情報を前処理に混ぜると、評価が実際より良く見えます。これはデータリーケージと呼ばれる失敗で、アノテーション・コーパス・データリーケージのページに、平均を求める順序を数値で確かめた例があります。前処理もモデルの一部として、訓練データだけで作ります。
よくある質問
特徴量エンジニアリングとは何ですか?
予測の手がかりとなる特徴量を、モデルが使いやすい形に作る・選ぶ・整える作業の総称です。このページでは、列を選ぶ特徴量選択、尺度をそろえるスケーリング、新しい軸にまとめる次元削減の3つに分けて整理しています。G検定の公式シラバスに「特徴量エンジニアリング」という語は、確認できた範囲では見当たりません。
スケーリングは何のために行いますか?
列ごとに単位や幅が違うと、距離を使う手法で幅の大きい列が結果を決めてしまうためです。年齢(20〜60)と年収(300〜700万円)の例では、元の値のままだと年収の差がほぼ全てを決め、標準化すると2番目に近い人が入れ替わります。
標準化と最小最大変換の違いは何ですか?
標準化は、平均を引いて標準偏差で割り、平均0・分散1にそろえます。最小最大変換は、最小値と最大値を使って指定の範囲(多くは0から1)に収めます。外れ値があると、どちらも結果が動きます。
主成分分析は、特徴量選択ですか?
違います。特徴量選択は元の列を残すか除くかを決める処理です。主成分分析は、元の列を組み合わせて分散を最大限説明する新しい軸を作るので、次元削減に分類します。
