Feature Crosses: One-Hot-Vektoren

Bisher haben wir uns mit Feature Crossing auf zwei einzelne Gleitkommamerkmale konzentriert. In der Praxis werden Modelle für maschinelles Lernen selten als durchgehende Funktionen bezeichnet. ML-Modelle kreuzen jedoch häufig One-Hot-Merkmalsvektoren. Stellen Sie sich Feature-Kreuze aus One-Hot-Merkmalsvektoren als logische Konjunktionen vor. Angenommen, wir haben zwei Funktionen: Land und Sprache. Eine One-Hot-Codierung generiert jeweils Vektoren mit binären Merkmalen, die als country=USA, country=France oder language=English, language=Spanish interpretiert werden können. Wenn Sie dann eine Featureverknüpfung dieser One-Hot-Codierungen erstellen, erhalten Sie binäre Features, die als logische Konjunktionen interpretiert werden können, z. B.:

  country:usa AND language:spanish

Ein weiteres Beispiel: Sie gruppieren Breiten- und Längengrad, um separate One-Hot-Element-Merkmalsvektoren zu erstellen. Ein bestimmter Längen- und Breitengrad kann beispielsweise so dargestellt werden:

  binned_latitude = [0, 0, 0, 1, 0]
  binned_longitude = [0, 1, 0, 0, 0]

Angenommen, Sie erstellen ein Merkmalskreuz aus diesen beiden Featurevektoren:

  binned_latitude X binned_longitude

Dieses Feature Cross ist ein One-Hot-Vektor mit 25 Elementen (24 Nullen und 1 Eins). Die einzelne 1 im Kreuz kennzeichnet eine bestimmte Kombination aus Breiten- und Längengrad. Ihr Modell kann dann bestimmte Verknüpfungen zu dieser Konsequenz erhalten.

Angenommen, wir ordnen den Längen- und Breitengrad viel grober an:

binned_latitude(lat) = [
  0  < lat <= 10
  10 < lat <= 20
  20 < lat <= 30
]

binned_longitude(lon) = [
  0  < lon <= 15
  15 < lon <= 30
]

Das Erstellen einer Merkmalskreuzung dieser groben Mülleimer führt zu einem synthetischen Merkmal mit den folgenden Bedeutungen:

binned_latitude_X_longitude(lat, lon) = [
  0  < lat <= 10 AND 0  < lon <= 15
  0  < lat <= 10 AND 15 < lon <= 30
  10 < lat <= 20 AND 0  < lon <= 15
  10 < lat <= 20 AND 15 < lon <= 30
  20 < lat <= 30 AND 0  < lon <= 15
  20 < lat <= 30 AND 15 < lon <= 30
]

Nehmen wir nun an, dass unser Modell anhand zweier Merkmale vorhersagen muss, wie zufrieden Hundebesitzer mit Hunden sein werden:

  • Verhaltenstyp (Bellen, Weinen, Kuscheln usw.)
  • Tageszeit

Wenn wir eine Funktion aus diesen beiden Funktionen erstellen:

  [behavior type X time of day]

haben wir am Ende eine deutlich bessere Vorhersagemöglichkeit als jede Funktion. Wenn ein Hund beispielsweise (um 17:00 Uhr) (frühestens der Hund kehrt) von der Arbeit zurückkehrt, ist das wahrscheinlich ein positiver Indikator für die Zufriedenheit des Besitzers. Wenn du um 3:00 Uhr weinst (vielleicht sogar um 0:00 Uhr), wenn der Besitzer tief und fest schläft, ist das ein stark negativer Indikator für die Zufriedenheit des Nutzers.

Lineare Lernende können problemlos auf umfangreiche Daten skaliert werden. Die Verwendung von Funktionsverknüpfungen in riesigen Datasets ist eine effiziente Strategie für das Lernen hochkomplexer Modelle. Neuronale Netzwerke sind eine weitere Strategie.