Làm thế nào để áp dụng Mạng thần kinh vào dự báo chuỗi thời gian?


83

Tôi mới làm quen với máy học và tôi đã cố gắng tìm ra cách áp dụng mạng nơ-ron vào dự báo chuỗi thời gian. Tôi đã tìm thấy tài nguyên liên quan đến truy vấn của mình, nhưng dường như tôi vẫn bị mất một chút. Tôi nghĩ rằng một lời giải thích cơ bản mà không có quá nhiều chi tiết sẽ giúp.

Giả sử tôi có một số giá trị cho mỗi tháng trong một vài năm và tôi muốn dự đoán giá trị mới. Tôi có thể nhận được một danh sách giá trong vài tháng qua, và sau đó cố gắng tìm các xu hướng tương tự trong quá khứ bằng cách sử dụng K-Recent-Neighbor. Tôi có thể sử dụng tỷ lệ thay đổi hoặc một số tài sản khác của các xu hướng trong quá khứ để thử và dự đoán giá mới. Làm thế nào tôi có thể áp dụng mạng thần kinh cho vấn đề tương tự này là những gì tôi đang cố gắng tìm hiểu.



1
Dự đoán sử dụng mạng nơ ron và tiền tố của người bay trong luồng Cách sử dụng mạng nơ ron tái phát thích hợp để phân tích chuỗi thời gian giúp cải thiện sự hiểu biết của tôi.
Solartic

@solartic, chỉ tò mò thôi, bạn đã thực hiện thành công phương pháp này chưa?
Saggy Manatee và Swan Dân gian

Câu trả lời:


102

Đây là một công thức đơn giản có thể giúp bạn bắt đầu viết mã và thử nghiệm ý tưởng ...

Giả sử bạn có dữ liệu hàng tháng được ghi lại trong nhiều năm, do đó bạn có 36 giá trị. Chúng ta cũng giả sử rằng bạn chỉ quan tâm đến việc dự đoán trước một tháng (giá trị).

  1. Phân tích dữ liệu thăm dò: Áp dụng một số phương pháp phân tích chuỗi thời gian truyền thống để ước tính sự phụ thuộc độ trễ trong dữ liệu (ví dụ: ô tương quan tự động và ô tương quan một phần, biến đổi, khác biệt). Giả sử bạn thấy giá trị của một tháng nhất định tương quan với dữ liệu của ba tháng trước nhưng không vượt quá mức đó.
  2. Phân vùng dữ liệu của bạn thành các bộ đào tạo và xác thực: Lấy 24 điểm đầu tiên làm giá trị đào tạo của bạn và các điểm còn lại làm bộ xác thực.
  3. Tạo bố cục mạng thần kinh: Bạn sẽ lấy các giá trị của ba tháng trước làm đầu vào và bạn muốn dự đoán giá trị của tháng tiếp theo. Vì vậy, bạn cần một mạng thần kinh với một lớp đầu vào chứa ba nút và một lớp đầu ra chứa một nút. Bạn có thể nên có một lớp ẩn với ít nhất một vài nút. Thật không may, chọn số lớp ẩn và số nút tương ứng của chúng, không phải là thứ có hướng dẫn rõ ràng. Tôi sẽ bắt đầu nhỏ, như 3: 2: 1.
  4. x1,x2,x24
    pattern1:x1,x2,x3,x4
    pattern2:x2,x3,x4,x5
    pattern21:x21,x22,x23,x24
  5. Huấn luyện mạng lưới thần kinh trên các mẫu này
  6. Kiểm tra mạng trên bộ xác thực (tháng 25-36): Tại đây bạn sẽ chuyển qua ba giá trị mà mạng thần kinh cần cho lớp đầu vào và xem nút đầu ra được đặt thành gì. Vì vậy, để xem mạng lưới thần kinh được đào tạo có thể dự đoán giá trị của tháng 32 như thế nào, bạn sẽ vượt qua các giá trị trong các tháng 29, 30 và 31

Công thức này rõ ràng là cấp độ cao và ban đầu bạn có thể gãi đầu khi cố gắng ánh xạ bối cảnh của mình vào các thư viện / chương trình phần mềm khác nhau. Nhưng, hy vọng điều này phác họa ra điểm chính: bạn cần tạo các mô hình đào tạo có chứa cấu trúc tương quan của chuỗi bạn đang cố gắng dự báo một cách hợp lý. Và cho dù bạn thực hiện dự báo với mạng thần kinh hay mô hình ARIMA, công việc thăm dò để xác định cấu trúc đó thường là phần tốn thời gian và khó khăn nhất.

Theo kinh nghiệm của tôi, mạng lưới thần kinh có thể cung cấp chức năng phân loại và dự báo tuyệt vời nhưng việc thiết lập chúng có thể tốn thời gian. Trong ví dụ trên, bạn có thể thấy rằng 21 mẫu đào tạo là không đủ; chuyển đổi dữ liệu đầu vào khác nhau dẫn đến dự báo tốt hơn / xấu hơn; thay đổi số lượng các lớp ẩn và các nút lớp ẩn ảnh hưởng lớn đến dự báo; Vân vân.

Tôi đặc biệt khuyên bạn nên xem trang web neural_forecasting , nơi chứa hàng tấn thông tin về các cuộc thi dự báo mạng thần kinh. Các Động cơ trang đặc biệt hữu ích.


12
+1 cho câu trả lời này, nhưng cũng nói thêm rằng ngay cả khi 3 tháng gần đây là những tháng duy nhất tương quan với câu trả lời, cũng có thể có các yếu tố như cùng tháng trong năm trong 5 năm trước là đầu vào hữu ích ( ví dụ: nếu Decembers có xu hướng trông giống như Decembers trước, thường).
rossdavidh

1
Câu trả lời chính xác. Tôi thấy điều này rất hữu ích. Một lời giải thích cấp cao là chính xác những gì tôi muốn. @rossdavidh: Điểm tốt +1.
Solartic

2
Nó sẽ là tuyệt vời để có được một số mã ví dụ ở đây.
Léo Léopold Hertz

1
Điều thú vị sẽ là một bộ dữ liệu chuỗi thời gian đa biến cùng với các biến hồi quy ..
Tommaso Guerrini

1
Có ai biết một số giấy với một ứng dụng cho dữ liệu thực và so sánh với phương pháp chuỗi thời gian "truyền thống" không?
Marco Fumagalli
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.