本發(fā)明涉及品規(guī)出庫(kù)量預(yù)測(cè),具體為基于時(shí)間序列、在品規(guī)變動(dòng)頻繁情況下預(yù)測(cè)出庫(kù)量的算法。
背景技術(shù):
1、現(xiàn)有的基于時(shí)間序列的品規(guī)出庫(kù)量預(yù)測(cè)方法,對(duì)于快消品的適應(yīng)度不夠好,主要問(wèn)題是快消品的品規(guī)變動(dòng)多,經(jīng)常會(huì)有新的品規(guī)加入,且品規(guī)在幾年內(nèi)退出的比例很大,用首次出庫(kù)時(shí)間與最后一次出庫(kù)時(shí)間來(lái)衡量快消品的生命周期,將生命周期小于一年的快消品定義為短生命周期,根據(jù)數(shù)據(jù)分析,xx倉(cāng)庫(kù)中短生命周期(生命周期小于一年)的快消品占比呈現(xiàn)顯著波動(dòng):2021年為32.0%,2022年為1.08%,2023年為1.53%,2024年為38.86%,這就導(dǎo)致這些模型無(wú)法對(duì)新品出庫(kù)量做出良好的預(yù)測(cè),且由于品規(guī)退出迅速,模型可能無(wú)法得到足夠長(zhǎng)的出庫(kù)數(shù)據(jù)以得出規(guī)律。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供基于時(shí)間序列、在品規(guī)變動(dòng)頻繁情況下預(yù)測(cè)出庫(kù)量的算法,以解決上述背景技術(shù)中提出的問(wèn)題。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:基于時(shí)間序列、在品規(guī)變動(dòng)頻繁情況下預(yù)測(cè)出庫(kù)量的算法,算法分為三個(gè)階段:
3、第一階段:使用時(shí)間序列模型,預(yù)測(cè)品規(guī)類別和非新品規(guī)的出庫(kù)量;
4、第二階段:對(duì)于每個(gè)品規(guī)類別推算本分類內(nèi)新品規(guī)出庫(kù)量與非新品規(guī)出庫(kù)量的比例關(guān)系;
5、第三階段:通過(guò)使用前兩個(gè)階段的結(jié)果,計(jì)算出新品規(guī)的出庫(kù)量,與第一階段的出的非新品規(guī)出庫(kù)量,一并構(gòu)成所有品規(guī)的出庫(kù)量預(yù)測(cè)。
6、優(yōu)選的,所述第一階段使用時(shí)間序列模型預(yù)測(cè)非新品規(guī)及品規(guī)類別的出庫(kù)量,用時(shí)間序列處理庫(kù)darts里的catboost階梯提升樹(shù)時(shí)間序列模型預(yù)測(cè)非新品規(guī)、品規(guī)類別的出貨量,catboost是一種基于梯度提升的機(jī)器學(xué)習(xí)算法,能夠直接處理類別變量,適合大規(guī)模、多分類的特征數(shù)據(jù),使用過(guò)去若干天數(shù)(此例為180天)的值作為特征,添加年月周日等時(shí)間相關(guān)協(xié)變量,生成多個(gè)時(shí)間序列模型來(lái)訓(xùn)練,預(yù)測(cè)未來(lái)若干天數(shù)(此例為30天)的非新品規(guī)、品規(guī)類別的出庫(kù)量,并根據(jù)特定時(shí)段特征(如節(jié)日、促銷)進(jìn)行標(biāo)記,以提高模型的準(zhǔn)確性,該算法根據(jù)輸入和輸出天數(shù)的參數(shù),自動(dòng)采用滑動(dòng)窗口方式訓(xùn)練數(shù)據(jù),首先進(jìn)行數(shù)據(jù)清洗,我們需要得到每個(gè)品規(guī)每段時(shí)間(一般為月)的出庫(kù)量,時(shí)間短有利于提升短期預(yù)測(cè)的準(zhǔn)確度,但會(huì)帶來(lái)更大的計(jì)算開(kāi)銷;并對(duì)出庫(kù)量的數(shù)據(jù)密度有一定的要求,因此只能適用于頻繁出庫(kù)的品規(guī),由于物流預(yù)測(cè)出庫(kù)量時(shí)僅以月為單位,因此我們選擇月作為統(tǒng)計(jì)時(shí)間單位,對(duì)于單一品規(guī)在月內(nèi)多次出庫(kù)的,匯總計(jì)算其出庫(kù)量,對(duì)得到的各品規(guī)的出庫(kù)量,添加時(shí)間段的特性,包括與時(shí)間段相關(guān)的節(jié)日特性和特定事件特性,以幫助模型學(xué)習(xí)春節(jié)的出庫(kù)特征,讓模型可以更好地做出判斷,概念解釋:新品規(guī):對(duì)于首次出庫(kù)(含)后不超過(guò)n個(gè)時(shí)間段的品規(guī),我們認(rèn)為是新品規(guī),n的取值越大,模型的建立越復(fù)雜,不僅會(huì)提升計(jì)算量,對(duì)出庫(kù)數(shù)據(jù)的密度也有更高的要求,雖然快消品的出庫(kù)量有月份相關(guān)性(可粗略理解為貨物在每個(gè)不同的季節(jié)有不同的銷量,這種規(guī)律以年為單位重復(fù)),n的取值,乘以時(shí)間段的長(zhǎng)度(一般為月)后應(yīng)為12或其整倍數(shù),但由于考慮到數(shù)據(jù)密度、計(jì)算量,且新品規(guī)通常也會(huì)在其對(duì)應(yīng)的銷售旺季才會(huì)投入市場(chǎng),因此n可取一些較小的數(shù)值,例如可將其對(duì)應(yīng)的時(shí)間設(shè)置在6個(gè)月或者更低,對(duì)于每個(gè)品規(guī)類別,包括下層分類,需要統(tǒng)計(jì)該分類中新品在不同出庫(kù)時(shí)間段內(nèi)的數(shù)量,統(tǒng)計(jì)內(nèi)容包括以下幾項(xiàng):在該時(shí)間段內(nèi)首次出現(xiàn)出庫(kù)量的品規(guī)個(gè)數(shù),距離首次出庫(kù)后一個(gè)時(shí)間段的品規(guī)個(gè)數(shù)(即上一個(gè)時(shí)間段首次出現(xiàn)出庫(kù)量的品規(guī),且不考慮該品規(guī)在本時(shí)間段內(nèi)是否有出庫(kù)量),距離首次出庫(kù)后兩個(gè)時(shí)間段的品規(guī)個(gè)數(shù),依次類推,直到距離首次出庫(kù)后n-1個(gè)時(shí)間段的品規(guī)個(gè)數(shù),n的取值根據(jù)新品的定義確定,通常設(shè)為6個(gè)月,特殊情況下可縮短至3個(gè)月或延長(zhǎng)至12個(gè)月,在計(jì)算品規(guī)類別的出庫(kù)比例時(shí),可能會(huì)產(chǎn)生多個(gè)不同的出庫(kù)比例,在此情況下,優(yōu)先選擇歷史出庫(kù)量占該品規(guī)類別總出庫(kù)量比例較大的品規(guī)出庫(kù)比例作為代表,如果沒(méi)有明顯的主導(dǎo)品規(guī),則采用所有品規(guī)出庫(kù)比例的加權(quán)平均值,權(quán)重由每個(gè)品規(guī)的歷史出庫(kù)量占該分類總出庫(kù)量的比例決定,這些統(tǒng)計(jì)值作為品規(guī)類別的特性,附加在對(duì)應(yīng)的品規(guī)類別上,新品的出現(xiàn)通常會(huì)對(duì)品規(guī)類別的總出庫(kù)量產(chǎn)生正向影響,因此這些特性值對(duì)品規(guī)類別的出庫(kù)量預(yù)測(cè)也會(huì)有正向作用,對(duì)每個(gè)品規(guī)、品規(guī)類別,根據(jù)其代表性,設(shè)定一個(gè)權(quán)重值,默認(rèn)為1,取大于0的值,可為小數(shù),此權(quán)重值會(huì)影響此品規(guī)、品規(guī)類別在模型訓(xùn)練過(guò)程的權(quán)重,對(duì)這些品規(guī)的出庫(kù)量與特性,建立時(shí)間序列模型,由于時(shí)間序列模型需要將每個(gè)品規(guī)投入訓(xùn)練,只能在一個(gè)gpu上順序執(zhí)行,品規(guī)量大時(shí)訓(xùn)練時(shí)間過(guò)長(zhǎng),且不同品規(guī)類別之間的出庫(kù)數(shù)據(jù)可能缺乏一致性,由此將這些品規(guī)類別分為幾個(gè)組,對(duì)每個(gè)組分別進(jìn)行訓(xùn)練,集合得出不同的模型,同時(shí),分組訓(xùn)練互不影響,因此可以在多個(gè)gpu上并行進(jìn)行以減少訓(xùn)練所需的時(shí)間,設(shè)定一個(gè)基礎(chǔ)的訓(xùn)練次數(shù)(例如1000次),每個(gè)品規(guī)的訓(xùn)練次數(shù)為此設(shè)定與其權(quán)重值的乘積,概念解釋:?jiǎn)蝹€(gè)出庫(kù)包裝內(nèi)單品數(shù)量:為了平衡同一個(gè)品規(guī)類別下不同品規(guī)由于包裝不同導(dǎo)致的出庫(kù)數(shù)量差異而引入的概念,例如兩種啤酒易拉罐容積相似,且均以箱為出庫(kù)單位,a品一箱4罐、b品一箱6罐,則在計(jì)算相關(guān)指數(shù)時(shí),需要將a的出庫(kù)量乘以4、b的出庫(kù)量乘以6,才能在計(jì)算此品規(guī)類別下的出庫(kù)情況時(shí)排除其影響,對(duì)于每個(gè)品規(guī),應(yīng)該隸屬于多個(gè)層級(jí)的品規(guī)類別,以xx可樂(lè)為例,品規(guī)類別可以從細(xì)到粗依次分為一級(jí)品規(guī)類別為可樂(lè)型飲料,二級(jí)品規(guī)類別為軟飲料,三級(jí)品規(guī)類別為飲料等,較高層級(jí)的品規(guī)類別可以作為較低層級(jí)分類數(shù)據(jù)不足時(shí)的參考,在分類數(shù)據(jù)不足以滿足最低樣本量時(shí),才使用較高層級(jí)的品規(guī)類別進(jìn)行預(yù)測(cè),對(duì)于每個(gè)品規(guī)所屬的品規(guī)類別,分別計(jì)算出每個(gè)品規(guī)類別的出庫(kù)比例,該品規(guī)的出庫(kù)比例的計(jì)算公式為:,該出庫(kù)比例代表該品規(guī)類別下非新品規(guī)的平均出庫(kù)量,通過(guò)此公式,可有效平衡不同包裝規(guī)格對(duì)總出庫(kù)量的影響,避免因規(guī)格差異導(dǎo)致的分類模型誤差增大,本階段完成后,會(huì)得出多個(gè)時(shí)間序列模型,每個(gè)非新品規(guī)以及品規(guī)類別都會(huì)存在于一個(gè)模型中,通過(guò)模型預(yù)測(cè)及計(jì)算,可得到非新品規(guī)在特定未來(lái)一段時(shí)間的出庫(kù)量以及品規(guī)類別在特定未來(lái)一段時(shí)間的出庫(kù)比例i。
7、優(yōu)選的,所述第二階段做新品出庫(kù)量與非新品出庫(kù)量的比例計(jì)算,由于第一階段模型無(wú)法準(zhǔn)確預(yù)測(cè)新品的出庫(kù)量,本階段通過(guò)推算每個(gè)品規(guī)類別中新品與非新品出庫(kù)量的比例,預(yù)測(cè)新品的出庫(kù)量,此階段需對(duì)每個(gè)一級(jí)品規(guī)類別分別進(jìn)行,當(dāng)某個(gè)分類由于數(shù)量不足,無(wú)法建模型時(shí),可轉(zhuǎn)用其上層品規(guī)類別建模,對(duì)上層品規(guī)類別建模時(shí),應(yīng)遞歸其所有的包含的品規(guī)類別,包含所有所屬的品規(guī),歷史記錄中從舊到新,按照每個(gè)時(shí)間段處理,找到此時(shí)間段中首次出現(xiàn)出庫(kù)量的品規(guī),讀取它的兩個(gè)設(shè)置值:a:出庫(kù)時(shí)間占比,表示新品規(guī)在該時(shí)間段內(nèi)的出庫(kù)時(shí)間比例,對(duì)于首次出庫(kù)的時(shí)間段,a?可以小于1,表示新品規(guī)只在該時(shí)間段的部分時(shí)間內(nèi)出庫(kù),對(duì)于后續(xù)時(shí)間段,a?默認(rèn)為1,表示新品規(guī)在整個(gè)時(shí)間段內(nèi)持續(xù)出庫(kù),b:新品特征倍率,根據(jù)品規(guī)的市場(chǎng)需求、促銷活動(dòng)等因素確定出庫(kù)量的調(diào)整系數(shù),設(shè)此時(shí)間段中此品規(guī)出庫(kù)量為x、此時(shí)間段此品規(guī)類別的總出庫(kù)量為s、此時(shí)間段此品規(guī)類別的品規(guī)數(shù)量為q,求:,此值為此品規(guī)在首個(gè)時(shí)間段的出庫(kù)量與此品規(guī)類別此時(shí)間段平均出庫(kù)量的比值,在第2個(gè)到第n個(gè)(n的值與第一階段新品定義的n相同)時(shí)間段中,由于a為1,可以將上述公式簡(jiǎn)化為:,并在第n+1個(gè)時(shí)間段將比值設(shè)為1,使用三次樣條插值,將上述所有時(shí)間段的比值生成光滑的三次多項(xiàng)式曲線,擬合出此品規(guī)類別的新品規(guī)出庫(kù)量曲線z。
8、優(yōu)選的,所述第三階段基于前兩個(gè)階段的結(jié)果,綜合計(jì)算新品與非新品的出庫(kù)量,生成所有品規(guī)的出庫(kù)量預(yù)測(cè),對(duì)于舊品規(guī)(已經(jīng)超過(guò)新品規(guī)定義的n個(gè)時(shí)間段的品規(guī)),直接使用第一階段生成的時(shí)間序列模型來(lái)預(yù)測(cè)其出庫(kù)量,數(shù)據(jù)少于三個(gè)時(shí)間段的新品規(guī)處理,對(duì)于歷史數(shù)據(jù)少于三個(gè)時(shí)間段的新品規(guī)(即只有1個(gè)或2個(gè)時(shí)間段的數(shù)據(jù)),采用線性外推法進(jìn)行出庫(kù)量預(yù)測(cè),線性外推方法:當(dāng)僅有一個(gè)時(shí)間段的數(shù)據(jù)時(shí),直接使用第一個(gè)時(shí)間段的出庫(kù)量比值作為參考,即,當(dāng)有兩個(gè)時(shí)間段的數(shù)據(jù)時(shí),讀取第一個(gè)時(shí)間段和第二個(gè)時(shí)間段的出庫(kù)量比值和,并根據(jù)這兩個(gè)時(shí)間段的變化趨勢(shì)進(jìn)行線性外推,預(yù)測(cè)未來(lái)時(shí)間段t的出庫(kù)量比值:,其中,和為新品規(guī)出庫(kù)量曲線的第一個(gè)和第二個(gè)點(diǎn)值,和為歷史時(shí)間段的出庫(kù)量比值,數(shù)據(jù)為三個(gè)或更多時(shí)間段的新品規(guī)處理,當(dāng)新品規(guī)有三個(gè)或更多時(shí)間段的歷史數(shù)據(jù)時(shí),采用三次樣條插值來(lái)對(duì)數(shù)據(jù)進(jìn)行平滑擬合,以預(yù)測(cè)未來(lái)的出庫(kù)量,三次樣條插值方法為:從歷史數(shù)據(jù)中讀取前n個(gè)時(shí)間段的出庫(kù)量比值和對(duì)應(yīng)的新品規(guī)出庫(kù)量曲線的點(diǎn)值,使用這些數(shù)據(jù),通過(guò)三次樣條插值擬合出一條平滑的曲線,代表該新品規(guī)在不同時(shí)間段內(nèi)的出庫(kù)量變化趨勢(shì),計(jì)算插值曲線在未來(lái)時(shí)間段t上的取值,該值即為預(yù)測(cè)的該時(shí)間段的新品規(guī)出庫(kù)量比值:,計(jì)算新品規(guī)的預(yù)測(cè)出庫(kù)量,無(wú)論是通過(guò)線性外推還是三次樣條插值計(jì)算得出的新品規(guī)出庫(kù)量比值?p,均可結(jié)合第一階段得出的品規(guī)類別出庫(kù)指數(shù)i,最終計(jì)算新品規(guī)在未來(lái)時(shí)間段t的預(yù)測(cè)出庫(kù)量:,其中,q為該時(shí)間段內(nèi)該品規(guī)類別中新品規(guī)的數(shù)量。
9、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果如下:
10、本發(fā)明通過(guò)分組使用時(shí)間序列模型,預(yù)測(cè)各種出庫(kù)量,對(duì)于每個(gè)品規(guī)分類推算本分類內(nèi)新品出庫(kù)量與非新品規(guī)出庫(kù)量的比例關(guān)系,通過(guò)使用前面的結(jié)果,計(jì)算出新品規(guī)的出庫(kù)量,并與得出的非新品規(guī)出庫(kù)量,一并構(gòu)成所有品規(guī)的出庫(kù)量預(yù)測(cè),以模型的訓(xùn)練速度在可接受的范圍內(nèi)為前提,解決快消品的品規(guī)變更頻繁的情況下,建立有效的模型以預(yù)測(cè)出庫(kù)量的問(wèn)題。