Mã hóa Ngày / Giờ (dữ liệu tuần hoàn) cho Mạng thần kinh


12

Làm cách nào để mã hóa ngày và thời gian của một sự kiện cho mạng thần kinh?

Tôi không có chuỗi thời gian liên tục, nhưng một số sự kiện có ngày và thời gian, và tôi phân tích một số loại quan tâm. Sở thích này khác nhau giữa buổi sáng và buổi tối, và khác nhau giữa các ngày trong tuần, và giữa mùa hè và mùa đông, và trước Giáng sinh và Phục sinh, v.v. Và bản thân các sự kiện có sự phân phối không đồng đều mạnh mẽ theo thời gian (nhiều hơn vào ban ngày so với ban đêm, một số loại nhiều hơn trong tuần, một số vào cuối tuần).

Tôi đã thử mã hóa nó dưới dạng Số tuần trong năm, như Ngày trong tuần 1-7 và là Giờ trong ngày. Nhưng chơi xung quanh với một bộ mã hóa tự động thưa thớt cho tôi cảm giác rằng dữ liệu của tôi không có ý nghĩa gì với mạng thần kinh, nó thậm chí không thể tái tạo bất cứ thứ gì gần đầu vào ngay cả với một lớp ẩn lớn. Không phải là phân loại 0-1 cũng như các giá trị chuẩn hóa.

Nhưng việc tìm kiếm mã hóa thời gian cho một mạng nơ-ron chủ yếu cung cấp thông tin về chuỗi thời gian, vì vậy tôi hơi bị che mắt bởi khu rừng nhưng đang tìm cây.

Tất nhiên tôi có thể nhìn vào dữ liệu và phân loại nó một cách thô bạo ít nhiều. Nhưng khái niệm Deep Learning dường như quét sạch tất cả các tính năng trích xuất thủ công thủ công. Và việc phân loại sẽ chèn các bước nhảy lớn trong một biến đầu vào liên tục tự nhiên.

"Mã hóa tự nhiên" trong não của tôi giống như một thành viên mờ nhạt đối với một số danh mục như "đêm", "buổi sáng", "ngày trong tuần", v.v.

Để làm cho toàn bộ điều thú vị hơn, biến phụ thuộc cũng chứa dữ liệu ngày / giờ đó, nhưng đó là một câu hỏi khác.

EDIT: Bằng cách nào đó liên quan đến loại dữ liệu tuần hoàn là một số câu hỏi gần đây, như

Những kiểm tra thống kê nào là hợp lý với thời gian này của bộ dữ liệu trong ngày?

Câu trả lời:


7

Tôi đang tìm kiếm một câu trả lời cho một vấn đề tương tự và vấp phải chủ đề này. Ý tưởng mã hóa hình sin được khám phá trong bài đăng trên blog này:

Mã hóa các tính năng liên tục theo chu kỳ - thời gian 24 giờ

Câu trả lời của Ian đã giải quyết đầy đủ nhu cầu của tôi, vì vậy tôi nghĩ về việc đăng nó ở đây để ghi nhớ trong tương lai.


Tôi tự hỏi làm thế nào điều này có thể được sử dụng stackoverflow.com/questions/59653862/ trộm - đặc biệt khi thời gian là các tính năng.
dùng4581

1

Bạn có thể thử biểu diễn thời gian dưới dạng ma trận lớn, tức là 365 đến 24, để biểu thị các ngày trong năm và giờ trong ngày, sau đó "hủy" điều này thành một vectơ 1 x 8760. Thời gian sau đó sẽ tương ứng với vị trí trong vectơ này và giá trị tại vị trí này là giá trị tại thời điểm đó.


2
Bạn đã thử và thành công với một mã hóa như vậy? Tôi sẽ ngạc nhiên nếu một mạng lưới thần kinh sẽ "học" các vị trí chính xác của buổi sáng chủ nhật trong bảng mã này. Nhưng để làm ngạc nhiên sự ngây thơ là một trong những thế mạnh của mạng lưới thần kinh, vì vậy tôi sẽ không đặt cược Scotch của mình vào nó. ;-)
flaschenpost

Điều này có thể hữu ích nếu bạn muốn phát hiện các sự kiện theo chu kỳ trong cùng một giờ trong nhiều năm khác nhau, nhưng dường như mối tương quan với tôi sẽ rất yếu. Tôi có thể thấy khả năng tương quan cao hơn giữa cùng một giờ mỗi tuần hoặc cùng một giờ mỗi ngày đối với hầu hết các dữ liệu chuỗi thời gian.
thekingoftruth

1

Tôi sẽ đề nghị tạo nhiều tính năng đầu vào từ chuỗi thời gian bằng các mối quan hệ bạn biết (hoặc tin) để tồn tại trong dữ liệu. Ví dụ: bạn nói rằng đầu ra mục tiêu sẽ thay đổi:

giữa buổi sáng và buổi tối, và khác nhau giữa các ngày trong tuần và giữa mùa hè và mùa đông, ...

Vậy tại sao không tạo ra một tập hợp các tính năng mô tả từng 'chu kỳ' này. Điều này có thể giúp trêu chọc cả các biến thể vi mô và vĩ mô hơn là một tính năng duy nhất mô tả tất cả.

Ví dụ...

1..241..16812,36,60...


Vâng, đây cũng là ý tưởng đầu tiên của tôi. Nhưng khái niệm vòng tròn về thời gian (23:59 được theo sau bởi 00:00) sau đó bị ẩn đi và một điều khác làm phiền tôi là bước nhảy giữa các con số dường như toàn bộ - một sự kiện vào lúc 09:55 rất giống với 10:05, nhưng vào buổi sáng 06:10 rất khác với 06:55. Tôi có thể tưởng tượng đến các trung tâm tìm kiếm thời gian (quang học hay tương tự?) Và sau đó đo và đưa ra khoảng cách đến các trung tâm đó. Vì vậy, 04:30 sáng là đêm sâu nhất, trong khi 05:30 thì "buổi sáng" hơn, nhưng hoàn toàn không giống buổi tối.
flaschenpost

1
Trong trường hợp đó, bạn có thể thử mã hóa dưới dạng hình sin hoặc cosin hoặc trên thực tế cả hai.
MèoLoveJazz
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.