Thuật toán để chuẩn hóa thời gian thực của dữ liệu chuỗi thời gian?


12

Tôi đang làm việc trên một thuật toán lấy một vectơ của điểm dữ liệu gần đây nhất từ ​​một số luồng cảm biến và so sánh khoảng cách euclide với các vectơ trước đó. Vấn đề là các luồng dữ liệu khác nhau là từ các cảm biến hoàn toàn khác nhau, do đó, việc lấy một khoảng cách euclide đơn giản sẽ quá tập trung vào một số giá trị. Rõ ràng, tôi cần một số cách để bình thường hóa dữ liệu. Tuy nhiên, vì thuật toán được thiết kế để chạy trong thời gian thực, tôi không thể sử dụng bất kỳ thông tin nào về bất kỳ luồng dữ liệu nào trong toàn bộ quá trình chuẩn hóa. Cho đến nay tôi chỉ theo dõi giá trị lớn nhất được thấy cho mỗi cảm biến trong giai đoạn khởi động (500 vectơ dữ liệu đầu tiên) và sau đó chia tất cả dữ liệu trong tương lai từ cảm biến đó cho giá trị đó. Điều này đang làm việc tốt đáng ngạc nhiên, nhưng cảm thấy rất không phù hợp.

Tôi đã không gặp nhiều may mắn khi tìm thấy một thuật toán có sẵn cho việc này, nhưng có lẽ tôi chỉ không tìm đúng chỗ. Có ai biết về một? Hoặc có bất kỳ ý tưởng? Tôi đã thấy một đề xuất sử dụng một giá trị trung bình đang chạy (có thể được tính theo thuật toán của Wellford), nhưng nếu tôi làm điều đó thì nhiều lần đọc cùng một giá trị sẽ không hiển thị giống nhau, có vẻ như là một vấn đề khá lớn, trừ khi tôi Tôi đang thiếu một cái gì đó. Bất kỳ suy nghĩ được đánh giá cao! Cảm ơn!

Câu trả lời:


1

Từ câu hỏi của bạn, tôi hiểu rằng bạn đang tìm kiếm:

  1. Tìm cách bình thường hóa sự đóng góp dữ liệu từ mỗi cảm biến.
  2. Xem điểm dữ liệu mới rất khác so với các điểm trước đó.

Đây là nơi tôi sẽ bắt đầu

1.Đối với câu hỏi đầu tiên của bạn: loại bỏ ý nghĩa và làm trắng là những gì bạn đang tìm kiếm. Một biến đổi làm trắng đảm bảo rằng tất cả các tính năng của bạn trong cùng một phạm vi năng động.

Tôi sẽ đưa ra một số giả định đơn giản hóa có thể hoàn toàn phù hợp nhưng hoàn toàn phù hợp làm điểm khởi đầu để xây dựng.

Giả sử rằng dữ liệu của bạn là đơn phương, rằng nó, nó có một nghĩa duy nhất được phát âm. Tôi sẽ bắt đầu bằng cách trừ đi giá trị trung bình của dữ liệu và thực hiện chuyển đổi làm trắng (có thể là PCA, có thể là ZCA tùy thuộc vào dữ liệu của bạn)

Nếu bạn muốn làm điều này trong thời gian thực, tôi sẽ sử dụng số lượng mẫu đang chạy để thực hiện việc làm trắng trên cửa sổ chuyển động. Hãy chắc chắn rằng bạn có đủ mẫu để làm trắng chính xác (làm trắng cần ma trận hiệp phương sai không thể đảo ngược và bạn cần nhiều mẫu tạm thời hơn so với cảm biến của bạn).

Bây giờ nếu dữ liệu của bạn không phải là không chính thống, tôi có thể sẽ phân cụm dữ liệu để xem các chế độ nằm ở đâu. Ở mức cơ bản, đối với mỗi điểm mới đến, tôi sẽ xác nhận nó đến cụm thích hợp và di chuyển từ đó.

2. Để đo khoảng cách hiệu quả từ các điểm trong quá khứ, tôi sẽ sử dụng khoảng cách Mahalanobis . Trong thực tế, khoảng cách Mahalanobis là khá nhiều khoảng cách Euclide trong không gian trắng.

Tóm lại, xin vui lòng đọc về làm trắng và khoảng cách Mahalanobis, tôi nghĩ rằng những điều này sẽ chỉ cho bạn theo hướng bạn tìm kiếm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.