Was sind einige Ansätze zur Klassifizierung von Daten mit einer variablen Anzahl von Features?
Betrachten Sie als Beispiel ein Problem, bei dem jeder Datenpunkt ein Vektor von x- und y-Punkten ist und wir nicht für jede Instanz die gleiche Anzahl von Punkten haben. Können wir jedes Paar von x- und y-Punkten als Feature behandeln? Oder sollten wir die Punkte einfach irgendwie zusammenfassen, damit jeder Datenpunkt eine feste Anzahl von Merkmalen hat?
machine-learning
missing-data
Jergason
quelle
quelle
Antworten:
Sie können diese Punkte als fehlend behandeln, dh. Nehmen wir an, dass der Vektor höchstens 20 (x, y) Paare und ein bestimmter Punkt höchstens 5 (x, y) Paare hat. Behandeln Sie in diesem Fall den Rest der Paare als fehlend und wenden Sie dann Standardverfahren für fehlende Parameter an:
Diese Standardverfahren können sein:
Aber als @jonsca-Punkte --- Wenn das Vorhandensein eines fehlenden Punkts beim Klassifizieren der Daten hilfreich ist, sollten Sie zum Beispiel ein paar Modelle erstellen, von denen jedes Instanzen mit einer bestimmten Anzahl von Punkten modelliert.
quelle
Soweit ich Ihre Frage verstehe, sind die Punkte in den Daten austauschbar und werden nicht sortiert, dh Sie haben für jedes Beispiel einen Punktesatz. Diese Einstellung unterscheidet sich von der Einstellung "Fehlender Wert" in jb. beschrieben.
Ich kenne zwei häufig verwendete Methoden für dieses Problem, die tatsächlich auf Ihren Ideen basieren. Eine gute Basis wäre wahrscheinlich, nur alle Punkte innerhalb eines Beispiels zu mitteln, aber das funktioniert normalerweise nicht gut.
Um mehrere Punkte zu einem einzigen Merkmal zusammenzufassen, werden häufig Wortmischungen (oder Merkmalsmischungen) verwendet, beispielsweise in der Bildverarbeitung. Die Idee ist, alle Punkte in Ihrem Trainingssatz zu gruppieren (zum Beispiel mit k-means) und dann jeden Punkt durch seinen Cluster zu beschreiben. Für jedes Beispiel erhalten Sie dann ein Histogramm, über welche Cluster wie oft aufgetreten sind.
Um alle Punktepaare zu verwenden, können Sie gesetzte Kernel verwenden. Dies funktioniert möglicherweise am besten mit SVMs, funktioniert jedoch wahrscheinlich auch mit jedem Lernalgorithmus, der kernelisiert werden kann oder eine Kompatibilitätsfunktion zwischen Eingaben verwendet. Set-Kernel sind im Grunde genommen eine Möglichkeit, die Ähnlichkeit zweier Feature-Sets wie in Ihrer Einstellung zu berechnen.
quelle