2013-07-04 1 views
106

私は、1つのホットエンコーディングが特定のデータセット(マトリックス)で使用され、学習アルゴリズムのトレーニングデータとして使用された場合、元のマトリックス自体をトレーニングとして使用するのと比べて、データ。このパフォーマンスの向上はどのように起こりますか?1つのホットエンコーディングが機械学習のパフォーマンスを向上させる理由は何ですか?

答えて

225

学習アルゴリズムの多くは、機能ごとに1つの重みを学習するか、サンプル間の距離を使用します。前者は、説明しやすいロジスティック回帰などの線形モデルの場合です。

"UK"、 "French"、および "US"という値を持つ単一のカテゴリ機能「国籍」しか持たないデータセットがあるとします。一般性を失うことなく、これらが0,1および2として符号化されると仮定する。線形分類器でこの特徴に対する重みwを有すると、w×x + b> 0という制約に基づいてある種の決定を下す、または等価的にw×x <bである。

今や問題は、重みwが3方向選択をエンコードできないことです。 w×xの3つの可能な値は、0、wおよび2×wである。これらの3つのすべてが同じ決定につながります(彼らはすべて< bまたは≧bです)、または「イギリス」と「フランス語」が同じ決定につながるか、「フランス語」と「米国」が同じ決定を下します。モデルに「英国」と「米国」に同じラベルを、「フランス語」には奇妙なものを付けるべきであるということを知ることはできません。

ワンホットエンコードでは、特徴空間を3つのフィーチャに効果的に吹き飛ばします。これらのフィーチャスペースは、それぞれ独自の重みを取得するため、決定関数は現在[UK] x [UK] + w [FR] x [ FR] + w [US] x [US] < bであり、ここで、すべてのxはブール値である。この空間では、そのような線形関数は、可能性の和/論理和(例えば、英語を話す人の予測子であり得る「英国または米国」)の任意の和/論理和を表現することができる。

同様に、サンプル間の標準距離メトリック(k最近傍など)に基づく学習者は、ワンホットエンコーディングなしで混乱することになります。純粋な符号化とユークリッド距離では、フランスと米国の距離は1です。米国とイギリスの距離は2です。しかし、ワンホットエンコーディングでは、[1,0,0]、[0,1 、0]および[0,0,1]はすべて√2に等しい。

これはすべての学習アルゴリズムでは当てはまりません。意思決定ツリーとランダムフォレストなどの派生モデルは、十分に深い場合は、ワンホットエンコードなしでカテゴリ変数を処理できます。

+3

この回答は本当に良いです。ありがとう。 – goh

+4

このLarsをいただきありがとうございますが、効果的に機能の数を増やしているOneHotEncodingを実行した場合、オーバーフィットしないようにサンプルを増やす必要はありません。 – Manoj

+0

@Manoj各レベルを別個の整数として符号化した、明示的なカテゴリ変数の代替表現と比較して、私は重要ではないと考えています。 –

2

ワンホットエンコーディングを行うことによって機能が増加するにつれて、機能ハッシングを使用することができます。ハッシュを行うと、バケツの数を新しく導入された機能の数よりはるかに少なく指定できます。