Empfehlungssystem - Feature Engineering - Verarbeitung diskreter Features: OneHotEncoder

1. Was ist ein One-Hot-Code?

  One-Hot-Code, in der englischen Literatur One-Hot-Code genannt, gibt es intuitiv so viele Bits wie Zustände, und nur ein Bit ist 1, und die anderen sind alle 0. Weitere Einzelheiten finden Sie unter one_hot- Code (Wikipedia) . Beim maschinellen Lernen müssen diskrete und klassifizierte Daten digitalisiert werden. Beispielsweise kann das Attribut Geschlecht nur drei Werte haben: männlich, weiblich oder andere. Wie können diese drei Werte digital ausgedrückt werden? Ein einfacher Weg wäre 0 für Männer, 1 für Frauen und 2 für andere, was ist daran falsch?

  Nach Verwendung der obigen einfachen Sequenz zur Darstellung des Klassifizierungswerts kann während des Modelltrainings ein Problem auftreten, das heißt, die Anzahl der unterschiedlichen Werte beeinflusst den Trainingseffekt des Modells und unterschiedliche Werte im Prozess des Modells Training macht das gleiche Feature in der Stichprobe. Die Gewichtung kann sich ändern. Wenn es direkt als 1000 codiert wird, hat es dann einen größeren Einfluss auf das Modell als wenn es als 1 codiert wird? Um die obigen Probleme zu lösen, damit der Trainingsprozess nicht durch die negativen Auswirkungen auf das Modell aufgrund des Problems der Klassifikationswertdarstellung beeinflusst wird, wird ein One-Hot-Code eingeführt, um eine One-Hot-Code-Codierung an den Merkmalen von durchzuführen die Klassifizierung.

2. Codierungsprozess

  Wenn nur ein Merkmal einen diskreten Wert hat:

    {Geschlecht: {männlich, weiblich, andere}}

  Dieses Merkmal hat insgesamt 3 verschiedene Klassifizierungswerte. Zu diesem Zeitpunkt sind 3 Bits erforderlich, um den Wert des Merkmals anzugeben, und das entsprechende Bit ist 1. Die Position entspricht dem Wert des ursprünglichen Merkmals (im Allgemeinen dem Wert von die ursprüngliche Funktion kann zur späteren Verwendung in Sortieren geändert werden), und der zu diesem Zeitpunkt erhaltene One-Hot-Code ist {100} männlich, {010} weiblich, {001} andere

  Wenn mehrere Features eine One-Hot-Codierung erfordern, befolgen Sie die obige Methode, um die One-Hot-Codierung der einzelnen Features nacheinander zu spleißen:

    {Geschlecht: {männlich, weiblich, andere}}

    {Klasse: {1. Klasse, 2. Klasse, 3. Klasse, 4. Klasse}}

  Zu diesem Zeitpunkt können Sie für die Eingabe von {Geschlecht: männlich; Klasse: vierte Klasse} zur Durchführung einer One-Hot-Codierung zuerst das Geschlecht wie oben codieren, um {100} zu erhalten, und dann entsprechend der Klasse zu {0001} codieren. , dann verbinden Sie die beiden, um den endgültigen One-Hot-Code {1000001} zu erhalten;

3. Funktionsbibliothek von One-Hot-Code

  Wenn Sie Python verwenden, kapselt scikit_learn vorgefertigte Codierungsfunktionen. Das Folgende ist ein Codebeispiel:

  

 one_hot-Codierung

  Ausgabeergebnis:

  

array([[ 1., 0., 0., 1., 0., 0., 0., 0., 1.]])

Auch in Spark gibt es entsprechende Funktionen, ohne diese bei Baidu oder Google vorzustellen.

 




https://www.cnblogs.com/daguankele/p/6595470.html 

Verarbeitung diskreter Merkmale des maschinellen Lernens – ein heißer Encoder 

Guess you like

Origin blog.csdn.net/u013250861/article/details/130497797