特徴量とは?意味・作り方と関連論文4本(2026年11月時点)

特徴量(とくちょうりょう)

フィーチャー / Feature / 特徴

特徴量(フィーチャー)とは、機械学習のモデルに入力する変数のこと。データの1行は1つ以上の特徴量からなり、住宅のデータなら築年数や部屋数の平均が当たる。

要するに

  • 値はモデルが学びやすい形に加工し、正規化やワンホットエンコーディングで整える
  • ニューラルネットワークは特徴量の掛け合わせを学習の中で自動で学ぶ
  • 前処理は学習用のデータだけから学ばせ、予測のときも同じ加工をかける

最終確認

白い面に並べた高さと太さの違う5つの円柱(白、薄紫、すりガラス、黒)と、上をなぞる紫のリボン
目次8

ひとことで言うと

特徴量(フィーチャー、Feature)は、機械学習のモデルに入力する変数のことだ。Google の機械学習の用語集は、特徴量を機械学習のモデルへの入力変数と定義し、1つの例(データの1行)は1つ以上の特徴量からなると説明している。

住宅の価格の例で見る。scikit-learn で読み込めるカリフォルニアの住宅のデータには、国勢調査の区画ごとに、所得の中央値、築年数の中央値、1世帯あたりの部屋数の平均、緯度と経度など、8つの数値の特徴量がある。予測する答えは、地区ごとの住宅価格の中央値だ。用語集は、教師あり学習で予測する答えの側を「ラベル」と呼び、特徴量と区別している。

仕組み

モデルは表の行をそのまま読むわけではない。Google の機械学習の講座(Machine Learning Crash Course)によると、モデルが受け取るのは特徴ベクトルだ。1つの例の特徴量を、浮動小数点数(小数を含む数)で並べた配列を指す。元のデータの値をそのまま使うことはまれで、ふつうはモデルが学びやすい形に加工した値を入れる。この加工を特徴量エンジニアリングと呼び、講座は機械学習の欠かせない部分だとしている。

用語集と講座の説明をつなぐと、特徴量を作る流れは次のようになる。

  1. どの特徴量が学習に役立ちそうかを決める。
  2. 数値の列を、正規化やビニングで扱いやすい形に変える。
  3. 文字列などのカテゴリの列を、数値のベクトルに変える。
  4. 特徴ベクトルにまとめてモデルに入れる。特徴ベクトルは、学習のときにも予測のときにも入力する。

2の正規化は、値の範囲が大きく違う特徴量を、似た範囲にそろえることだ。講座は、範囲が154から24,917,482までの特徴量と、5から22までの特徴量を例に挙げる。そろえないと、モデルは範囲の広い特徴量に注意を向けすぎ、狭い特徴量を軽く扱う。方法には、0から1などの範囲に収める線形の変換、平均から標準偏差いくつ分離れているかで表す Z スコア、対数を取る変換がある。ビニングは、数値を範囲ごとのまとまりに分けることだ。講座は、学習のときに正規化した特徴量は、予測のときにも同じように正規化しなければならないと注意している。

3について、講座は特徴ベクトルの値はすべて浮動小数点数でなければならないと書く。車の色のように種類の少ないカテゴリは、ワンホットエンコーディングで表す。8色なら要素が8個のベクトルを作り、その色の位置だけを1.0、ほかを0.0にする。色に振った番号をそのまま入れると、モデルは番号を連続した数として扱い、「紫」を「オレンジ」の6倍ありうるものと見てしまう。

表で見る最新の状況

上の「特徴量の学び方と説明に関わる論文4本」は、TRAIL の研究記事から、特徴量の作り方、学び方、説明に関わる論文を4本選び、古い順に並べたものだ。論文の要旨は2026年11月6日に arXiv の論文のページで確かめた。

4本の前に、流れを押さえておく。2012年6月の表現学習の総説(Bengio ほか)は、機械学習の性能は、どのデータの表現(特徴量)を使うかに大きく左右されると書いた。そのため、実際の労力の多くは前処理とデータの変換の設計に向かう。総説は、特徴量エンジニアリングは大事だが手間がかかるとし、学習のアルゴリズムが特徴量エンジニアリングに頼る度合いを減らせることが望ましいとした。表現学習とは、予測に役立つ情報を取り出しやすいデータの表現を学ぶことを指す。

Google の講座は、ディープラーニングのもとになるニューラルネットワークを、特徴量の掛け合わせを人が探す手間と比べて説明する。2つの特徴量を掛け合わせた新しい特徴量(特徴クロス)を人が試行錯誤で探す代わりに、ニューラルネットワークは学習の中で最適な掛け合わせを自動で学ぶ。

SHAP(2017年5月)は、1件の予測について、特徴量ごとに重要度の値を割り当てる。論文は既存の6つの手法を1つの枠組みにまとめた。

CatBoost(2017年6月)は、カテゴリの特徴量を処理する新しい方法を出した。論文の要旨によると、この方法は、ある種の目的変数の漏れ(target leakage)が起こす予測のずれを抑えるために作られた。TRAIL の研究記事は、カテゴリごとの目的変数(予測する答え)の平均を特徴量にすると、学習中の行の正解がその行の数値に混ざりうると説明し、CatBoost は行をランダムに並べて、その行より前の例だけから統計を計算すると紹介している。

SimCLR(2020年2月)は、ラベルのない画像から表現を学ぶ方法だ。論文によると、SimCLR が学んだ表現の上に線形の分類器を学ばせると、ImageNet で top-1 精度(1位の答えが正解だった割合)76.5%になり、教師あり学習で学んだ ResNet-50 と並んだ。

TabPFN-2.5(2025年11月)は、表のデータ向けの基盤モデルだ。論文は、データ点5万、特徴量2,000までのデータ向けに作ったとしている。データ点1万以下、特徴量500以下の小〜中規模の分類のデータでは、初期設定の TabPFN-2.5 が初期設定の XGBoost に100%の勝率だったと報告している。

特徴量とラベル、埋め込みの違い

特徴量 ラベル 埋め込み
何か モデルに入力する変数 教師あり学習で予測する答え 疎なデータを、次元の低いベクトルで表したもの
例 築年数の中央値、部屋数の平均 住宅価格の中央値、スパムかどうか 料理5,000品のワンホットを、3次元のベクトルに変えたもの
使うとき 学習のときも予測のときも入力する 学習に使う例の答えの部分 特徴量の表し方の1つとして入力に使う

エンベディング(埋め込み)は、特徴量の表し方の1つだ。講座によると、カテゴリの数が多いとき、ワンホットはふつうよくない選び方になる。例として英語の単語(約50万)、米国の郵便番号(約4万2,000)を挙げている。この場合は埋め込みのほうがずっとよく、次元を大きく減らせるので、学習も予測も速くなる。埋め込みは、ニューラルネットワークの隠れ層の1つを埋め込みの層にして、目的の課題の学習と一緒に作ることもできる。

仕事でどう関係するか

表のデータで予測モデルを作るとき

数値の列ごとに、分布を見て正規化の方法を選ぶ。講座によると、線形の変換が向くのは、上限と下限が時間であまり変わらず、外れ値が少なく、値が範囲の中でおおよそ均等に分かれている場合だ。現実の多くの特徴量はこの条件を満たさないので、Z スコアのほうがふつうはよい選び方だという。本の売れ行きのように、べき乗則に従う分布では、対数を取る変換が役立つ。極端な外れ値の影響は、上限を決めて値を抑えるクリッピングで小さくできる。

プロンプト
次の表のデータで、住宅価格を予測するモデルを作りたい。
列ごとに、数値かカテゴリかを判定し、数値の列には正規化の方法(線形の変換、Zスコア、対数)を、
カテゴリの列には変換の方法を、理由とあわせて提案してください。
データにない列は作らないでください。

郵便番号や商品コードのような列を扱うとき

数字で書かれていても、数として扱えない列がある。講座は、米国の郵便番号40004が20002の2倍を意味するわけではないとし、郵便番号はカテゴリのデータだと書く。めったに出ない値は、1つずつカテゴリにせず、語彙にない値(OOV)としてまとめた1つのバケツに入れられる。種類の多い列には、埋め込みか、より使われることの少ないハッシュ(hashing trick)と呼ばれる方法で次元を減らす。

scikit-learn の TargetEncoder は、カテゴリの値を、そのカテゴリでの目的変数の平均をもとにした値に置き換える。郵便番号や地域のように種類の多いカテゴリで、ワンホットだと特徴量の数が膨らむ場面に向くという。fit_transform では学習のデータを5つ(初期設定)に分け、それぞれをほかの部分から計算した値で置き換えて、目的変数の情報が学習のときの表現に漏れるのを防ぐ。

特徴量を絞り込むとき

scikit-learn は、特徴量の選択の方法をいくつか用意している。VarianceThreshold は、分散(値のばらつき)がしきい値に届かない特徴量を外す。初期設定では、すべての例で同じ値の特徴量を外す。SelectKBest は、特徴量ごとの統計的な検定の点数で上位 k 個を残す。再帰的特徴量削減(RFE)は、モデルを学ばせて重要度の低い特徴量を外すことを、決めた数になるまで繰り返す。

どの項目が予測に効いたかを説明するとき

決定木を使うモデルには、不純度の平均減少(MDI)にもとづく重要度がある。scikit-learn は、モデルが過学習していると、この方法は未知のデータで予測に役立たない特徴量にも高い重要度を付けうると注意している。MDI は種類の多い特徴量(ふつうは数値の特徴量)を、二値や種類の少ないカテゴリの特徴量より高く評価する偏りが強い。順列重要度は、学習に使っていないデータで計算できるので過学習による問題を避けられ、この偏りもない。重要度の読み方の注意は説明可能なAIのページにまとめている。

注意点と限界

前処理は、学習用のデータだけから学ばせる。scikit-learn は、テスト用のデータを正規化の平均の計算などに混ぜると、テストの情報がモデルに影響すると書く。予測のときに手に入らない情報でモデルを作ると、性能の見積もりが楽観的になり、本番の新しいデータでは性能が下がる。先にデータを学習用とテスト用に分け、そのあとで前処理をする。scikit-learn は、パイプライン(前処理とモデルをひとまとめにする仕組み)を使えば、正しいデータに正しい処理をかけられるとしている。

モデルが学んだ特徴は、人に分かる意味を持つとは限らない。講座は、料理の埋め込みの例で、3つの次元が「サンドイッチらしさ」「デザートらしさ」「液体らしさ」に当たるかもしれないと示したうえで、実際のモデルが選ぶ次元は、この例ほど直感的で分かりやすいことはまずないと断っている。

よくある質問

特徴量とは簡単に言うと何か

機械学習のモデルに入力する変数のことだ。表のデータなら、予測に使う列の1つ1つが当たる。住宅の価格を予測するなら、築年数や部屋数の平均が特徴量で、価格がラベルになる。

特徴量エンジニアリングとは何か

役に立ちそうな特徴量を決め、データの生の値をモデルが学びやすい形に変える作業だ。正規化、ビニング、カテゴリのワンホットエンコーディングなどがある。Google の用語集によると、特徴抽出や featurization と呼ばれることもある。

ディープラーニングなら特徴量エンジニアリングは要らないのか

すべてが要らなくなるわけではない。ニューラルネットワークは特徴量の掛け合わせを学習の中で自動で学ぶ。ただし特徴ベクトルの値は浮動小数点数でなければならないので、文字列のカテゴリを数値に変える加工は残る。

特徴量は多いほどよいのか

多いほどよいとは限らない。講座は、入力のベクトルが大きいとニューラルネットワークの重みが増え、学習に必要なデータ、計算、メモリーが増えると書く。scikit-learn は、関係のない特徴量や重複した特徴量を除くことが、モデルを作る時間と性能の改善に役立つとしている。

関連する用語

出典

公開
執筆
TRAIL編集部(編集方針)