Algoritma untuk normalisasi data time-series real-time?


12

Saya sedang mengerjakan suatu algoritma yang mengambil dalam suatu vektor dari titik data terbaru dari sejumlah aliran sensor dan membandingkan jarak euclidean ke vektor sebelumnya. Masalahnya adalah bahwa aliran data yang berbeda berasal dari sensor yang sama sekali berbeda, sehingga mengambil jarak euclidean sederhana akan secara dramatis terlalu menekankan beberapa nilai. Jelas, saya perlu beberapa cara untuk menormalkan data. Namun, karena algoritme dirancang untuk berjalan secara waktu nyata, saya tidak dapat menggunakan informasi apa pun tentang aliran data apa pun secara keseluruhan dalam normalisasi. Sejauh ini saya baru saja melacak nilai terbesar yang terlihat untuk setiap sensor pada fase start-up (500 vektor data pertama) dan kemudian membagi semua data masa depan dari sensor tersebut dengan nilai tersebut. Ini bekerja sangat baik, tetapi terasa sangat tidak bagus.

Saya belum beruntung menemukan algoritma yang sudah ada sebelumnya untuk ini, tapi mungkin saya hanya tidak mencari di tempat yang tepat. Adakah yang tahu tentang itu? Atau punya ide? Saya melihat satu saran untuk menggunakan rata-rata berjalan (mungkin dihitung oleh algoritma Wellford), tetapi bahwa jika saya melakukan itu maka beberapa bacaan dengan nilai yang sama tidak akan muncul sebagai sama, yang sepertinya masalah yang cukup besar, kecuali jika saya Saya melewatkan sesuatu. Pikiran apa pun dihargai! Terima kasih!

Jawaban:


1

Dari pertanyaan Anda, saya mengerti bahwa Anda ingin:

  1. Temukan cara yang menormalkan kontribusi data dari masing-masing sensor.
  2. Lihat apakah titik data baru sangat berbeda dari titik sebelumnya.

Di sinilah saya akan mulai

1.Untuk pertanyaan pertama Anda: menghapus mean dan whitening adalah apa yang Anda cari. Transformasi whitening memastikan bahwa semua fitur Anda berada dalam rentang dinamis yang sama.

Saya akan membuat beberapa asumsi penyederhanaan yang mungkin sangat relevan tetapi sangat cocok sebagai titik awal untuk dibangun.

Dengan asumsi bahwa data Anda adalah uni-modal, bahwa itu, ia memiliki rata-rata tunggal yang diucapkan. Saya akan mulai dengan mengurangi rata-rata data dan melakukan transformasi pemutihan (mungkin PCA, mungkin ZCA tergantung pada data Anda)

Jika Anda ingin melakukan ini secara real time, saya akan menggunakan jumlah sampel yang berjalan yang melakukan pemutihan pada jendela bergerak. Pastikan Anda memiliki sampel yang cukup agar pemutihan Anda akurat (whitening membutuhkan matriks kovarians agar tidak dapat dibalik dan untuk itu Anda membutuhkan lebih banyak sampel temporal daripada sensor yang Anda miliki).

Sekarang jika data Anda bukan unimodal, saya mungkin akan mengelompokkan data untuk melihat di mana mode berada. Pada dasarnya, untuk setiap titik baru yang tiba, saya akan memasukkannya ke kelompok yang tepat dan pindah dari sana.

2.Untuk mengukur jarak secara efektif dari titik masa lalu, saya akan menggunakan jarak Mahalanobis . Dalam semua aktualitas, jarak Mahalanobis cukup banyak jarak Euclidean di ruang putih.

Singkatnya, silakan baca tentang pemutihan dan jarak Mahalanobis, saya pikir ini akan mengarahkan Anda ke arah yang Anda cari.

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.