2015-05-04 3 views

Antwort

13

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.
Verwandte Themen