これは実際には多くの質問が1つになっています。tf-idfベクトルで正規化を行う主な理由は、それらのドット積(SVMが決定関数で使用する)を、情報検索におけるドキュメントベクトル比較の主力であるコサイン類似性として容易に解釈できるようにするためです。正規化により、
"hello world" -> [1 2]
"hello hello world world" -> [2 4]
同じベクトルになるため、ドキュメントをそれ自体に連結しても決定境界は変更されず、これら2つのドキュメント間の類似性は正確に1つになります(ただし、劣線形スケーリングでsublinear_tf
は、vectorizerコンストラクターではこれは当てはまりません)。
スケーリングを行う主な理由は、数値の不安定性の問題を回避することです。フィーチャはすでに[0、1]の範囲にあるため、正規化によってこれらのほとんどが処理されます。(これは正則化にも関係していると思いますが、SVMはあまり使用していません。)
お気づきのように、chi²は特徴ベクトルを「非正規化」するので、元の質問に答えるために、それらを再正規化してみることができます。scikit-learnドキュメント分類の例にchi²特徴選択を追加するときにこれを行いました。これは、一部の推定者に役立ち、他の推定者に悪影響を及ぼしました。正規化されていないtf-idfベクトルでchi²を実行してみて(この場合、設定を試してみることをお勧めしますsublinear_tf
)、後でスケーリングまたは正規化を実行することもできます。