ワンホットエンコーディングとダミーエンコーディングの問題


11

私は、kレベルのカテゴリ変数がダミーのエンコードでk-1変数でエンコードされる必要があるという事実を認識しています(同様に、多値のカテゴリ変数の場合)。さまざまな回帰メソッド、主に線形回帰、ペナルティ付き線形回帰(Lasso、Ridge、ElasticNet)、ツリーベース(ランダムフォレスト)のダミーエンコーディングに対してワンホットエンコーディング(つまり、代わりにk変数を使用)がどのくらい問題になるのかと思っていました。 、勾配ブースティングマシン)。

線形回帰では、多重共線性の問題が発生することを知っています(実際には、OHEを使用して線形回帰を問題なくフィッティングしましたが)。

しかし、それらすべてでダミーエンコーディングを使用する必要がありますか?ワンホットエンコーディングを使用した場合、結果はどのように間違っていますか?

私の焦点は、複数の(カーディナリティが高い)カテゴリー変数を使用した回帰モデルでの予測にあります。そのため、信頼区間には興味がありません。


10
2つを区別するのは正しくないと私は主張します。ダミー変数とワンホット変数は完全な同義語です。最初の項はより古く、統計に由来し、2番目の項はより若く、機械学習に由来します。3番目のより正式な同義語は、インジケータータイプのコントラスト変数です。このような基本変数のセットですべてのkまたはk-1非冗長変数を使用するかどうかは、その用語とは関係なく、分析のタイプと具体的なアルゴリズムまたはプログラムによって異なります。
ttnphns 2017

2
(続き)たとえば、回帰ソフトウェアでは、特異性のため、通常、すべてのkを入力できませんが、同等の一般線形モデリングソフトウェアでは、疑似逆アプローチを使用しているため、これを許可できます。
ttnphns 2017

1
私は@ttnphnsを使っています。どちらもひどい名前です。私はフルエンコーディングリーブワンアウトエンコーディングを好みます
Matthew Drury 2017

2
用語の謝罪、これは私が実践者(および同様の目的の本)が使用してきた標準的な用語です。共線性の問題は、線形(罰則なしのモデル)でのみ発生しますか?すべてのソフトウェアがすべてのkに入るのを停止するわけではありません(たとえば、Pythonのscikit-learn、間違っている場合は修正してください)
user90772

@MatthewDrury私の不愉快なことの1つは、「ワンホットエンコーディング」や「A / Bテスト」など、統計分析の分野に忍び寄る重複用語/フレーズです。混乱を避けるために、誰もが古い「ダミーコーディング」と「仮説テスト」に固執する必要があります。
RobertF

回答:


7

kkμ=a0+a1X1+a2X2X2=1X1(β0,β1,β2)(β0+β2,β1β2,0)

ペナルティはモデルを識別可能にしますが、冗長なコーディングは上記のように奇妙な方法でパラメーター値に影響を与えます。

デシジョンツリー(またはツリーのアンサンブル)での冗長コーディングの影響は、問題の機能を他の機能と比較して過大評価する可能性があります。これは、余分な冗長変数で表されるため、他の場合よりも頻繁に選択されるためです。分割。


1
インターセプトをツリーまたはツリーの集合に含める理由はないと思います。それは線形型モデル特有のものだと思います。したがって、ツリーベースのモデルの場合、適切なアイデアはインターセプトではなく、完全なエンコーディングであると思います。
Matthew Drury 2017

@MatthewDrury切片についてはあなたは正しいと思いますが、それでも、ツリーの場合、冗長なコーディングはあまり使用されていないようです。たとえば、機能がバイナリの場合、最初のクラスでの分割と2番目のクラスでの分割の違いは何ですか?私の知る限り、何もありません。
コディオロジスト2017

それは事実ですが、完全な対称性を維持することは、すべてを明らかに公平で解釈可能に保つための最も簡単な方法だと思います。
Matthew Drury 2017

1

コディオロジストは素晴らしい答えを出しました(+1)。ワンホットエンコーディングとダミーエンコーディングのエンコーディング方法は同じです。デザインマトリックスは同じ空間にあり、根拠は異なります。(ワンホットエンコーディングにはさらに列があります)

したがって、解釈可能性ではなく正確さに焦点を当てている場合。2つのエンコード方式は違いを生じません。


1
簡潔に言うと、ワンホットバージョンは基本ではありません(線形に依存しているため)。同じスペースにまたがっています。しかし、エンコーディングが精度に影響を及ぼさないと確信していますか?特にペナルティ付き回帰の場合、最終的に選択されたモデルは異なる予測を行うと思います。
コディオロジスト2017

@Kodiologistは、基本的な問題を修正してくれてありがとう。
Haitao Du

@Kodiologistなぜ正則化線形法で精度が異なるのですか?
Haitao Du

4
正則化された回帰では、常に完全なエンコーディングを使用する必要があります(つまり、完全なエンコーディングを使用しないでください。使用した名前をそのまま使用することはできないため、自分で使用しないことを好みます)。これは、切片がペナルティを課されないためです。したがって、切片の一部ではないレベルの影響を推測している場合、すべてのレベルに等しくペナルティを課しているとは言いがたいです。代わりに、常にすべてのレベルを含めるため、各レベルはペナルティに関して対称です。
Matthew Drury 2017

1
@Matthew Drury、この最後のコメントをありがとう。答えでそれを展開していただけませんか?それで、ダミーのエンコーディングが必要なのは、単純な線形回帰のみです。
user90772 2017

1

この質問に対する最良の答えは@MatthewDruryのコメントに埋もれていると思います。これ、違いがあり、正規化されたアプローチでは一見冗長な列を使用する必要あることを示しています。@MatthewDruryの推論は

[正則回帰]では、切片はペナルティを課されないため、切片の一部ではないレベルの影響を推測している場合、すべてのレベルに等しくペナルティを課しているとは言いがたいです。代わりに、常にすべてのレベルを含めるため、各レベルはペナルティに関して対称です。

彼はポイントを持っていると思います。


したがって、状況に応じて、kレベルまたはk-1レベルを使用して変数をホットエンコードする必要があります。あなたの声明に加えて(正規化/非正規化)、すべての場合に何をすべきかについてのガイドラインはありますか?
Dan Chaltiel

私のルールは、古典的なANOVAのように正則化がない場合は、k-1レベルを使用することです。ベイズ法やL2正則化による回帰のように正則化がある場合は、kレベルを使用します。
Ben Ogorek
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.