Du bist ein Flugzeug, das ein feindliches Schiff verfolgt, das über den Ozean fliegt, also hast du eine Reihe von (x, y, Zeit) Koordinaten des Schiffs gesammelt. Sie wissen, dass ein verstecktes U-Boot mit dem Schiff fährt, um es zu schützen, aber während es eine Korrelation zwischen ihren Positionen gibt, wandert das Unterseeboot häufig vom Schiff ab, so während es oft in der Nähe ist, kann es auch auf der anderen Seite des sein Welt gelegentlich. Sie möchten den Weg des U-Boots vorhersagen, aber leider ist es von Ihnen verborgen.
Aber einen Monat im April merkt man, dass das U-Boot vergisst, sich zu verstecken, also haben Sie eine Reihe von Koordinaten für das U-Boot und das Schiff während 1.000 Fahrten. Mit diesen Daten möchten Sie ein Modell erstellen, mit dem Sie den Weg des versteckten U-Boots anhand der Bewegungen des Schiffes vorhersagen können. Die naive Grundlinie wäre zu sagen "U-Boot-Positions-Schätzung=" aktuelle Position des Schiffs ", aber von den April-Daten, wo das U-Boot sichtbar war, merkt man, dass das U-Boot tendenziell ein bisschen vor dem Schiff ist, also" U-Boot-Position rate = Schiffsposition in 1 Minute "ist eine noch bessere Schätzung. Darüber hinaus zeigen die April-Daten, dass, wenn das Schiff für eine längere Zeit im Wasser pausiert, das U-Boot ist wahrscheinlich weit weg patrouillieren die Küstengewässer. Es gibt andere Muster natürlich.
Wie würden Sie dieses Modell aufbauen, wenn die Daten des April als Trainingsdaten verwendet werden, um den Weg des U-Bootes vorherzusagen? Meine derzeitige Lösung ist eine lineare Ad-hoc-Regression, bei der die Faktoren "Reisezeit", "Frachtschiff x Koordinate", "war Frachtschiff im Leerlauf für 1 Tag" etc. und dann R herauszufinden die Gewichte und ein Kreuz -validierung. Aber ich würde wirklich einen Weg lieben, diese Faktoren automatisch aus den April-Daten zu generieren. Auch wäre ein Modell, das Sequenz oder Zeit verwendet, schön, da die lineare Regression nicht und ich denke, dass es relevant ist.
Bearbeiten: Ich habe das Problem mit einer erfundenen Geschichte neu formuliert, so dass es weniger verwirrend ist. Das ursprüngliche Problem, das ich gepostet habe, ist:
Ich habe Eye-Tracking-Daten zu zwei Themen - einem Lehrer und einem Schüler. Es ist in der Form (x, y, Zeit), also gibt es eine Reihe von diesen für jedes Thema. Was der Lehrer betrachtet, beeinflusst, was der Schüler betrachtet. Welche Methode würde ich verwenden, um vorherzusagen, was der Schüler betrachtet, wenn nur Lehrerdaten verwendet werden? Nehmen wir an, ich kann einen Lernalgorithmus mit einem Goldstandardsatz von Schüler- und Lehrerdaten trainieren.
Ich dachte, dass das versteckte Markov-Modell angesichts der Definition in Wikipedia angemessen wäre, aber ich bin mir nicht sicher, wie ich dies über meinen Datensatz umsetzen könnte.
Mehr Details: Ich habe Daten darüber, wie ein Lehrer und ein Schüler sich jeweils eine Karte und einige Lesungen ansehen. Ich habe 40 dieser Datensätze, die wie [(366,234,0), (386,234,5), ...] aussehen, was bedeutet, dass der Lehrer zum Zeitpunkt 0 auf Punkt (366,234) schaute und dann 5 Sekunden später nach oben schaute Koordinate (386, 234). Ich kann ein Modell lernen, um die Beziehung zwischen dem Inhalt eines Lehrers und der Vorhersage, wie ein Schüler den gleichen Inhalt betrachtet, zu verstehen. Vielleicht sieht der Schüler den Inhalt in der gleichen Reihenfolge wie der Lehrer, aber langsamer. Oder vielleicht sieht sich der Schüler nicht so viel um, aber der Lehrer scannt mehr von dem Inhalt. Ich habe beide Datensätze und möchte sehen, wie genau ein Modell ist, das ich bekommen kann - wäre ich in der Lage, das Verhalten des Schülers innerhalb von 50px des Verhaltens des Lehrers vorherzusagen?
Ich würde vorschlagen, Kalman-Filter oder, allgemeiner gesagt, Zustandsraummodelle (SSMs) zu betrachten, die werden durch das unten empfohlene Buch wie "genau wie ein HMM, außer dass die verborgenen Zustände kontinuierlich sind" definiert.
Ich kann ein Buchkapitel zu diesem Thema empfehlen - Kapitel 18 in Kevin P. Murphys "Machine Learning: a Probabilistic Approach"; Es gibt auch Online-Ressourcen (Kalman-Filter nachschlagen), aber ich kann keine spezifischen empfehlen.
EDIT: hier Referenzen zur Verwendung von Kalman-Filtern mit R zur Vorhersage von Zeitreihen.
Hoffe, das hilft,
Tags und Links machine-learning time-series hidden-markov-models