Hallo Julia,
Meine Aufgabestellung verlangt aber explizit zu schauen, ob die Ähnlichkeitssuche mit relationalen Datenbanken lösbar ist
Ich habe eine Weile überlegt, wie ich das angehen würde.
Vermutlich hast Du Sensordaten von einer Anzahl von Bewegungstypen, und von jedem Typ mehrere Messungen. Und dann bekommst Du Sensordaten von einer neuen Messung, und sollst dann sagen: Das war wahrscheinlich eine Kniebeuge, ein Nasebohren oder ein Torwandschuss.
Erster Schritt wäre wohl, die Bewegungsdauer zu normieren, und die Messzeitpunkte der Sensoren von absoluter auf relative Zeitmessung umzustellen.
Im zweiten Schritt würde ich mir die Bewegungskurve jedes einzelnen Sensors anschauen. Es ist anzunehmen, dass alle Sensoren ihre Daten im gleichen Takt liefern, d.h. du hast 100 Messzeitpunkte und von jedem Sensor einen Messwert zu diesem Zeitpunkt. Wenn deine Messungen in dieser Hinsicht nicht vergleichbar sind (z.B. Bewegungstyp "Sprung", Messung 1 hat 157 Messzeiten und Messung 2 hat 132 Messpunkte), dann musst Du normieren. Zum Beispiel auf 100 zeitlich gleich verteilte Messpunkte. Dazu musst Du die Bewegungskurve des Sensors passend interpolieren - im einfachsten Fall linear. Wenn die zeitlichen Abstände der Messungen klein genug sind, sollte das hinreichend sein.
Du brauchst ggf. auch eine räumliche Normierung. Wenn du die Sprungmessung eines Kindes hast, und die Sprungmessung von Dirk Nowitzki, sind die Sensoren unterschiedlich weit voneinander entfernt. D.h. das musst Du auf eine Einheitsgröße skalieren, und hoffen, dass das überhaupt möglich ist. Hier wäre einer der Knackpunkte der Arbeit.
Am Ende hat die Bewegung 100 Datensätze, und zu jedem Datensatz gehört ein Messwert pro Sensor.
Aus deinen Rohdaten von - sagenwirmal - 100 Sprüngen kannst Du nun DEN typischen Sprung herausdestillieren. D.h. du hast pro Sensor und Zeitpunkt 100 Zahlenwerte. Dafür kannst Du Mittelwert und Varianz bestimmen, und hast dann als Sprungcharakteristik 100 Zeitpunkte für N Sensoren, und pro Sensor Mittelwert und Varianz. Für die Ermittlung von Mittelwert und Varianz müsste man bereits eine SQL Abfrage einsetzen können (das wäre aber relativ unwichtig, das ist noch Teil der Datenpräparation).
Jetzt kommt eine unbekannte Bewegung, die Du erkennen sollst. Auch die normierst Du zeitlich und räumlich auf 100 Messzeitpunkte mit je N Sensorwerten.
Jetzt wird es spannend. Vermutlich soll nun EINE SQL Abfrage eine Liste von Kennzahlen liefern, die die Ähnlichkeit der unbekannten Bewegung zu den bekannten Bewegungsmustern beschreibt. Reduzieren wir das mal auf einen Vergleichs-Bewegungstyp. Da müsste man pro Zeitpunkt die Abweichung der gemessenen Bewegung zum "typischen" Sensorwert bestimmen, und dann feststellen, wie "gut" diese Abweichung in Anbetracht der Varianz dieses Sensorwertes ist. Eventuell kann man hier, analog der Methode der kleinsten Quadrate, stärkere Abweichungen höher gewichten als kleine Abweichungen. Und dann summierst Du alle diese Abweichungen und nimmst das als Kennzahl. An Hand deiner Ausgangsbewegungsmuster, aus denen du die charakteristische Bewegung gebildet hast, kannst Du ein Maß dafür finden, welcher Bereich für diese Kennzahl gut oder schlecht ist.
Keine Ahnung ob das zielführend ist. Es ist nur ein grobes Ideengerüst. Du musst Dir deinen Bachelor (oder sagt man dann Bachelorette?) ja auch verdienen 😀
Aber auf jeden Fall ist es nicht NUR mit SQL lösbar, man muss schon einiges an Arbeit in die Datenaufbereitung stecken.
Rolf
--
sumpsi - posui - clusi