Klassifikation von Vektorsequenzen


9

Mein Datensatz besteht aus Vektorsequenzen. Jeder Vektor hat 50 reelle Dimensionen. Die Anzahl der Vektoren in einer Sequenz reicht von 3-5 bis 10-15. Mit anderen Worten ist die Länge einer Sequenz nicht festgelegt.

Einige der Sequenzen (keine Vektoren!) Sind mit einem Klassenlabel versehen. Meine Aufgabe ist es, einen Klassifikator zu lernen, der bei einer gegebenen Folge von Vektoren die Klassenbezeichnung für die gesamte Folge berechnet.

Ich kann die genaue Art der Daten nicht sagen, aber die Art der Sequenzen ist nicht zeitlich begrenzt. Trotzdem kann ein Vektor nicht mit einem Vektor x j ausgetauscht werden, ohne die Bezeichnung zu ändern ( i j ). Mit anderen Worten ist die Reihenfolge der Vektoren wichtig. Die Vektoren selbst sind vergleichbar, beispielsweise ist es sinnvoll, ein Punktprodukt zu berechnen und diesen Ähnlichkeitswert zu verwenden.xichxjichj

Meine Frage ist: Welche Tools / Algorithmen können bei der Klassifizierung solcher Daten helfen?

UPDATE: Die Daten haben eine solche Eigenschaft, dass ein oder sehr wenige Vektoren die Klassenbezeichnung stark beeinflussen.

k

Antworten:


3

Da Sie nicht viele Details preisgeben können, bin ich gezwungen, in meiner Antwort etwas allgemein zu sein. Ich hoffe es wird trotzdem hilfreich sein. Zunächst würde ich nur in Betracht ziehen, die Sequenzen vor der Klassifizierung zu reduzieren (sei es durch Verwendung des Punktprodukts oder etwas anderem), wenn Sie sicherstellen können, dass Sie keine Informationen verlieren, die Sie für die spätere Klassifizierung benötigen. Dieser Ansatz ist also nur möglich, wenn Sie einen Einblick in die Art der Klassifizierung haben. Um ein einfaches Beispiel zu nennen: Wenn die Klassenbezeichnung nur die Anzahl der Vektoren in Ihrer Sequenz ist, können Sie die Klassenbezeichnung aus dem Punktprodukt nicht sehr erfolgreich vorhersagen.

Daher würde ich die vollständige Sequenz als Eingabe für die Klassifizierung verwenden und der Sequenzlänge, die Sie berücksichtigen möchten, ein Maximum auferlegen. Sie können dies tun, indem Sie zuerst die maximale Sequenzlänge m in Ihrem Trainingssatz ermitteln und dann jede Sequenz von 50-dimensionalen Vektoren in einen Vektor der Dimension 50 * m verwandeln, möglicherweise mit einigen fehlenden Werten am Ende, wenn Ihre Sequenz keine hat maximale Länge. Sie möchten diese fehlenden Werte wahrscheinlich entfernen und sie einfach durch Nullen ersetzen.

Von hier aus können Sie zwei Wege gehen: 1.) Sie wenden direkt Klassifizierungsmethoden an, von denen bekannt ist, dass sie für hohe Dimensionen geeignet sind. Probieren Sie etwas Einfaches aus, das nicht viel Stimmung erfordert, wie naive Bayes. Auf diese Weise können Sie sehen, ob dieser Ansatz machbar ist, ohne zu viel Zeit zu verlieren, wenn dies nicht der Fall ist. 2.) Sie versuchen zunächst, die Dimension zu verkleinern und die Art der Klassifizierung besser zu verstehen. Möglicherweise möchten Sie eine Hauptkomponentenanalyse verwenden oder die Korrelation / Assoziation zwischen jeder Vektorkomponente und der Klassenbezeichnung analysieren. Wenn Sie erfolgreich sind, wissen Sie, wie Sie die Dimension Ihrer Eingabe richtig reduzieren können, bevor Sie die Klassifizierung anwenden.

Wenn Sie einer dieser Ideen folgen möchten, beachten Sie bitte, dass die konkreten Details Ihrer Daten und die Klassifizierung die oben vorgeschlagenen Ideen möglicherweise unmöglich machen. Überprüfen Sie daher sorgfältig alle Details, die Sie kennen, aber nicht hier posten können, bevor Sie sicherstellen, dass Sie keine Zeit verschwenden.


0

Die Daten haben eine solche Eigenschaft, dass ein oder sehr wenige Vektoren die Klassenbezeichnung stark beeinflussen.

Der beste (und einfachste) Ansatz wäre wahrscheinlich, einfach einen Klassifikator für jeden Vektor zu trainieren und dann die Vorhersagen über die Vektoren für eine bestimmte Sequenz zu mitteln. Die wichtigen Vektoren würden einen starken Einfluss auf ihre Vorhersagen haben, während die Vorhersagen für die unwichtigen Vektoren nahe bei 0,5 liegen würden (oder ähnlich für ein nicht-binäres Klassifizierungsproblem).


Nicht wirklich. Vor allem, wenn Sie viele Vektoren ohne wichtige Informationen haben. Wenn Sie diesen Weg gehen, dann verwenden Sie auf jeden Fall LSTM :)
Pir
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.