Dự báo nhu cầu sản phẩm cho hàng ngàn sản phẩm trên nhiều cửa hàng


9

Tôi hiện đang làm một nhiệm vụ dự báo nhu cầu, với dữ liệu về hàng chục ngàn sản phẩm trên một vài nghìn cửa hàng. Cụ thể hơn, tôi có dữ liệu bán hàng hàng ngày cho mỗi sản phẩm trong một vài năm và mục tiêu của tôi là dự báo doanh số tương lai của từng mặt hàng trong mỗi cửa hàng, trước một ngày; sau đó hai ngày, vv

Cho đến nay tôi đã cân nhắc việc chia từng cặp cửa hàng sản phẩm thành một chuỗi thời gian duy nhất và thực hiện dự báo cho từng chuỗi thời gian như được thực hiện trong bài báo của Neal Wagner, Các kỹ thuật thông minh để dự báo chuỗi nhiều thời gian trong các hệ thống trong thế giới thực . Nói cách khác, tôi sẽ chỉ sử dụng thông tin lịch sử về doanh số bán sản phẩm của một cửa hàng cụ thể để dự báo doanh số tương lai của sản phẩm đó trong cửa hàng đó.

Tuy nhiên, tôi đã duyệt Kaggle và các cuộc thi như Dự báo bán hàng tạp hóa Corporación Favita cho thấy một cách tiếp cận khác, đó là sử dụng thông tin từ tất cả các cửa hàng và tất cả các sản phẩm để dự đoán doanh số trong tương lai. Theo tôi hiểu, thông tin bán hàng lịch sử của tất cả các sản phẩm trong tất cả các cửa hàng được đưa vào tập huấn luyện, từ đó mô hình sẽ học để dự báo doanh số trong tương lai. Nó rất khác so với các phương pháp chuỗi thời gian truyền thống, nhưng rõ ràng, dựa trên kết quả của cuộc thi, nó hoạt động.

Phương pháp sau có vẻ hứa hẹn và mạnh mẽ hơn. Tuy nhiên, có vấn đề về việc phải xử lý hàng trăm triệu điểm dữ liệu.

Phương pháp nào phù hợp hơn cho nhiệm vụ của tôi? Đối với những người đã làm việc về các vấn đề tương tự, bạn muốn giới thiệu phương pháp nào?


1
Khi tôi làm việc này, tôi đã sử dụng cách tiếp cận chuỗi thời gian duy nhất, NHƯNG với tính thời vụ được rút ra từ các sản phẩm tương tự (ví dụ: danh mục) trong các cửa hàng tương tự (ví dụ: phân khúc địa lý nơi thời tiết sẽ tương tự). Nhưng điều này một phần là do các hạn chế về thời gian: không phải tất cả dữ liệu đến cùng một lúc và thời gian giữa lần gửi dữ liệu cuối cùng và khi dự báo là cần thiết (đôi khi là âm!). Đây là những cân nhắc hoạt động, không phải là thống kê.
zbicyclist

@zbicyclist Cảm ơn bạn đã chia sẻ điều này! Tôi có thể biết làm thế nào bạn có thể kết hợp tính thời vụ của các sản phẩm tương tự vào dự báo không? ví dụ: bạn đã lấy tính thời vụ trung bình và thêm nó làm một tính năng khác trong mô hình chưa?
meraxes

Giải thích, mô hình, dự báo, sau đó phản ứng lại.
zbicyclist

Câu trả lời:


9

Tôi sẽ không đề xuất cách tiếp cận được sử dụng bởi Neal et al. . Dữ liệu của họ là duy nhất vì hai lý do:

  • Họ đang làm việc với dữ liệu thực phẩm, thường dày đặc hơn và ổn định hơn so với dữ liệu bán lẻ sản phẩm bán lẻ khác. Một địa điểm nhất định sẽ bán hàng chục hộp sữa hoặc gói trứng mỗi tuần và sẽ bán những sản phẩm tương tự trong nhiều thập kỷ, so với thời trang hoặc phụ tùng xe hơi, nơi không có gì lạ khi bán một mặt hàng duy nhất cứ sau 3 hoặc 4 tuần, và dữ liệu có sẵn chỉ trong một hoặc hai năm.

  • Họ đang dự báo cho các kho không phải cửa hàng. Một kho duy nhất bao gồm nhiều cửa hàng, vì vậy dữ liệu của họ thậm chí còn dày đặc hơn mức trung bình. Trong thực tế, một kho thường được sử dụng như một mức tổng hợp / nhóm tự nhiên cho các cửa hàng, vì vậy về cơ bản chúng đã thực hiện một nhóm dữ liệu lưu trữ.

Do tính chất của dữ liệu của họ, họ có thể thoát khỏi việc lập mô hình chuỗi thời gian riêng lẻ trực tiếp. Nhưng hầu hết dữ liệu của các nhà bán lẻ sẽ quá thưa thớt ở cấp độ sku / cửa hàng riêng lẻ để họ loại bỏ điều đó.

Như zbicyclist đã nói, vấn đề này thường được tiếp cận bằng cách sử dụng dự báo phân cấp hoặc đa âm . Tất cả các gói dự báo nhu cầu thương mại đều sử dụng một số hình thức dự báo phân cấp

Ý tưởng là nhóm các sản phẩm và cửa hàng thành các sản phẩm và khu vực tương tự, theo đó các dự báo tổng hợp được tạo ra và được sử dụng để xác định tính thời vụ và xu hướng chung, sau đó được điều chỉnh theo cách tiếp cận từ trên xuống với các dự báo cơ sở được tạo cho từng sku riêng lẻ / cửa hàng kết hợp.

Bên cạnh thách thức zbicyclist đã đề cập, một vấn đề lớn hơn là việc tìm ra các nhóm sản phẩm và cửa hàng tối ưu là một nhiệm vụ không hề nhỏ, đòi hỏi sự kết hợp giữa chuyên môn về miền và phân tích thực nghiệm. Các sản phẩm và cửa hàng thường được nhóm lại với nhau theo các phân cấp phức tạp (Theo bộ phận, nhà cung cấp, nhãn hiệu, v.v. cho các sản phẩm, theo vùng, khí hậu, kho, v.v ... cho vị trí) sau đó được đưa vào thuật toán dự báo cùng với doanh số lịch sử dữ liệu chính nó.


Giải quyết các ý kiến ​​meraxes

Làm thế nào về các phương pháp được sử dụng trong Cuộc thi Kaggle Dự báo bán hàng tạp hóa Corporación Favourita, nơi họ cho phép các người mẫu học hỏi từ lịch sử bán hàng của một số sản phẩm (có thể không liên quan), mà không thực hiện bất kỳ nhóm rõ ràng nào? Đây vẫn là một cách tiếp cận hợp lệ?

Họ đang thực hiện việc nhóm một cách ngầm định bằng cách sử dụng cửa hàng, vật phẩm, gia đình, lớp, cụm làm các tính năng phân loại.

Tôi vừa đọc qua một phần của Rob Hyndman về dự báo phân cấp. Dường như với tôi, thực hiện một cách tiếp cận từ trên xuống cung cấp các dự báo đáng tin cậy cho các mức tổng hợp; tuy nhiên, nó có nhược điểm rất lớn là mất thông tin do tổng hợp có thể ảnh hưởng đến dự báo cho các nút ở mức dưới cùng. Nó cũng có thể "không thể nắm bắt và tận dụng các đặc điểm của từng chuỗi như động lực thời gian, các sự kiện đặc biệt".

Ba điểm liên quan đến điều này:

  • Nhược điểm mà anh ta chỉ ra phụ thuộc vào việc phân nhóm dữ liệu. Nếu bạn tổng hợp tất cả các sản phẩm và cửa hàng, thì có, đây sẽ là một vấn đề. Ví dụ, tổng hợp tất cả các cửa hàng từ tất cả các khu vực sẽ làm vấy bẩn bất kỳ tính thời vụ cụ thể của khu vực. Nhưng bạn chỉ nên tổng hợp theo nhóm có liên quan, và như tôi đã chỉ ra, điều này sẽ đòi hỏi một số phân tích và thử nghiệm để tìm.
  • Trong trường hợp cụ thể của nhu cầu bán lẻ, chúng tôi không lo lắng về việc "mất thông tin do tổng hợp" bởi vì chuỗi thời gian ở các nút dưới cùng (ví dụ SKU / Cửa hàng) chứa rất ít thông tin, đó là lý do tại sao chúng tôi tổng hợp chúng lên cao hơn cấp độ ở nơi đầu tiên.
  • Đối với SKU / lưu trữ các sự kiện cụ thể, cách chúng tôi tiếp cận nó trong nhóm của tôi là loại bỏ các hiệu ứng cụ thể của sự kiện trước khi tạo dự báo và sau đó thêm chúng trở lại sau, sau khi dự báo được tạo. Xem ở đây để biết chi tiết.

Cảm ơn vì sự sáng suốt này! Làm thế nào về các phương pháp được sử dụng trong Cuộc thi Kaggle Dự báo bán hàng tạp hóa Corporación Favourita, nơi họ cho phép các người mẫu học hỏi từ lịch sử bán hàng của một số sản phẩm (có thể không liên quan), mà không thực hiện bất kỳ nhóm rõ ràng nào? Đây vẫn là một cách tiếp cận hợp lệ?
meraxes

Tôi vừa đọc qua một phần của Rob Hyndman về dự báo phân cấp. Dường như với tôi, thực hiện một cách tiếp cận từ trên xuống cung cấp các dự báo đáng tin cậy cho các mức tổng hợp; tuy nhiên, nó có nhược điểm rất lớn là mất thông tin do tổng hợp có thể ảnh hưởng đến dự báo cho các nút ở mức dưới cùng. Nó cũng có thể "không thể nắm bắt và tận dụng các đặc điểm của từng chuỗi như động lực thời gian, các sự kiện đặc biệt".
meraxes

@meraxes xem chỉnh sửa của tôi.
Skander H.

Cảm ơn lời giải thích công phu, @Alex! Về điểm cuối cùng của bạn, và điều này có thể hơi lạc đề, nhưng bạn có đối xử với ngày lễ theo cách tương tự không? tức là loại bỏ hiệu ứng của chúng trước khi tạo dự báo, sau đó thêm lại chúng sau?
meraxes

^ Tôi hỏi bởi vì tôi nhận thấy rằng dự báo của tôi dường như rất nhạy cảm với các ngoại lệ trong dữ liệu. Cách tiếp cận hiện tại của tôi là chiến thắng dữ liệu, sau đó sử dụng bộ phân tích tăng đột biến hàng loạt như được mô tả trong bài báo của Neal Wagner et al. để xác định các gai có thể giải thích được vào các ngày lễ để thêm chúng trở lại sau đó. Tôi hiểu rằng một cách khác sẽ là sử dụng các biến giả để loại bỏ ảnh hưởng của ngày lễ. Phương pháp nào bạn muốn giới thiệu?
meraxes
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.