【じげんさくげん】
次元削減 とは?
最終更新:
💡 データを表す項目を、少ない数に変換
データを表す特徴量の数を少なくする処理。PCAとt-SNEの用途、失われる情報、評価データの漏えいを防ぐ学習手順を解説します。
📌 このページのポイント
- データを表す特徴量の数を減らす
- 項目を選ぶ方法と、新しい項目に変換する方法がある
- 情報が失われるため、目的に必要な内容を確認する
- PCAとt-SNEでは、目的や保存する性質が違う
次元を減らすって、データを捨てること?
データを表す項目の数を減らすことだよ。たとえば一つの商品を100項目で表していたものを、少ない項目に変換する。商品100件を10件に減らす、という件数の削減とは違うんだ。
項目は、どうやって減らす?
元の項目から使うものを選ぶ方法や、複数の項目を組み合わせて新しい項目に変換する方法があるよ。後者の代表例がPCA。単に似た名前の項目を削るだけの処理ではない。
PCAは、大切な情報だけを残す?
データのばらつきが大きい方向を選んで表す方法だよ。その方向が、必ず予測や業務で重要とは限らない。項目の単位や尺度も影響するので、前処理と、削減後の結果が目的に合うかを確認しよう。
t-SNEで、きれいな集まりが見えたら?
高次元のデータを二次元などに描き、近いデータの関係を見やすくするのに使う。図の集まり同士の距離や大きさを、そのまま元のデータの性質と決め付けないでね。設定や初期化によって見え方も変わるよ。
どんな注意が必要?
少ない項目にすると情報が失われる場合がある。評価用データも混ぜてPCAなどを学習すると、評価の情報が漏れて性能を良く見せるおそれもあるよ。先に学習用と評価用を分け、学習した変換を評価用に適用しよう。
もっと詳しく知りたい人へ
削減したら、元の値に戻せる?
一般に、減らした情報を完全には復元できません。たとえば説明用にz=x+yとまとめると、(1,3)も(2,2)も4になり、元の組み合わせを区別できません。目的に必要な違いが残るかを確認します。
PCAは、項目の単位もそろえる?
scikit-learnのPCAは入力を平均で中心化しますが、自動で尺度をそろえる処理はしません。大きな数値の項目が影響しやすいため、標準化などを行うかはデータと目的に合わせて決めます。
まとめ:ざっくりこれだけ覚えればOK!
「次元削減」って出てきたら「データを表す特徴量を少ない数にする処理」と思えばだいたいOK!
📖 おまけ:英語の意味
「Dimensionality Reduction」 = 次元の数を減らすこと
💬 この文脈の次元は、一つのデータを表す特徴量の数です。データの件数を減らすこととは違います。