[Java] LibSVM Eingabeformat


Answers

Ich glaube, es gibt eine unausgesprochene Annahme in den vorherigen Antworten. Die unausgesprochene Annahme ist, dass Benutzer von libSVM wissen, dass sie es vermeiden sollten, kategoriale Daten in den Klassifikator zu legen.

Zum Beispiel weiß libSVM nicht, was mit den Ländercodes zu tun ist. Wenn Sie versuchen, vorherzusagen, welche Besucher am wahrscheinlichsten etwas auf Ihrer Website kaufen, könnten Sie Probleme haben, wenn die USA in Ihrer Ländercodeliste zwischen Tschad und Niger stehen. Die Ausbuchtungen aus den USA werden wahrscheinlich die Vorhersagen für die Länder in der Nähe verzerren.

Um dies zu beheben, würde ich für jedes betrachtete Land eine Kategorie erstellen (und vielleicht eine andere Kategorie). Dann würde ich für jede Instanz, die Sie klassifizieren möchten, alle Länderkategorien auf null setzen, mit Ausnahme desjenigen, zu dem die Instanz gehört. (Um dies mit dem Dateiformat libSVM sparse zu tun, ist dies nicht wirklich eine große Sache).

Question

Ich möchte eine Reihe von markierten Instanzen (Daten) in einer Datei darstellen, die als Trainingsdaten an LibSVM übergeben werden. Für das Problem, das in dieser Frage erwähnt wird. Es wird einschließen,

  1. Anmeldedatum
  2. Anmeldezeit
  3. Ort (Ländercode?)
  4. Wochentag
  5. Authentizität (0 - Nicht Authentisch, 1 - Authentisch) - Das Label

Wie kann ich diese Daten so formatieren, dass sie in die SVM eingegeben werden?