「one-hotベクトル(ワンホットベクトル)」とは何か?

こんにちは。ゆうせいです。
今回は、機械学習の前処理でとてもよく使われる
「one-hotベクトル(ワンホットベクトル)」とは何か?を、新人エンジニアの方に向けてやさしく解説します。

この「one-hot(ワンホット)」という言葉、最初は「???」となりがちですが、
意味と使い方をきちんと理解すれば、データの前処理がグンとスムーズになりますよ!


結論!one-hotベクトルとは?

カテゴリ(文字やラベル)を、数値ベクトルで表す方法のひとつ
特徴は、「1つだけが1、他はすべて0」というシンプルな構造!

つまり、カテゴリ情報を「0と1のベクトル」で表現し直すことで、
機械学習モデルが理解できる数値の形に変換するんです!


具体例で理解しよう!

たとえば、「曜日」というカテゴリがあったとします。

["月", "火", "水"]

これをone-hotベクトルで表すとこうなります:

曜日one-hotベクトル
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]

ポイントは:

  • 要素数=カテゴリの数(ここでは3)
  • その中で「1つだけが1」、残りは全部0

つまり「そのカテゴリであることを示すスイッチ」のようなイメージですね!


名前の由来:「one-hot」って何?

one-hot」は英語で:

  • one = ひとつ
  • hot = アクティブ、スイッチが入っている状態

→ 「1個だけスイッチがONで、それ以外は全部OFF!」という状態をそのまま表しています。

まるでリモコンのボタンのように、1つだけ押されていて他は無反応。それがone-hotベクトルです。


どんな場面で使われるの?

使用例内容
分類問題のラベル表現正解ラベルを [0, 1, 0, 0, …] の形で表す
カテゴリ変数の前処理文字情報を数値ベクトルに変換する
ニューラルネットワークの入力・出力活性化関数や損失関数とセットで使われる

たとえば、犬・猫・鳥の3クラス分類なら:

  • 正解が「猫」なら [0, 1, 0]
  • モデルの出力も同じ形にして学習・比較します

one-hotのメリット・デメリット

メリット

  • モデルが扱える形(数値)になる
  • 意味のない順序や距離を与えずに済む
  • 実装が簡単で、解釈しやすい

デメリット

  • カテゴリ数が多いと次元が増える(=スパースになる)
  • データ量が増えて、計算が重くなる可能性あり

他の表現方法とどう違う?

方法特徴
ラベルエンコーディング「月=0, 火=1, 水=2」など数値に置き換える→ 距離や大小の意味が生まれてしまう(NGな場合あり)
one-hotエンコーディング各カテゴリに1列ずつ → 意味のない数値的順序を防げる

覚え方のコツ!

  • 「ホットなスイッチが1つだけON」
  • 「カテゴリごとの旗を1本だけ立てる」
  • 「YES/NOを列ごとに表して、YESが1本だけ」

というふうに、「1つだけ選ばれている状態」をイメージすれば、すぐ覚えられます!


今後の学習の指針

one-hotベクトルの意味がつかめたら、次はこんなことを学んでみましょう:

  1. Python(pandas / scikit-learn)で get_dummies()OneHotEncoder を使ってみる
  2. ダミー変数との違いを学んで、線形回帰などで使い分けられるようにする
  3. カテゴリが多い場合の対処法(例:ターゲットエンコーディング、エンベディングなど)を検討する

one-hotは「機械学習が理解できるように、データを“翻訳”する大事なステップ」です。
データ前処理の基礎として、しっかり理解しておきましょう!

生成AI研修のおすすめメニュー

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。