In diesem Modul haben wir uns mit Möglichkeiten zur Zuordnung von Rohdaten zu geeigneten Featurevektoren befasst. Gute numerische Features haben die in diesem Abschnitt beschriebenen Eigenschaften.
eindeutig benannt
Jedes Element sollte für alle am Projekt beteiligten Personen eine klare, sinnvolle und offensichtliche Bedeutung haben. Die Bedeutung des folgenden Featurewerts ist beispielsweise verwirrend:
Nicht empfohlen
house_age: 851472000
Im Gegensatz dazu sind der folgende Featurename und Wert viel verständlicher:
Empfohlen
house_age_years: 27
Vor dem Training geprüft oder getestet
In diesem Modul haben wir viel Zeit auf Ausbrüche verwendet. Das Thema ist jedoch so wichtig, dass es noch einmal erwähnt werden sollte. In einigen Fällen sind nicht schlechte Engineering-Entscheidungen, sondern schlechte Daten für unklare Werte verantwortlich. Der folgende user_age_in_years
stammt beispielsweise aus einer Quelle, in der keine geeigneten Werte geprüft wurden:
Nicht empfohlen
user_age_in_years: 224
Personen können aber 24 Jahre alt sein:
Empfohlen
user_age_in_years: 24
Prüfen Sie Ihre Daten.
Vernünftig
Ein „magischer Wert“ ist eine beabsichtigte Unterbrechung in einer ansonsten kontinuierlichen Funktion. Angenommen, ein kontinuierliches Merkmal namens watch_time_in_seconds
kann jeden Gleitkommawert zwischen 0 und 30 enthalten, aber mit dem magischen Wert -1 die Abwesenheit einer Messung darstellt:
Nicht empfohlen
watch_time_in_seconds: -1
Bei einem Wert von -1 für watch_time_in_seconds
müsste das Modell herausfinden, was es bedeutet, einen Film rückwärts anzusehen. Das resultierende Modell würde wahrscheinlich keine guten Vorhersagen treffen.
Besser ist es, eine separate boolesche Funktion zu erstellen, die angibt, ob ein watch_time_in_seconds
-Wert angegeben ist oder nicht. Beispiel:
Empfohlen
watch_time_in_seconds: 4.82
is_watch_time_in_seconds_defined=Truewatch_time_in_seconds: 0
is_watch_time_in_seconds_defined=False
So können Sie mit einem kontinuierlichen Datensatz mit fehlenden Werten umgehen. Betrachten wir nun ein diskretes numerisches Merkmal wie product_category
, dessen Werte zu einer endlichen Menge von Werten gehören müssen. Wenn in diesem Fall ein Wert fehlt, geben Sie diesen fehlenden Wert mit einem neuen Wert aus dem endlichen Satz an. Bei einem diskreten Merkmal lernt das Modell für jeden Wert unterschiedliche Gewichtungen, einschließlich der ursprünglichen Gewichtungen für fehlende Features.
Mögliche Werte für den Satz könnten beispielsweise so aussehen:
{0: 'electronics', 1: 'books', 2: 'clothing', 3: 'missing_category'}.