Sparkでドキュメント分類をしようとしています。HashingTFでハッシュが何を行うかはわかりません。精度を犠牲にしますか?疑わしいですが、わかりません。Spark Docは、「ハッシュトリック」を使用していると言っています...エンジニアが使用した本当に悪い/混乱したネーミングのもう1つの例です(私も有罪です)。CountVectorizerには語彙サイズの設定も必要ですが、テキストコーパスの特定のしきい値の下に表示される単語またはトークンを除外するために使用できるしきい値パラメーターという別のパラメーターがあります。これら2つのトランスフォーマーの違いがわかりません。これを重要にするのは、アルゴリズムの後続のステップです。たとえば、結果のtfidf行列でSVDを実行したい場合、語彙サイズによってSVDの行列のサイズが決まり、コードの実行時間に影響します。
いくつかの重要な違い:
CountVectorizer
)と不可逆(HashingTF
)-ハッシュは可逆ではないため、ハッシュベクトルから元の入力を復元することはできません。一方、モデル(インデックス)を持つカウントベクトルは、順序付けられていない入力を復元するために使用できます。結果として、ハッシュされた入力を使用して作成されたモデルは、解釈および監視がはるかに困難になる可能性があります。HashingTF
必要なのは単一のデータスキャンのみで、元の入力とベクトル以外のメモリは必要ありません。CountVectorizer
モデルを構築するためにデータをさらにスキャンし、語彙(インデックス)を保存するために追加のメモリが必要です。ユニグラム言語モデルの場合、それは通常問題ではありませんが、より高いNグラムの場合、法外に高くつくか、実行不可能になる可能性があります。HashingTF
衝突が発生する可能性のある次元削減の場合。CountVectorizer
頻度の低いトークンを破棄します。ダウンストリームモデルにどのように影響するかは、特定のユースケースとデータによって異なります。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加