Vorhersage mit nichtatomaren Merkmalen

10

Ich möchte nichtatomare Daten als Merkmal für eine Vorhersage verwenden. Angenommen, ich habe eine Tabelle mit folgenden Funktionen:

- Column 1: Categorical - House
- Column 2: Numerical - 23.22
- Column 3: A Vector - [ 12, 22, 32 ]
- Column 4: A Tree - [ [ 2323, 2323 ],[2323, 2323] , [ Boolean, Categorical ] ]
- Column 5: A List [ 122, Boolean ]

Ich möchte zum Beispiel Spalte 2 vorhersagen / klassifizieren.

Ich mache etwas, um automatisch auf Fragen zu antworten, jede Art von Frage, wie "Wo wurde Foo geboren?" ...

Ich stelle zuerst eine Abfrage an eine Suchmaschine, erhalte dann einige Textdaten als Ergebnis und erledige dann das gesamte Parsing (Tagging, Stemming, Parsing, Splitting ...).

Mein erster Ansatz war es, eine Tabelle zu erstellen, jede Zeile mit einer Textzeile und vielen Funktionen wie "Erstes Wort", "Tag des ersten Wortes", "Chunks" usw.

Aber bei diesem Ansatz fehlen mir die Beziehungen zwischen den Sätzen.

Ich würde gerne wissen, ob es einen Algorithmus gibt, der in die Baumstrukturen (oder Vektoren) schaut und die Beziehungen herstellt und alles extrahiert, was für die Vorhersage / Klassifizierung relevant ist. Ich würde lieber etwas über eine Bibliothek wissen, die das macht, als über einen Algorithmus, den ich implementieren muss.

user3798928
quelle
Bitte stellen Sie klar: Sie sagen, Sie möchten Spalte 2 als Feature verwenden, aber dann sagen Sie, Sie möchten Spalte 2 vorhersagen / klassifizieren. Außerdem nennen Sie dieses Feature "nicht atomar" ... meinen Sie, es ist nicht kategorisch?
Logc

Antworten:

7

Wenn es um den Umgang mit vielen unterschiedlichen Arten von Daten geht, insbesondere wenn die Beziehungen zwischen ihnen unklar sind, würde ich dringend eine Technik empfehlen, die auf Entscheidungsbäumen basiert. Die heute beliebtesten sind nach meinem besten Wissen zufällige Wälder und extrem randomisiert Bäume .

Beide haben Implementierungen in sklearn und sind ziemlich einfach zu bedienen. Auf einer sehr hohen Ebene liegt der Grund dafür, dass ein decision treebasierter Ansatz für mehrere unterschiedliche Arten von Daten vorteilhaft ist, darin, dass Entscheidungsbäume weitgehend unabhängig von den spezifischen Daten sind, mit denen sie sich befassen, solange sie Ihre Darstellung verstehen können.

Sie müssen Ihre Daten immer noch in einen Feature-Vektor einpassen, aber basierend auf Ihrem Beispiel scheint dies eine ziemlich einfache Aufgabe zu sein, und wenn Sie bereit sind, Ihre Implementierung etwas tiefer zu vertiefen, könnten Sie sich sicherlich etwas einfallen lassen Eine benutzerdefinierte Baumaufteilungsregel, ohne dass der zugrunde liegende Algorithmus geändert werden muss. Das Originalpapier ist ein ziemlich anständiger Ausgangspunkt, wenn Sie es ausprobieren möchten.

Wenn Sie jedoch pseudostrukturelle Daten aus Ihren Textdaten wünschen, kann ich Ihnen empfehlen doc2vec, diese kürzlich von Google entwickelten Daten zu untersuchen . Ich denke, es gibt derzeit keine guten Open-Source-Implementierungen, aber es ist eine ziemlich einfache Verbesserung des word2vecAlgorithmus, der Implementierungen in mindestens Cund enthält python.

Hoffentlich hilft das! Lassen Sie mich wissen, wenn Sie weitere Fragen haben.

indico
quelle