ワンホットエンコーディングが必要なアルゴリズムは何ですか?


12

順序付けされていないカテゴリ変数にワンホットエンコーディングをいつ使用するか、いつ使用しないかはわかりません。アルゴリズムが距離メトリックを使用して類似性を計算するときはいつでもそれを使用します。順序付けされていないカテゴリカル機能をワンホットエンコードする必要があるアルゴリズムのタイプと、そうでないアルゴリズムについて、一般的な経験則を教えてください。


2
カテゴリカルデータをいくつかのタイプの「コントラスト変数」に、または特にダミー(ワンホット)タイプにコード化する必要性について質問していますか?
ttnphns 2017年

1
この質問はやや広義ですが、OHEの性質に対処する簡単な回答でOPの混乱を解消できます。そのような答えの存在は、この質問が答えられることを意味します。私は開いたままにすることに投票します。
gung-モニカの回復

@ttnphns正直なところ、コントラスト変数の意味がわかりません。私はダミーにのみ精通しています。
コスモサ2017年

コスモス、ダミー(=インジケーター=ワンホット)は、分析でカテゴリカルカリブルをエンコードするためのいくつかの方法の1つにすぎません。これらの方法をまとめて「コントラスト変数」と呼びます。stats.meta.stackexchange.com/q/4669/3277およびstats.stackexchange.com/a/221868/3277を
ttnphns 2017

1
あなたが求める完全なリストを作成するのは難しいでしょう。
mdewey 2017

回答:


6

ほとんどのアルゴリズム(線形回帰、ロジスティック回帰、ニューラルネットワーク、サポートベクターマシンなど)では、カテゴリ変数に何らかのエンコードが必要です。これは、ほとんどのアルゴリズムが数値のみを入力として受け取るためです。

エンコードを必要としないアルゴリズムは、マルコフ連鎖/ナイーブベイズ/ベイジアンネットワーク、ツリーベースなどの離散離散分布を直接処理できるアルゴリズムです

追加コメント:


ほとんどのアルゴリズムで1つのホットエンコーディングが必要かどうかはまだ明確ではありません。エンコーディングが必要だと言うだけです。しかし、それは1つのホットエンコーディングですか?
プロメテウス

4

誰でも、ワンホットエンコードするためにカテゴリカル機能を必要とするアルゴリズムのリストと、そうでないアルゴリズムのリストを提供できますか?

AFAIU、それは特定のデータでより多くのことをしなければなりません、特定のアルゴリズムではより少ないです。具体的には、カテゴリに意味のある順序があるかどうかによって異なります。

2つのケースを検討してください。最初のカテゴリにはbad、meh、goodがあり、2番目のカテゴリにはapple、orange、pearがあります。最初のケースには自然な順序があります。これは、おそらくmehbadgoodの中間にあるためですが、apple、orange、pearではおそらく同じようなことが起こりません。

最初のケースでワンホットエンコーディングを回避すると、注文に関する情報が「失われます」。2番目のケースでワンホットエンコーディングを使用する場合は、カテゴリに自然に当てはまらない順序を割り当てます。

アルゴリズムが距離測定基準を使用して類似性を計算するときはいつでもそれを行います。

どうして?機能の1つがカテゴリのbad、meh、goodであり、1、2、3の3つのインスタンスがあるとします。ただし、1は不良、2はmeh、3は良好です。おそらく、1は3よりも2に似ていることをアルゴリズムに表現する必要があります。


2
それは良い答えです。質問を明確にすべきでしたが、順序付けられていないカテゴリ変数も含めました。その場合、常に1つのホットエンコードである必要がありますか?
コスモサ2017年

@ cosmos1990 IMHO経験則として、順序付けされていないカテゴリカルデータの場合、(数値の割り当てではなく)ワンホットエンコーディングが適しています。
Ami Tavory 2017年

2

機械学習アルゴリズムは、 1つのホットエンコーディングを必要としません。これは、カテゴリー変数を処理するための1つの方法です。ダミー変数は別です。従来、ダミー変数が推奨されるソリューションでした。たとえば、R関数lm()は、カテゴリカルデータのダミー変数を自動的に作成します。Pythonとscikt-learnを使用している場合、そのアルゴリズムの多くはカテゴリ変数のワンホットエンコーディングを必要とすると思います。tensorFlowにもワンホットエンコーディングが必要だと思います。これらは、変数のエンコード方法の選択です。代わりにダミー変数をコードで使用できなかった理由はありません。これはすべて、アルゴリズムの実際のコード実装を処理する必要があります。

hxd1011が指摘するように、カテゴリー変数間の「距離」を記述する問題は微妙な問題です。上記の距離に加えて、Jaccard距離もあります。一部のMLメソッド、特にSVMはカテゴリカルデータに不適切であり、カテゴリ変数を追加すると、予測力が非常に低いモデルになる可能性があります(どちらか、両方とも決定します)。ほとんどのアンサンブルモデルは、カテゴリデータを「そのまま」処理し、前処理を必要としません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.