Scikit-learnの線形回帰モデルにより、ユーザーはインターセプトを無効にできます。ワンホットエンコーディングの場合、常にfit_intercept = Falseを設定する必要がありますか?ダミーエンコーディングの場合、fit_interceptは常にTrueに設定する必要がありますか?ウェブサイトに「警告」は表示されません。
ワンホットエンコーディングを使用した非正規化線形モデルの場合、はい、インターセプトをfalseに設定するか、完全な共線性が必要です。 sklearn
また、隆線の収縮ペナルティも考慮されます。その場合、それは必要ではありません。実際には、切片とすべてのレベルの両方を含める必要があります。ダミーエンコーディングの場合、すべての変数を標準化していない限り、インターセプトを含める必要があります。その場合、インターセプトはゼロです。
ワンホットエンコーディングではより多くの変数が生成されるため、ダミーエンコーディングよりも自由度が高くなりますか?
インターセプトは追加の自由度であるため、明確に指定されたモデルではすべてが等しくなります。
2番目の場合、k個のカテゴリ変数がある場合はどうなりますか?k変数はダミーエンコーディングで削除されます。自由度はまだ同じですか?
インターセプトの有無にかかわらず、両方のカテゴリ変数のすべてのレベルを使用したモデルに適合できませんでした。というのは、モデルの1つの変数のすべてのレベルをワンホットエンコードすると、たとえばバイナリ変数を使用すると、定数ベクトルに等しい予測子の線形結合が得られるからです。x1,x2,…,xn
x1+x2+⋯+xn=1
その後、別のカテゴリすべてのレベルをモデルに入力しようとすると、定数ベクトルに等しい明確な線形結合になりますx′
x′1+x′2+⋯+x′k=1
そして、あなたは線形依存関係を作成しました
x1+x2+⋯xn−x′1−x′2−⋯−x′k=0
したがって、2番目の変数のレベルを除外する必要があり、すべてが適切に整列します。
たとえば、3つのカテゴリ変数があり、それぞれに4つのレベルがあります。ダミーエンコーディングでは、3 * 4-3 = 9変数が1つのインターセプトで構築されます。ワンホットエンコーディングでは、3 * 4 = 12変数がインターセプトなしで構築されます。私は正しいですか?
2番目のものは実際には機能しません。作成した列の計画行列は単数形になります。デザインの非特異性を回復するには、3つの異なるカテゴリエンコーディングのそれぞれから1つずつ、3つの列を削除する必要があります。3×4=12