Maschinelles Lernen mit kategorialen und kontinuierlichen Daten

9

Diese Frage könnte hier oder auf SO vielleicht gehen ...

Angenommen, Ihr Trainingsdatensatz enthält sowohl kategoriale als auch kontinuierliche Daten wie dieses Setup:

 Animal, breed,  sex, age, weight, blood_pressure, annual_cost
 cat,    calico, M,   10,  15    ,   100         , 100 
 cat,    tabby,  F,   5,   10    ,   80          , 200
 dog,    beagle, M,   3,   30    ,   90          , 200
 dog,    lab,    F,   8,   75    ,   80          , 100

Und die vorherzusagende abhängige Variable sind die jährlichen Tierarztkosten. Ich bin etwas verwirrt über die spezifischen Techniken, die für den Umgang mit einem solchen Datensatz verfügbar sind. Welche Methoden werden üblicherweise verwendet, um mit Datensätzen umzugehen, die eine Mischung aus kontinuierlichen und kategorialen Daten sind?

Reptilicus
quelle

Antworten:

8

Für jede Klasse (Rasse, Geschlecht ...) von kategorialen Attributen können Sie Ihrem Feature-Vektor eine Anzahl von Komponenten hinzufügen, die der Anzahl der möglichen Werte in dieser Klasse entspricht. Wenn ein Datenpunkt den i-ten Wert hat, setzen Sie die i-te dieser Komponenten auf 1 und den Rest für dieses Attribut auf 0.

In Ihrem Beispiel würden Sie Ihrem Feature-Vektor für das Geschlecht zwei neue Komponenten hinzufügen. Wenn das Tier männlich ist, würden Sie das erste auf 1 und das zweite auf 0 setzen und umgekehrt, wenn das Tier weiblich ist. Wenn Ihre Möglichkeiten für Tiere Katze, Hund und Fisch wären, würden Sie dasselbe mit drei Komponenten tun.

Diese würden neben den kontinuierlichen Attributen koexistieren. Möglicherweise möchten Sie die Größe des "Indikatorwerts" (den Wert, den Sie verwenden, wenn ein Attribut aktiviert ist) so anpassen, dass er mit den Größen der von Ihnen verwendeten kontinuierlichen Werte vergleichbar ist.

Wenn Sie sich für diese Vorgehensweise entschieden haben, besteht der nächste Schritt darin, einen Algorithmus wie eine Support-Vektor-Maschine auszuwählen und diesen mit Ihrem Feature-Vektor zu versorgen. Natürlich würden einige Ansätze wie Entscheidungsbäume den oben erwähnten Schritt zunächst nicht benötigen.

DJLamar
quelle
1
Coole, tolle Tipps! Was ist mit der möglichen Situation in den Testdaten, in der die Rasse nie in den Trainingsdaten auftauchte? Zum Beispiel, wenn die Testdaten einen Pudel enthielten, aber nicht die Trainingsdaten? Wäre der beste Weg, nur Nullen für alle Komponenten des Rassenvektors zu haben?
Reptilicus
2
Tatsächlich ist der umgekehrte Ansatz (bekannt als Datendiskretisierung) normalerweise die beste Wahl für hierarchische Methoden (wie Entscheidungsbaumalgorithmen). Die Datendiskretisierung ist auch eine Datenvorverarbeitungstechnik (wie in der anderen Antwort erwähnt).
rvcoutinho
2

Sie sollten sich die Datenvorverarbeitung ansehen . Es ist vor jeder maschinellen Lerntechnik. Hier ist eine gute Einführung (bei Google zu finden).

In Bezug auf die Techniken gibt es viele verschiedene Ansätze . Sie können wahrscheinlich die meisten davon verwenden, nachdem Sie Ihre Daten vorverarbeitet haben. Sie sollten sie ausprobieren und diejenige auswählen, die Ihren Anforderungen am besten entspricht.

rvcoutinho
quelle