Các tính năng để phân loại chuỗi thời gian


43

Tôi xem xét vấn đề phân loại (đa lớp) dựa trên chuỗi thời gian có độ dài biến T , nghĩa là tìm hàm thông qua một đại diện toàn cầu của chuỗi thời gian bởi một tập hợp lựa chọncác tính năng v i cố định kích thước D độc lập của T , φ ( X T ) = v 1 , ... , v DR , và sau đó sử dụng phương pháp phân loại tiêu chuẩn trên bộ tính năng này. Tôi không quan tâm đến dự báo, tức là dự đoán x T + 1

f(XT)=y[1..K]for XT=(x1,,xT)with xtRd ,
viDT
ϕ(XT)=v1,,vDR ,
xT+1. Ví dụ: chúng tôi có thể phân tích cách một người đi bộ để dự đoán giới tính của người đó.

Các tính năng tiêu chuẩn mà tôi có thể tính đến là gì? Ví dụ, rõ ràng chúng ta có thể sử dụng giá trị trung bìnhphương sai của serie (hoặc các khoảnh khắc bậc cao hơn) và cũng xem xét miền tần số, giống như năng lượng chứa trong một khoảng thời gian của Biến đổi Fourier rời rạc của serie (hoặc Biến đổi Wavelet rời rạc ).

Câu trả lời:


45

Tính năng thống kê đơn giản

  • Có nghĩa là trong mỗi kích thước d
  • Độ lệch chuẩn của kích thước d
  • Skewness , Kurtosis và khoảnh khắc thứ tự cao hơn của kích thước d
  • Giá trị tối đatối thiểu

Phân tích thời gian serie tính năng liên quan

  • Các d×d1 Cross-Tương quan giữa mỗi chiều và d Auto-Tương quan
  • Đơn đặt hàng của phần tự phát (AR), tích hợp (I) và phần trung bình di chuyển (MA) của mô hình ARIMA ước tính
  • Các thông số của phần AR
  • Các thông số của phần MA

Các tính năng liên quan đến miền tần số

Xem Morchen03 để nghiên cứu về các tính năng bảo tồn năng lượng trên DFT và DWT

  • k d
  • k

1
Emile, Câu hỏi này tương tự như câu hỏi tôi vừa đặt ra ( stats.stackexchange.com/questions/51475/ Ấn ). Bạn có thể đăng bất kỳ mã R nào cho các tính năng DFT không?
B_Miner

Có phương pháp nào dựa trên shapelets cho chuỗi thời gian có độ dài thay đổi không?
Simone

8

Emile, tôi nghĩ rằng các tính năng được liệt kê trong câu trả lời của bạn là điểm khởi đầu khá tốt, mặc dù như mọi khi, tôi nghĩ rằng một số chuyên môn về miền (hoặc ít nhất là suy nghĩ lâu dài) về vấn đề của bạn cũng quan trọng không kém.

Bạn có thể muốn xem xét bao gồm các tính năng được tính toán từ các dẫn xuất (hoặc tích phân) của tín hiệu của bạn. Ví dụ, tôi muốn đặt cược rằng tăng tốc / giảm tốc nhanh là một yếu tố dự báo khá tốt về việc lái xe dễ bị tai nạn. Thông tin đó rõ ràng vẫn còn hiện diện trong tín hiệu vị trí, nhưng nó gần như không rõ ràng.

Bạn cũng có thể muốn xem xét việc thay thế các hệ số Fourier bằng cách biểu diễn gói sóng con hoặc sóng con. Ưu điểm chính của wavelet là chúng cho phép bạn bản địa hóa một tính năng theo cả tần số và thời gian, trong khi các hệ số Fourier truyền thống bị giới hạn chỉ trong thời gian. Điều này có thể đặc biệt hữu ích nếu dữ liệu của bạn chứa các thành phần bật / tắt không đều hoặc có các xung giống như sóng vuông có thể gây rắc rối cho các phương pháp Fourier.


6

Như các câu trả lời khác đã đề xuất, có một số lượng lớn các đặc điểm chuỗi thời gian có thể được sử dụng làm các tính năng tiềm năng. Có các tính năng đơn giản như trung bình, các tính năng liên quan đến chuỗi thời gian như hệ số của mô hình AR hoặc các tính năng rất tinh vi như thống kê kiểm tra của thử nghiệm giả thuyết đầy đủ dickey tăng cường.

Tổng quan toàn diện về các tính năng chuỗi thời gian có thể

Gói tsfresh python tự động trích xuất các tính năng đó. Tài liệu của nó mô tả các tính năng tính toán khác nhau. Bạn có thể tìm thấy các trang với các tính năng được tính toán ở đây .

Tuyên bố miễn trừ trách nhiệm: Tôi là một trong những tác giả của tsfresh.


5

Tôi đề nghị bạn, thay vì sử dụng các phương pháp cổ điển để trích xuất các tính năng được thiết kế bằng tay, hãy sử dụng các bộ tự động . Autoencoder đóng vai trò quan trọng trong việc trích xuất tính năng của kiến ​​trúc học sâu.

f(XT)XTX^TXT

Hàm nhận dạng có vẻ là một chức năng đặc biệt tầm thường để cố gắng học; nhưng bằng cách đặt các ràng buộc trên mạng, chẳng hạn như bằng cách giới hạn số lượng đơn vị ẩn, chúng ta có thể khám phá cấu trúc thú vị về dữ liệu.

Tính năng trích xuất

Bằng cách này, bạn mong muốn sẽ tương đương với giá trị sản lượng của lớp middlemost trong một autoencoder sâu, Nếu bạn hạn chế số lượng các đơn vị ẩn trong middlemost để .Dϕ(XT)=v1,,vDRD

Ngoài ra, bạn có thể sử dụng nhiều hương vị của bộ mã hóa tự động để tìm giải pháp tốt nhất cho vấn đề của mình.


4

Bài viết được liên kết sẽ phần nào khai sáng, vì nó quan tâm đến vấn đề ít nhiều giống nhau trong bối cảnh khác.

Tóm tắt giấy (trong Lưu trữ Internet)

Giấy PDF


1

Tùy thuộc vào độ dài của chuỗi thời gian của bạn, cách tiếp cận thông thường là ghi dữ liệu thành các phân đoạn, ví dụ 10 giây.

Tuy nhiên, thường trước khi chia chuỗi thời gian thành các phân đoạn, cần phải thực hiện một số tiền xử lý như lọc và từ chối giả. Sau đó, bạn có thể tính toán một loạt các tính năng, chẳng hạn như các tính năng dựa trên tần số (ví dụ: lấy FFT cho mỗi epoch), thời gian (ví dụ: trung bình, phương sai, v.v. của chuỗi thời gian trong epoch đó) hoặc hình thái, (tức là hình dạng của tín hiệu / chuỗi thời gian trong mỗi kỷ nguyên).

Thông thường các tính năng được sử dụng để phân loại các phân đoạn (epoch) của chuỗi thời gian / tín hiệu là dành riêng cho miền nhưng phân tích Wavelet / Fourier chỉ là các công cụ để cho phép bạn kiểm tra tín hiệu của mình trong các miền tần số / tần số thời gian chứ không phải là các tính năng.

Trong một vấn đề phân loại, mỗi kỷ nguyên sẽ có nhãn lớp, ví dụ 'vui' hoặc 'buồn', sau đó bạn sẽ huấn luyện một trình phân loại để phân biệt giữa kỷ nguyên 'vui' và 'buồn' bằng cách sử dụng 6 tính năng được tính cho mỗi kỷ nguyên.

Trong trường hợp mỗi chuỗi thời gian biểu thị một trường hợp duy nhất để phân loại, bạn cần tính toán từng tính năng trên tất cả các mẫu của chuỗi thời gian. FFT chỉ có liên quan ở đây nếu tín hiệu là bất biến thời gian tuyến tính (LTI), nghĩa là nếu tín hiệu có thể được coi là đứng yên trong toàn bộ chuỗi thời gian, nếu tín hiệu không đứng yên trong khoảng thời gian quan tâm, phân tích sóng con có thể thích hợp hơn Cách tiếp cận này có nghĩa là mỗi chuỗi thời gian sẽ tạo ra một vectơ đặc trưng và sẽ tạo thành một trường hợp để phân loại.


Tôi luôn cảm thấy rằng việc phá vỡ chuỗi thời gian, một quá trình liên tục tự nhiên, thành các khoảng thời gian riêng biệt (hoặc kỷ nguyên), dẫn đến việc mất thông tin. Trừ khi có các kỷ nguyên tự nhiên trong chuỗi, làm thế nào để chọn kỷ nguyên? Kỷ nguyên có khả năng có thể được tìm thấy phù hợp với bất kỳ kết quả mong muốn.
Cam.Davidson.Pilon

1
Không chắc chắn rằng một epoch có thể được tìm thấy phù hợp với mọi kết quả nhưng đối với bất kỳ vấn đề thực tế nào Với tín hiệu không cố định, bạn cần tìm cách nào đó để tính đến các biến đổi theo thời gian (nếu một chuỗi tín hiệu / chuỗi thời gian được mô tả đầy đủ hoặc là bất biến thời gian tuyến tính Điều này không cần thiết). Độ dài kỷ nguyên một lần nữa là miền cụ thể nhưng thường được chọn là đủ ngắn để tín hiệu đứng yên trong khoảng thời gian (epoch) quan tâm.
BGreene

BGreene, bạn có thể giải thích lợi ích của việc phân chia serie thành epochs để chọn các tính năng được sử dụng trong phân loại không? Tôi thấy phân vùng này là một trợ giúp cho các tính toán sau này (tức là FFT), nhưng không phải là một cái gì đó liên quan đến việc lựa chọn các tính năng. Có lẽ nó liên quan đến "hình thái" mà bạn đề cập.
Emile

Việc phân vùng thành các kỷ nguyên không liên quan gì đến việc lựa chọn tính năng. Nếu bạn có tín hiệu dài (ví dụ 10 giờ ghi âm được lấy mẫu @ 100Hz) thì để kiểm tra xem tín hiệu thay đổi theo thời gian như thế nào, bạn cần chia nó thành các kỷ nguyên. Trong một vấn đề phân loại, mỗi kỷ nguyên sẽ có nhãn lớp, ví dụ 'vui' hoặc 'buồn', sau đó bạn sẽ huấn luyện một trình phân loại để phân biệt giữa kỷ nguyên 'vui' và 'buồn' bằng cách sử dụng 6 tính năng được tính cho mỗi kỷ nguyên.
BGreene

Ok :) Nó chắc chắn không liên quan đến câu hỏi ban đầu của tôi. Tôi xem xét trường hợp mà lớp nhãn toàn bộ serie. Tôi sẽ chỉnh sửa câu hỏi của mình để thêm một ví dụ rõ ràng.
Emile
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.