Splines có thể được sử dụng để dự đoán?


20

Tôi không thể cụ thể về bản chất của dữ liệu vì nó là độc quyền, nhưng giả sử chúng tôi có dữ liệu như thế này: Mỗi tháng, một số người đăng ký dịch vụ. Sau đó, trong mỗi tháng tiếp theo, những người đó có thể nâng cấp dịch vụ, ngừng dịch vụ hoặc bị từ chối dịch vụ (ví dụ: không thanh toán). Đối với đoàn hệ sớm nhất trong dữ liệu của chúng tôi, chúng tôi có khoảng 2 năm dữ liệu (24 tháng).

Số lượng người tham gia mỗi tháng rất lớn (trong phạm vi 100.000) và số người thực hiện bất kỳ điều gì trong ba điều này là hàng ngàn. Tuy nhiên, chúng tôi không sử dụng dữ liệu cấp độ riêng lẻ (sẽ là hàng triệu hàng) mà là dữ liệu được tổng hợp theo tháng và đoàn hệ (tỷ lệ của mỗi đoàn hệ thực hiện mỗi việc mỗi tháng).

Chúng tôi đã mô hình hóa dữ liệu hiện có bằng cách sử dụng các hàm hồi quy thích ứng đa biến (MARS) và tìm thấy một số kết quả thú vị. Tuy nhiên, tôi lo lắng về việc sử dụng những thứ này để ngoại suy hoặc dự đoán trong tương lai. Mối quan tâm của tôi là bởi vì các dự đoán về tương lai nhất thiết phải nằm ngoài không gian mẫu (về mặt thời gian) và các spline có thể trở nên không ổn định để ngoại suy.

Đây có phải là một phương pháp hợp pháp? Những mối quan tâm đang có và họ có thể được giải quyết?


2
Tất nhiên chúng có thể được sử dụng để dự đoán, nhưng bạn sẽ cần chú ý đến cách điều chỉnh đúng các siêu đường kính mô hình. Sự lựa chọn của hàm spline (không đổi, tuyến tính, khối) cũng là những mối quan tâm quan trọng. IIRC, các hàm spline tuyến tính trong MARS thường được sử dụng và các spline bậc cao hơn tránh được mối lo ngại về ngoại suy / quá mức.
Sycorax nói Phục hồi lại

1
Có điều gì đó bạn lo lắng đặc biệt, điều đó sẽ khiến bạn nghi ngờ một phương pháp bạn đang sử dụng? Độ chính xác của bạn có vẻ thấp bất ngờ, hoặc một cái gì đó như thế? Bạn đã thử các phương pháp khác? Làm thế nào để họ so sánh?
one_observation

1
@Sophologist Chủ yếu là họ sẽ kết thúc rất tốt cho các giá trị mới vì các nút và dòng đều dựa trên các giá trị trong quá khứ. Vì vậy, giả sử, một spline tuyến tính có nội dung "tăng thêm XXX cho mỗi năm sau năm 2014" sẽ chỉ dựa trên dữ liệu năm 2015, nhưng nếu áp dụng cho năm 2016, sẽ tiếp tục theo hướng tương tự.
Peter Flom - Tái lập Monica

3
@PeterFlom: Tôi thực sự rất bối rối về câu hỏi của bạn (splines rất phổ biến để dự đoán) cho đến khi tôi đọc phản hồi của bạn với Sophologist. Tôi đã chỉnh sửa câu hỏi của bạn để giúp nhấn mạnh chính xác những gì tôi nghĩ rằng mối quan tâm của bạn là. Vui lòng xem lại.
Vách đá AB

2
@PeterFlom: giả sử chỉnh sửa của tôi là chính xác, bạn có đang mô hình hóa hiệu ứng của thời gian với một spline không? Nếu vậy, tôi sẽ khá quan tâm. Tuy nhiên, nếu bạn đang mô hình hóa hiệu ứng của thời gian với hiệu ứng trễ và các hiệp phương sai khác với splines, tôi sẽ thấy không có vấn đề gì?
Vách đá AB

Câu trả lời:


15

Từ cách giải thích của tôi về câu hỏi, câu hỏi cơ bản mà bạn đang hỏi là liệu bạn có thể mô hình hóa thời gian như một spline hay không.

f^(x)=i=1nαiBi(x[i])
αiBix[i]
max(0,x[i]+ci)

R

f^(x)=5+max(0,x5)+2max(0,x10)

10
f^(x)=10+2(x10)=2x10
5

Bây giờ chúng ta hãy quay trở lại chuỗi thời gian. Chuỗi thời gian là một trường hợp khá đặc biệt trong học máy. Chúng có xu hướng có một chút cấu trúc, cho dù đó là một phần của phương sai hoặc một trong nhiều loại cấu trúc khác nhau, và cấu trúc này có thể được khai thác. Nhưng các thuật toán đặc biệt là cần thiết để có thể khai thác cấu trúc này, không may là các spline không làm được điều này.

Có một vài điều tôi khuyên bạn nên thử. Đầu tiên sẽ là mạng reccurent. Nếu chuỗi thời gian của bạn không dài (và không có phụ thuộc dài hạn), bạn sẽ có thể thoát khỏi việc sử dụng mạng tái phát vanilla đơn giản. Nếu bạn muốn có thể hiểu những gì đang xảy ra, bạn có thể sử dụng một đơn vị tuyến tính được chỉnh lưu với các sai lệch làm hàm kích hoạt và điều đó sẽ tương đương với việc thực hiện mô hình MARS trên tập hợp con của thời gian và "bộ nhớ" mà mạng lưới thần kinh tái phát giữ Thật khó để diễn giải cách bộ nhớ được quản lý bởi mạng, nhưng bạn sẽ hiểu được cách thức không gian con được xử lý liên quan đến chức năng tuyến tính từng phần được tạo ra. Ngoài ra, nếu bạn có các tính năng tĩnh không thuộc chuỗi thời gian, việc sử dụng chúng trong mạng là tương đối dễ dàng.

Nếu chuỗi thời gian bạn có rất dài và có thể có phụ thuộc dài hạn, tôi khuyên bạn nên sử dụng một trong các mạng định kỳ được kiểm soát, một cái gì đó như GRU hoặc LSTM.

Về mặt cổ điển hơn của phân loại chuỗi thời gian, bạn có thể sử dụng các mô hình markov ẩn. Tôi sẽ không đi sâu hơn vào những điều này, vì tôi không quen thuộc với chúng.

Để kết luận, tôi không khuyên bạn nên sử dụng splines vì ​​hai lý do. Một, nó không thể xử lý các vấn đề ngoại suy phức tạp, dường như là vấn đề mà bạn đang mô tả. Và hai, spline không khai thác các cấu trúc con của chuỗi thời gian có thể rất mạnh trong phân loại chuỗi thời gian.

Hi vọng điêu nay co ich.

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.