Sie dienen einem ähnlichen Zweck. Die documentation bietet einige Vor-und Nachteile des für die HashedVectorizer
:
Diese Strategie hat mehrere Vorteile:
- es ist sehr wenig Speicher skalierbar auf große Datenmengen, da es keine Notwendigkeit, ein Vokabular Wörterbuch im Speicher zu speichern
- es ist schnell zu pickle und un-pickle, da es außer den Konstruktorparametern
- keinen Zustand hält, kann es in einer Streaming- (teilweise fit) oder parallelen Pipeline verwendet werden, da kein Zustand während der Anpassung berechnet wird.
Es gibt auch ein paar Nachteile (vs einen CountVectorizer mit einer In-Memory-Vokabular):
- gibt es keine Möglichkeit, die inverse Transformation (von Feature-Indizes zu bespannen Merkmalsnamen zu berechnen) was ein Problem sein kann, wenn Sie versuchen, introspect, welche Funktionen für ein Modell am wichtigsten sind.
- kann es zu Kollisionen kommen: unterschiedliche Token können demselben Feature-Index zugeordnet werden. In der Praxis ist dies jedoch selten ein Problem, wenn die n_Features groß genug sind (z. B. 2 ** 18 für Textklassifikation Probleme).
- keine IDF-Gewichtung, da dies den Transformator statusvoll machen würde.