Bagaimana cara memetakan lintasan ke vektor?


9

Saya memiliki serangkaian titik data dalam formulir ini (cap waktu, lat, panjang) untuk satu set pengguna. Setiap pengguna memiliki lintasan ketika ia melakukan perjalanan dari titik A ke titik B. Mungkin ada sejumlah titik dari A ke B. Mereka memesan titik data berdasarkan stempel waktu. Saya ingin mengubahnya sebagai vektor untuk melakukan berbagai tugas analisis. Satu pemikiran yang saya miliki adalah melihat belokan dan menjadikannya sebagai dimensi. Saya ingin tahu lebih banyak pendekatan. Yang saya inginkan adalah satu vektor yang mewakili seluruh lintasan, pikirkan itu seperti satu titik untuk lintasan. Sekarang saya punya koleksi titik 3d.

Saya ingin melakukan pencarian kesamaan lintasan. Jika ada dua lintasan yang pada waktunya bepergian berdekatan satu sama lain maka mereka serupa. Pikirkan seperti ini Anda akan pergi dari rumah ke kantor pada jam 9 pagi. Orang lain pada jam 9:10 juga rumahnya untuk bekerja dan berada agak jauh dari Anda. Karena Anda memiliki tempat kerja yang sama, kemungkinan besar Anda akan memiliki lintasan yang sama. Sesuatu seperti classifier yang dibangun di atas lintasan. Saya dapat melakukan deteksi aktivitas dalam lintasan, saya juga dapat melakukan analisis tujuan sumber.


4
Bisakah Anda memberikan contoh transformasi ke vektor? Dari sudut pandang matematika data Anda sudah merupakan kumpulan vektor dalam ruang tiga dimensi, jelas Anda menginginkan sesuatu yang lain. Jadi contohnya akan sangat disambut.
mpiktas

1
Penting juga jenis analisis apa yang harus dijalankan. Sebagai langkah pertama saya akan mencoba ekspansi Karhunen-Loeve pada jalur (vektor secara naif), yang akan "secara otomatis" membangun struktur yang diperlukan untuk menangkap fitur jalur.
Kuarsa

Saya khawatir hasil edit tidak menanggapi komentar oleh @Quartz, yang meminta informasi penting: "tugas analisis" macam apa yang Anda renungkan?
Whuber

1
@ Quartz Kurva geometris yang sama bepergian pada pola kecepatan yang berbeda relevan bagi saya
gizgok

Jawaban:


1

Saya akan mulai dengan warping waktu dinamis . Selama Anda memiliki jarak antara dua titik (lat, panjang), pendekatan ini akan berhasil. Ini menyesuaikan kecepatan gerak yang berbeda. Misalnya, Anda dan saya tinggal di desa yang sama dan pergi bekerja ke pabrik yang sama, tetapi saya mampir di kedai kopi di jalan. Butuh waktu lebih lama bagi saya untuk tiba tetapi kami kurang lebih berada di jalur yang sama, sehingga ukuran kesamaan menyesuaikan untuk skala waktu yang berbeda.

Ini berbeda dari apa yang ada dalam pikiran Anda. Tampaknya Anda ingin membuat satu nilai (vektor) untuk mewakili lintasan, lalu menghitung jarak antar vektor. Saya menyarankan Anda untuk menggunakan ukuran jarak antara lintasan secara langsung, tanpa langkah perantara.


0

Jika Anda hanya mempertimbangkan belokan instan, yaitu perubahan arah, saya tidak berpikir ini akan secara unik menentukan posisi pada contoh waktu berikutnya - kecuali setiap pengguna bepergian pada kecepatan yang diketahui konstan (tidak ada indikasi tentang hal ini dalam pertanyaan Anda) . Karena Anda bergerak melintasi permukaan (bola, saya menduga?), Anda mungkin perlu setidaknya satu detik koordinat untuk menentukan posisi Anda secara unik. Mengapa tidak membangun saja2×N Himpunan [x(t);y(t)] per pengguna dengan cap waktu sebagai parameter, lalu menyatukan ini ke a 1×(2N) vektor [x(t)y(t)] Anda harus memiliki vektor (atau 1×(2N×M.) untuk M.pengguna yang ditandai? Anda juga bisa mengambil busur panjangs(t)untuk jalur yang dilalui sebagai parameter sebagai gantinya. Apakah stempel waktu secara berkala; jika tidak, Anda akan memerlukan vektor terpisah untuk pencarian. PS: Saya tidak bisa melihat tautan dengan statistik; Apakah ini relevan dengan Cross Validated?


0

Untuk setiap pengguna, Anda memiliki dua seri waktu, lat (t) dan panjang (t). Saya pikir itu adalah representasi yang paling sederhana - saya tidak akan mencoba untuk menyulitkan hal-hal dengan mengkonversi ke beberapa definisi belokan, yang tidak hanya akan lebih sulit, tetapi juga akan memerlukan sangat berhati-hati tentang titik awal awal dan memperlakukannya secara berbeda di setiap analisis. (Ini mungkin ribut juga.)

Menyimpan data sebagai lat & seri waktu lama juga membuatnya sederhana untuk penggunaan yang paling mungkin - di mana Anda akan melihat berbagai jendela waktu pada waktu yang berbeda - tidak perlu untuk terus-menerus menghitung ulang titik awal di awal jendela waktu baru sedang dianalisis.

Jika lat & long seri setiap pengguna semuanya disampel pada waktu yang sama persis, seperti disebutkan dalam balasan lain, Anda dapat menggabungkan dua vektor deret waktu menjadi satu vektor panjang. Contoh serupa yang memiliki 5 time series tampak seperti ini:
. Kemudian Anda memiliki satu vektor panjang untuk setiap pengguna yang dapat dianalisis seperti halnya vektor lainnya untuk pengenalan pola, pengukuran jarak, pengelompokan, dll.

Untuk pengukuran jarak antara pengguna, Anda biasanya akan menggunakan formulir tertimbang tergantung pada aplikasi. Misalnya, ketika berfokus pada konvergensi menuju tujuan bersama, Anda akan menambah bobot paling banyak di akhir jendela waktu (apakah melihat perhitungan euclidean, jarak maks, dll.).

Namun, pertanyaan awal tampaknya mengatakan bahwa mungkin ada jumlah titik yang berbeda antara A dan B untuk pengguna yang berbeda. Dan bagaimanapun, bahkan untuk interval pengambilan sampel yang sama, kemungkinan bahwa waktunya tidak persis sama (mungkin berbeda oleh beberapa konstanta karena pengambilan sampel dimulai pada waktu yang berbeda). Selain itu, sangat mungkin bahwa akan ada beberapa data yang hilang. Dalam setiap kasus ini, secara konseptual, Anda harus memikirkan setiap rangkaian waktu dalam bentuk berkelanjutan, mungkin menyesuaikan kurva dengannya, dan menyusun ulang setiap pengguna pada waktu yang sama persis. (Itu analog dengan pengujian ulang yang terjadi dalam analisis foto saat Anda mengecilkan gambar). Maka vektor deret waktu Anda untuk lat & panjang memiliki panjang yang sama dan sesuai dengan waktu yang sama,

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.