Umgang mit Merkmalsvektoren variabler Länge

8

Wie geht man mit einem Merkmalsvektor um, dessen Größe variieren kann?

Nehmen wir an, ich berechne pro Objekt 4 Merkmale. Um ein bestimmtes Regressionsproblem zu lösen, habe ich möglicherweise 1, 2 oder mehr dieser Objekte (nicht mehr als 10). Somit ist der Merkmalsvektor 4 · N lang. Wie wird das normalerweise angegangen?

Die Objekte repräsentieren physische Objekte (z. B. andere Personen) eines Beobachters. Für eine Zeitscheibe kann ein Objekt seitlich und in Längsrichtung platziert werden, eine gewisse Geschwindigkeit und eine gewisse Richtung haben (4 Merkmale). Der Versuch zu lösen: Wo sollte sich eine Person am wohlsten fühlen? In einigen Fällen gibt es nur 1 Objekt, aber es können 2 oder mehr sein.

Haftungsausschluss : Ich habe nur begrenzte Kenntnisse über ML-Ansätze. Ich hatte vor Jahren Unterricht am College und nahm Andrew Ngs ML-Kurs online als Auffrischung, aber ansonsten nicht auf dem neuesten Stand. Ein Ausgangspunkt zum Anschauen wird geschätzt.

Otto Nahmee
quelle
Können Sie uns etwas mehr über Ihre Objekte und das Regressionsproblem erzählen? Dies könnte Einfluss darauf haben, wie Sie mit der Feature-Codierung umgehen sollten.
Imran
@Imran Die Objekte repräsentieren physische Objekte (z. B. andere Personen) eines Beobachters. Für eine Zeitscheibe kann ein Objekt seitlich und in Längsrichtung platziert werden, eine gewisse Geschwindigkeit und eine gewisse Richtung haben (4 Merkmale). Der Versuch zu lösen: Wo sollte sich eine Person am wohlsten fühlen? In einigen Fällen gibt es nur 1 Objekt, aber es können 2 oder mehr sein.
Otto Nahmee
@ Emmre Aktualisierte die ursprüngliche Frage mit dem Beispiel
Otto Nahmee
Danke für die Klarstellung. Haben Sie ein gekennzeichnetes Trainingsset, z. B. eine Liste von Szenarien, in denen jemand von diesen Objekten umgeben ist, und Sie haben den richtigen Ort markiert, an dem er sich am wohlsten fühlen sollte?
Imran
@ Imran Noch kein komplettes Set - das ist etwas, das ich noch
sammle

Antworten:

3

Zunächst einmal herzlich willkommen in der Community!

Zu der Frage würde ich sagen, dass es Missverständnisse gibt. Sie sagen, Sie berechnen 4 Merkmale "pro Objekt". Dies bedeutet, dass jeder Datenpunkt (Objekt) mit 4 Merkmalen beschrieben wird. Die Länge der Features ist also nicht unterschiedlich. Bitte beachten Sie, dass ich dies sage, weil "Sie Merkmale für Ihre Proben / Datenpunkte / Objekte berechnen", sodass jedes Objekt hier ein Punkt im 4-dimensionalen Raum ist. Wenn Sie etwas anderes meinen, korrigieren Sie mich bitte.

Mit anderen Worten, Sie haben eine Datenmatrix mit einigen Zeilen (Anzahl der Objekte) und 4 Spalten.

Allgemeiner über das gesamte Konzept. Nein, dies ist kein gültiger Ansatz zum Erstellen von Standarddaten. In Standarddaten ist die Anzahl der Spalten immer gleich, da Sie Objekte nicht untersuchen können, wenn sie in verschiedenen Räumen definiert sind. Viele ML-Algorithmen arbeiten auch mit Standarddaten, was bedeutet, dass Sie sie nicht verwenden können, wenn die Größe der Merkmalsvektoren variiert. Sozusagen konzeptioneller kann die Größe der Features, die Sie für Objekte berechnen, nicht variieren. Wie? Ich möchte Features aus Gesichtern extrahieren. Ich sage Augenfarbe , Abstand zwischen den Augen und Abstand zwischen den Ohren . Ich habe 3 Funktionen und für jede Person, die zu meiner Studie kommt, berechne ich die gleichen Funktionen. Wie kann die Größe unterschiedlich sein, wenn der Merkmalsextraktionsprozess Standard ist?

Bei nicht standardmäßigen Daten kann es jedoch zu einem solchen Fall kommen. In diesem Fall können Sie die Funktionen standardisieren. Stellen Sie sich beispielsweise als Babybeispiel verschiedene Diagramme mit unterschiedlicher Anzahl von Knoten und Kanten vor. Sie können jedes Diagramm mit seinem durchschnittlichen Grad , seiner durchschnittlichen Pfadlänge und der Anzahl der Knoten beschreiben . Anschließend wird jedes Diagramm mit drei Funktionen beschrieben, die Sie in einen Algorithmus einspeisen können.

Wenn Sie die Daten jedoch nicht standardisieren möchten (da sie normalerweise zu Informationsverlusten führen), müssen Sie maßgeschneiderte Analysemethoden finden, für die Sie mehr über Ihre Daten erklären müssen.

Ich hoffe es hat geholfen!

Viel Glück!

Kasra Manshaei
quelle
Vielen Dank! Sie haben erwähnt, dass in Standarddaten die Anzahl der Spalten immer gleich ist. Kann ich zu Recht sagen, dass dies auch für Zeilen gilt, sodass in Standarddaten die Anzahl der Spalten und Zeilen immer gleich ist ?
Otto Nahmee
1
Nein Nein Nein ... Die Anzahl der Spalten ist ein Feature, daher sollten sie gleich sein. Die Anzahl der Zeilen entspricht jedoch der Größe Ihrer Daten. Sie können 3 Funktionen von 10 Personen oder von 20 Personen oder von nur 1 Person extrahieren. Mit anderen Worten, wenn Sie Punkte in X-, Y- und Z-Koordinaten anzeigen, können Sie 3 Punkte oder 10 Punkte anzeigen. Sie können variieren, aber X, Y und Z sind feste Koordinaten.
Kasra Manshaei
Ich habe ein solches Szenario, in dem ich eine unterschiedliche Anzahl von Schnittstellen für verschiedene Netzwerkgeräte habe. Hier kann ich nicht den Durchschnitt aller Schnittstellen ermitteln, da alle Schnittstellen unterschiedlich sind. Ich werde mich für "maßgeschneiderte Analysemethoden" entscheiden, wie Sie bereits erwähnt haben. Falls ich das Problem nicht lösen kann, werde ich mein Problem auf jeden Fall klar erklären und mich bei Ihnen melden. @ KasraManshaei
debaonline4u
1
@ debaonline4u sicher! Gerne helfen wir Ihnen weiter!
Kasra Manshaei
1

OK, es hört sich so an, als würden Sie versuchen, die Position und Geschwindigkeit einer variablen Anzahl von Objekten in jedes Trainingsbeispiel zu kodieren.

Eine Möglichkeit, dies zu tun, besteht darin, zwei Merkmalsebenen pro Trainingsbeispiel als Kanaleingänge in ein Faltungs-Neuronales Netzwerk zu verwenden. Die erste Merkmalsebene codiert die x-Komponente der Geschwindigkeit für jedes Objekt an der Position dieses Objekts, und die zweite macht dasselbe für die y-Komponente.

Da Sie sagten, die Positionen beziehen sich auf den Beobachter, gehe ich davon aus, dass sich der Beobachter immer am selben Ort befindet, sodass keine zusätzlichen Informationen zu den Eingaben hinzugefügt werden müssen.

Ich gehe auch davon aus, dass sich zwei Objekte nicht am selben Ort befinden können.

Angenommen, Sie befinden sich in einer 3x3-Welt und haben Objekte bei (0,1) und (2,2) mit den Geschwindigkeiten (3,2) bzw. (1,7). Dieses Eingabebeispiel könnte wie folgt codiert werden:

[ 0 0 0
  3 0 0
  0 0 1 ]

[ 0 0 0
  2 0 0
  0 0 7 ]

Wie Sie sehen, ist die Eingabegröße immer gleich, unabhängig davon, wie viele Objekte vorhanden sind. Mehr Objekte führen nur zu mehr Einträgen ungleich Null.

Ich habe ein Conv-Netz vorgeschlagen, da es besonders gut bei räumlichen Problemen funktioniert. Wenn Sie jedoch zuerst ein neuronales Vanille-Netzwerk ausprobieren möchten, können Sie Ihre Eingabeform von (m, 3,3,2) auf (m, 12) reduzieren.

Imran
quelle
Danke, das ist ein ziemlich interessanter Ansatz. Gibt es die Einschränkung, dass ich den Bereich der Eingänge diskretisieren muss? Bei einem Regressionsproblem können die Werte stetig sein. Gibt es hier etwas, das getan werden kann, um kontinuierliche Werte darzustellen?
Otto Nahmee