2017-11-26 4 views
0

Ich habe Daten in einer CSV-Datei in folgendem FormatSVM Verwendung von Text mit dem Etikett zur Vorhersage

Name  Power Money 
Jon  Red  30 
George blue 20 
Tom  Red  40 
Bob  purple 10 

ich Werte wie „jon“, „rot“ und „30 als Eingänge betrachte. Jeden Eingang als Label Zum Beispiel haben die Eingänge [jon, george, tom, bob] die Bezeichnung "name". Die Eingänge [rot, blau, lila] haben die Bezeichnung "power". Das ist im Grunde, wie ich Trainingsdaten habe. Ich habe eine Reihe von Werten auf ein Label abgebildet

Jetzt möchte ich Svm verwenden, um ein Modell basierend auf meinen Trainingsdaten zu trainieren, um eine neue Eingabe genau zu identifizieren, was das richtige Label ist. also wenn beispielsweise die Eingabe "444" ist Modell sollte intelligent sein Es sollte jedoch als "Money" -Label kategorisiert werden.

Ich habe py installiert und auch sklearn installiert. Ich habe auch die folgenden tutorial abgeschlossen. Ich bin mir einfach nicht sicher, wie ich Eingabedaten für das Modell trainieren soll.

Auch ich bin neu im maschinellen Lernen, wenn ich etwas gesagt habe, das falsch oder seltsam klingt, bitte weisen Sie es darauf hin, da ich glücklich sein werde, das Richtige zu lernen.

+2

Wie Sie erklären, ist es vielleicht besser, nur nach der Kategorie in Ihren Daten zu suchen, anstatt maschinelles Lernen darauf zu machen. Was passiert auch, wenn die gleiche Zeichenfolge in zwei oder mehr Kategorien vorhanden ist? Wie Violet, das eine Farbe oder ein Name sein kann. –

+1

Sie sollten Ihre Frage aktualisieren. Momentan sieht es so aus, als hättest du 6 Klassen und es ist ein einfacher Hashmapp-Lookup als ein ML-Problem. Vor allem ohne MWE ist es schwierig, Ihnen nützliche Vorschläge zu geben. – jonnybazookatone

+0

@VivekKumar Ja ich sehe deinen Standpunkt. Ich habe die Frage bearbeitet, bitte sagen Sie mir, ob das mehr Sinn macht. – Unknowntiou

Antwort

1

Mit wie Ihre aktuelle Frage formuliert wird, beschäftigen Sie sich nicht mit einem typischen maschinellen Lernproblem. Derzeit haben Sie spaltenweise Daten:

Name  Power Money 
Jon  Red  30 
George blue 20 
Tom  Red  40 
Bob  purple 10 

Wenn ein Benutzer nun „Jon“ eingibt, Sie wissen, dass es Typ „Name“ wird sein, durch eine einfache Hash-Karte nachschauen, zB ,:

Der Hauptgrund, warum Leute sagen, dass es kein maschinelles Lernproblem ist, ist Ihre "Kategorisierung" oder "Vorhersage" wird durch Ihre Spaltennamen definiert. Probleme beim maschinellen Lernen, stattdessen (typischerweise), werden einige Antwortvariablen vorhersagen. Zum Beispiel vorstellen, anstatt Sie diese gebeten hatte:

Name  Power Money Bought_item 
Jon  Red  30  yes 
George blue 20  no 
Tom  Red  40  no 
Bob  purple 10  yes 

wir ein Modell bauen konnte Bought_item Nutzung der Funktionen Namen, Strom und Geld mit SVM prognostizieren.

Ihr Problem würde mehr wie folgt aussehen:

Feature1 Feature2 Feature3 Category 
1.0  foo  bar  Name 
3.1  bar  foo  Name 
23.4  abc  def  Money 
22.22 afb  dad  Power 
223.1 dad  vxv  Money 

Sie dann Feature1 verwenden Feature2 und Feature3Kategorie vorherzusagen. Im Moment gibt Ihre Frage nicht genügend Informationen, damit jemand wirklich versteht, was Sie brauchen oder was Sie auf diese Weise neu formulieren müssen, oder überlegen Sie sich einen unbeaufsichtigten Ansatz.

bearbeiten:

es also auf diese Weise umrahmen:

Name  Power Money Label 
Jon  Red  30  Foo 
George blue 20  Bar 
Tom  Red  40  Foo 
Bob  purple 10  Bar 

OneHotEncode Name und Macht, so haben Sie jetzt eine Variable für jeden Namen, der 0/1 sein kann.

Standardisieren Sie Geld, so dass es einen Bereich zwischen ungefähr -1/1 hat.

LabelEncode Ihre Etiketten, so dass sie 0,1,2,3,4,5,6 und so weiter sind.

Verwenden Sie einen Ein-gegen-Alle-Klassifikator, http://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html.

+0

Danke für das Feedback, ich habe gerade meine Frage basierend auf Ihrem Feedback bearbeitet. Ich glaube, dass dies ein Problem des überwachten Lernens ist, da ich einige Daten mit Etiketten haben werde und ich ein Modell trainieren möchte, um neue Datenpunkte basierend auf früheren Lernerfahrungen vorherzusagen. Bitte lassen Sie mich wissen, wenn Sie mich brauchen, um dies weiter zu klären. – Unknowntiou

+0

Sie geben zu wenig Informationen für ein Problem mit einem großen Umfang. Sie haben eine einzige Eingabefunktion mit 3 möglichen Beschriftungen. Sie brauchen keinen ML-Ansatz, um zu wissen, dass '444' eine Ganzzahl ist, und daher ist es Geld. Das gleiche mit Power, hast du eine Liste von Farben, die immer Macht bedeuten? Wenn ja, können Sie eine einfache Hashmap aller möglichen Farben erstellen, um sie als Farbe zu klassifizieren. – jonnybazookatone

+0

Ich würde definitiv mehr als 3 Etiketten haben, während das Problem gelöst wird. Ich entschied mich einfach 3 zu bleiben. Die bereitgestellten Kategorien sind vereinfacht, sodass ich mich auf den Schritt der Vorbereitung von Daten für das SVM-Modell konzentrieren kann. WENN das mein wirkliches Problem war, dann stimme ich zu, dass hashmap der richtige Weg ist. – Unknowntiou

Verwandte Themen