特徴ベクトル入門:概念・表現・前処理・特徴選択まで機械学習の実践ガイド
特徴ベクトルとは――概要と直感
特徴ベクトル(feature vector)とは、ある対象(データ点、サンプル、観測値)を数値化して表現したベクトルのことです。数学的には x ∈ Rⁿ のように表され、各成分 x_i が「特徴(feature)」を表します。特徴ベクトルは機械学習や情報検索、類似度計算、クラスタリングなど多くのアルゴリズムで入力として使われ、モデルの性能はしばしばこの特徴の質に依存します。
特徴ベクトルの構成要素と種類
特徴は次のような種類に分けられます。
- 数値(連続)特徴:温度、価格、長さなど。直接ベクトル成分に入れられる。
- カテゴリカル(離散)特徴:色、国名など。ワンホットエンコーディングや埋め込み(embedding)で変換。
- バイナリ特徴:有無やフラグ(例:購入したかどうか)。0/1で表現。
- 高次元・疎(スパース)特徴:単語の出現を表すバッグ・オブ・ワーズ(BoW)やTF–IDFなど。多くの成分がゼロになる。
- 時系列・構造化データ:シーケンスやグラフは固定長ベクトルに変換(集約、埋め込み)して扱うことが多い。
典型的な特徴表現の例
- 画像:ピクセル値をフラット化したベクトル、あるいはSIFT/HOGの局所特徴、最近ではCNNの中間層出力(特徴マップをプーリングして得る)を特徴ベクトルとして使う。
- テキスト:Bag-of-Words、TF–IDF、word2vec/GloVeの単語埋め込み、BERTなどの文脈埋め込み(contextual embeddings)。
- 音声:MFCC(メル周波数ケプストラム係数)などの時周波特徴を平均や時系列モデルで集約してベクトル化。
- グラフ:ノード埋め込み(node2vec、GraphSAGE)やグラフニューラルネットワーク(GNN)からの特徴ベクトル。
特徴ベクトルを扱う上での数学的操作
多くのアルゴリズムはベクトル空間での距離や内積を使います。代表的な指標は以下の通りです。
- ユークリッド距離(L2ノルム): d(x,y)=||x−y||_2
- コサイン類似度: cos(x,y)= (x·y) / (||x|| ||y||)。方向の類似度を重視する。
- マンハッタン距離(L1)やマハラノビス距離(共分散を考慮)など。
また、次元削減(PCA、SVD、t-SNE、UMAP、オートエンコーダ)を使って高次元の特徴ベクトルを低次元化することがよく行われます。低次元化は可視化、ノイズ除去、計算効率の向上に役立ちます。
特徴量エンジニアリングと前処理
良い特徴ベクトルを作るための代表的な処理:
- スケーリング:標準化(zスコア)、最小最大正規化など。距離計算や勾配降下の収束に影響する。
- 正規化:L2正規化でベクトル長を1にすることでコサイン類似度との相性を良くする。
- 欠損値処理:補完(平均、中央値、モデルベース)や欠損そのものを特徴に変換。
- エンコーディング:カテゴリカル変数をワンホット、ターゲットエンコーディング、埋め込みに変換。
- 多項式特徴や交互作用項:線形モデルでも非線形性を扱えるように特徴を作る。
特徴選択・重要度評価
不要な特徴を除くことは過学習防止や計算効率向上に重要です。代表的手法:
- フィルタ法:相関係数、分散閾値、情報ゲイン、相互情報量などで特徴を選択。
- ラッパー法:逐次選択や再帰的特徴削除(RFE)など、モデルの性能を基準に選択。
- 組み込み法:L1正則化(Lasso)や決定木系(特徴の重要度)を利用。
- モデル非依存の説明法:Permutation Importance、SHAP、LIME などで特徴の寄与を評価。
埋め込み(Embedding)と分散表現
埋め込みは高次元離散データを低次元連続空間へ写像する手法で、意味的な類似性がベクトル空間上で保存されることを目的とします。代表例:
- word2vec(単語埋め込み):分散表現により語の類似性を捉える。
- GloVe、fastText:語の統計情報やサブワード情報を利用。
- BERTなどのトランスフォーマー系:文脈依存の埋め込みを生成。
- 画像やグラフにも同様にCNN/GNNから特徴を抽出して埋め込みにする。
よくある問題点と対策
- 次元の呪い(curse of dimensionality):次元が増えるとデータが希薄になり、距離指標の有用性が低下。次元削減や特徴選択で対処。
- スケールの不一致:スケールの異なる特徴は標準化で調整。
- 多重共線性:高い相関を持つ特徴は冗長なので削除や主成分分析(PCA)を検討。
- データリーケージ(情報漏洩):訓練時にテスト情報を含まないようパイプラインを厳密に分離する。
- 分布の変化(データドリフト):運用中に特徴分布の監視と再学習が必要。
評価と実装上の注意点
特徴ベクトル化はパイプライン化して再現可能にすることが重要です。前処理、エンコーディング、次元削減を学習データのみでフィッティングし、検証/本番では同じ変換を適用します。交差検証(cross-validation)を用いて特徴選択やハイパーパラメータを評価し、データ漏洩を防ぎます。
応用例と実世界での使われ方
特徴ベクトルはあらゆる機械学習の基盤です。検索エンジンでは文書やクエリを特徴ベクトルにより類似検索(ベクトル近傍検索)し、推薦システムではユーザとアイテムを埋め込み空間でマッチングします。顔認識や物体検出は画像特徴ベクトルを用い、時系列予測や異常検知でも特徴抽出が重要になります。
将来動向と注意点
近年は自己教師あり学習や大規模事前学習モデルにより「汎用的で高品質な特徴ベクトル(表現)」を得る研究が進展しています。一方で、表現がバイアスや個人情報を内包することが問題視されるため、説明性・公平性・プライバシーの観点での検証も重要です(差別的な表現の除去、差分プライバシー等)。
まとめ
特徴ベクトルはデータを機械学習で扱える形式に落とし込む極めて重要な概念です。良い特徴はモデル性能を大きく左右し、前処理、エンコーディング、次元削減、選択の各段階での工夫が求められます。最近はニューラルモデルによる自動表現学習が主流になりつつありますが、ドメイン知識に基づく特徴設計やパイプラインの正確な実装・監視は依然として不可欠です。
参考文献
- Feature vector — Wikipedia
- Principal component analysis (PCA) — Wikipedia
- TF–IDF — Wikipedia
- Mikolov et al., "Efficient Estimation of Word Representations in Vector Space" (word2vec, 2013)
- t-SNE — Laurens van der Maaten
- UMAP — Uniform Manifold Approximation and Projection (ドキュメント)
- scikit-learn: Feature selection — Documentation
- Interpretable Machine Learning — Christoph Molnar (オンラインブック)


