李長(zhǎng)云, 李亭立, 何頻捷, 黎建波, 王松燁, 毛鑫鑫
(1.湖南工業(yè)大學(xué)計(jì)算機(jī)學(xué)院, 株洲 412000; 2.湖南省智能信息感知及處理技術(shù)重點(diǎn)實(shí)驗(yàn)室, 株洲 412000)
紡織行業(yè)是中國(guó)國(guó)民經(jīng)濟(jì)與社會(huì)發(fā)展的支柱產(chǎn)業(yè)、解決民生與美化生活的基礎(chǔ)產(chǎn)業(yè)、國(guó)際合作與融合發(fā)展的優(yōu)勢(shì)產(chǎn)業(yè)[1]。隨著社會(huì)的發(fā)展,人們對(duì)服裝的需求趨于多樣化,而服裝需求問題的本質(zhì)是面料需求問題。面料作為服裝生產(chǎn)最主要的物質(zhì)材料,精準(zhǔn)的預(yù)測(cè)是企業(yè)健康運(yùn)行的保障。
面料需求問題是由行業(yè)性質(zhì)產(chǎn)生的。服裝行業(yè)整體環(huán)境復(fù)雜,產(chǎn)品生命周期短。為適應(yīng)市場(chǎng)需求,企業(yè)必須提高面料需求預(yù)測(cè)水平。面料不足會(huì)導(dǎo)致服裝產(chǎn)線受阻,生產(chǎn)成品不足,損害企業(yè)經(jīng)濟(jì)效益。面料過多會(huì)造成浪費(fèi),增大資金流轉(zhuǎn)危機(jī)。在服裝行業(yè)復(fù)雜多變的大環(huán)境下,面料需求的不確定性對(duì)服裝企業(yè)提出了巨大挑戰(zhàn)。目前,企業(yè)進(jìn)行面料需求預(yù)測(cè)主要存在如下問題:①服裝的面料組成復(fù)雜,不同服裝由不同規(guī)格型號(hào)的面料構(gòu)成。企業(yè)生產(chǎn)服裝未考慮面料間的關(guān)聯(lián)程度,憑借經(jīng)驗(yàn)預(yù)測(cè)各面料需求量,面料量不匹配導(dǎo)致生產(chǎn)時(shí)缺量或浪費(fèi)。②服裝面料需求隨環(huán)境動(dòng)態(tài)變化。一方面,需求數(shù)據(jù)具有周期非確定性;另一方面,服裝面料需求易受季節(jié)性及促銷活動(dòng)等多種因素影響。目前,服裝企業(yè)面料需求預(yù)測(cè)缺乏高精度預(yù)測(cè)的方法。
以上問題導(dǎo)致企業(yè)對(duì)服裝面料需求量缺乏科學(xué)預(yù)測(cè),造成面料積壓浪費(fèi)的情況嚴(yán)重。如何在復(fù)雜動(dòng)態(tài)的服裝大規(guī)模生產(chǎn)環(huán)境下,滿足服裝企業(yè)對(duì)不同規(guī)格型號(hào)面料的需求預(yù)測(cè),成為一個(gè)急需解決的問題。
需求預(yù)測(cè)是企業(yè)經(jīng)營(yíng)管理的重要方面,它直接影響生產(chǎn)過程以及經(jīng)濟(jì)效益的實(shí)現(xiàn)。葛娜等[2]采用Prophet-長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò) (long short-term memory, LSTM)組合預(yù)測(cè)模型預(yù)測(cè)某種產(chǎn)品銷售量的變化趨勢(shì),幫助企業(yè)制定營(yíng)銷戰(zhàn)略。白朝陽等[3]提出基于經(jīng)驗(yàn)?zāi)B(tài)分解及最小二乘支持向量機(jī)回歸組合模型預(yù)測(cè)企業(yè)物料,預(yù)測(cè)精度較高。研究相關(guān)文獻(xiàn),組合模型在預(yù)測(cè)方面具有優(yōu)勢(shì),但現(xiàn)有的預(yù)測(cè)方法仍存在以下不足:①僅針對(duì)單類產(chǎn)品預(yù)測(cè),未考慮產(chǎn)品間關(guān)聯(lián)關(guān)系;②組合模型加權(quán)采用窮舉法、數(shù)學(xué)推論式,導(dǎo)致一定誤差性。智能進(jìn)化算法能不斷訓(xùn)練模型得到最佳結(jié)果,盡可能減小誤差。
針對(duì)關(guān)聯(lián)問題,文獻(xiàn)[4-6]利用Apriori算法分析不同場(chǎng)景下銷售數(shù)據(jù)的關(guān)聯(lián)規(guī)則,制定組合產(chǎn)品營(yíng)銷策略。服裝面料歷史訂單是標(biāo)準(zhǔn)型數(shù)據(jù),采用Apriori算法可挖掘歷史訂單中不同規(guī)格型號(hào)面料間的強(qiáng)關(guān)聯(lián)關(guān)系。Apriori算法具有某項(xiàng)集頻繁則子項(xiàng)集也頻繁的特性,基于此可以避免項(xiàng)集數(shù)目的指數(shù)增長(zhǎng),在更短時(shí)間內(nèi)計(jì)算出頻繁項(xiàng)集,適合面料間關(guān)聯(lián)規(guī)則問題的解決,并能為預(yù)測(cè)提供先決條件。
面料需求預(yù)測(cè)由于受周期不確定性、生產(chǎn)動(dòng)態(tài)性、環(huán)境復(fù)雜性等因素的影響,預(yù)測(cè)準(zhǔn)確率波動(dòng)較大。傳統(tǒng)的需求預(yù)測(cè)模型采用定性預(yù)測(cè)方法,但當(dāng)數(shù)據(jù)過大時(shí)會(huì)產(chǎn)生較大誤差性,且對(duì)突發(fā)事件的適應(yīng)力差?;诮y(tǒng)計(jì)學(xué)的預(yù)測(cè)方法有時(shí)間序列預(yù)測(cè)法及因果分析法等?;谥悄芩惴ǖ念A(yù)測(cè)方法有灰色預(yù)測(cè)法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)法、遺傳算法及支持向量機(jī)等。服裝面料需求數(shù)據(jù)與時(shí)間有著密切關(guān)聯(lián),具有明顯的周期性與季節(jié)性。針對(duì)服裝面料需求預(yù)測(cè)的特點(diǎn),時(shí)間序列預(yù)測(cè)算法具有顯著優(yōu)勢(shì),傳統(tǒng)時(shí)間序列預(yù)測(cè)方法如自回歸模型、滑動(dòng)平均模型和自回歸移動(dòng)平均模型能較好擬合時(shí)序歷史數(shù)據(jù)[7-9],被廣泛應(yīng)用于需求量預(yù)測(cè),但擬合效果易受季節(jié)性及突發(fā)事件的影響。人工神經(jīng)網(wǎng)絡(luò)方法能自學(xué)習(xí)數(shù)據(jù)內(nèi)部規(guī)律,在非線性部分具有優(yōu)秀表現(xiàn),但普用性差[10-11]?,F(xiàn)實(shí)應(yīng)用中,時(shí)序數(shù)據(jù)具有復(fù)合性,相比于單一模型,組合模型在捕捉數(shù)據(jù)特征方面更具優(yōu)勢(shì)[12-15]。在此基礎(chǔ)上,采用進(jìn)化算法優(yōu)化組合模型權(quán)值系數(shù),能提高服裝面料需求預(yù)測(cè)的準(zhǔn)確度。
因此現(xiàn)基于關(guān)聯(lián)算法挖掘面料間關(guān)聯(lián)規(guī)則,采用量子粒子群算法優(yōu)化組合模型權(quán)值系數(shù),實(shí)現(xiàn)高精度面料預(yù)測(cè),是在現(xiàn)有的理論基礎(chǔ)上進(jìn)行的更深層次研究,具有創(chuàng)新性,可行性強(qiáng)。
為解決服裝企業(yè)對(duì)不同規(guī)格型號(hào)面料需求預(yù)測(cè)難的問題,本文提出一種基于關(guān)聯(lián)規(guī)則及組合模型的面料需求預(yù)測(cè)方法。以某企業(yè)2016年3月—2019年8月的服裝面料歷史訂單數(shù)據(jù)為對(duì)象,通過Apriori算法挖掘不同規(guī)格型號(hào)面料間的關(guān)聯(lián)規(guī)則??紤]服裝面料特征,結(jié)合時(shí)間序列及神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型優(yōu)勢(shì),同時(shí)采用量子粒子群算法優(yōu)化Prophet與LSTM組合模型的權(quán)值系數(shù),提升預(yù)測(cè)精度。最后,采用均方根誤差 (root mean squared error,RMSE)及平均絕對(duì)誤差 (mean absolute error,MAE)作為評(píng)價(jià)指標(biāo)驗(yàn)證模型的準(zhǔn)確性和可行性。該方法在挖掘面料型號(hào)關(guān)聯(lián)規(guī)則的基礎(chǔ)上,優(yōu)化面料需求預(yù)測(cè)組合模型,對(duì)于實(shí)現(xiàn)服裝企業(yè)面料需求的高精度預(yù)測(cè)具有重要意義,在解決服裝企業(yè)的面料需求預(yù)測(cè)問題上有一定優(yōu)勢(shì)。
服裝企業(yè)面料生產(chǎn)規(guī)模大,企業(yè)生產(chǎn)線資源有限。基于僅單品類面料需求預(yù)測(cè)生產(chǎn),產(chǎn)線產(chǎn)品單調(diào)且耗時(shí)較長(zhǎng)?;趦H多品類面料需求預(yù)測(cè)生產(chǎn),未考慮不同規(guī)格型號(hào)的面料關(guān)系時(shí),產(chǎn)線按順序生產(chǎn)的面料可能無法構(gòu)成一款成衣,需要等待下一輪產(chǎn)線生產(chǎn)的產(chǎn)品?;陉P(guān)聯(lián)規(guī)則及組合模型的面料需求預(yù)測(cè)能首先挖掘出面料間關(guān)聯(lián)關(guān)系,進(jìn)一步預(yù)測(cè)需求量,基于面料配比及時(shí)生產(chǎn)成衣,實(shí)現(xiàn)企業(yè)柔性生產(chǎn),協(xié)調(diào)資源。
現(xiàn)以面料需求不確定性和不同規(guī)格型號(hào)面料需求預(yù)測(cè)難兩大挑戰(zhàn)為突破口,重點(diǎn)圍繞構(gòu)建面料關(guān)聯(lián)模型及構(gòu)建基于量子粒子群的面料需求預(yù)測(cè)組合模型開展研究。通過Apriori關(guān)聯(lián)模型挖掘不同規(guī)格型號(hào)面料在規(guī)格和時(shí)間維度的關(guān)聯(lián)規(guī)則。Prophet模型以及LSTM模型在時(shí)間序列預(yù)測(cè)方面具有優(yōu)秀表現(xiàn)。采用量子粒子群算法優(yōu)化Prophet-LSTM組合模型的權(quán)值系數(shù),最終構(gòu)建組合預(yù)測(cè)模型,提高預(yù)測(cè)精度。研究思路如圖1所示。
圖1 研究思路Fig.1 Research idea
Apriori算法在挖掘關(guān)聯(lián)規(guī)則方面具有優(yōu)秀表現(xiàn)。采用智能進(jìn)化算法結(jié)合時(shí)間序列與神經(jīng)網(wǎng)絡(luò)模型的優(yōu)勢(shì),能更好地挖掘內(nèi)部潛在規(guī)律。首先,基于Apriori算法挖掘不同規(guī)格型號(hào)面料間的關(guān)聯(lián)規(guī)則。然后構(gòu)建面料需求預(yù)測(cè)組合模型,Prophet時(shí)間序列模型擬合周期性數(shù)據(jù),LSTM神經(jīng)網(wǎng)絡(luò)擬合非線性特征部分。再構(gòu)建適應(yīng)度函數(shù),采用量子粒子群算法迭代優(yōu)化模型權(quán)值系數(shù)。最后,以RMSE及MAE作為預(yù)測(cè)評(píng)價(jià)指標(biāo),衡量預(yù)測(cè)準(zhǔn)確度。模型框架如圖2所示,其中A~N代表不同型號(hào)的面料;P(t)代表Prophet訓(xùn)練出的預(yù)測(cè)值;L(t)代表LSTM訓(xùn)練出的預(yù)測(cè)值;ω1和ω2代表Prophet及LSTM模型的權(quán)值系數(shù);C代表不同時(shí)刻的細(xì)胞狀態(tài);h代表不同時(shí)刻的隱藏層的狀態(tài)。
圖2 模型框架Fig.2 Model framework
1.2.1 基于Apriori的面料關(guān)聯(lián)模型
Apriori算法是挖掘數(shù)據(jù)關(guān)聯(lián)規(guī)則的常用算法,通過掃描數(shù)據(jù)集構(gòu)成頻繁項(xiàng)集,然后約束頻繁項(xiàng)集來挖掘關(guān)聯(lián)規(guī)則的算法?;贏priori算法的面料關(guān)聯(lián)模型主要包括發(fā)現(xiàn)面料頻繁項(xiàng)集與挖掘面料關(guān)聯(lián)規(guī)則兩部分。面料頻繁項(xiàng)集是指面料數(shù)據(jù)集中經(jīng)常出現(xiàn)的面料的集合。支持度、置信度和提升度是評(píng)估頻繁項(xiàng)集的常用指標(biāo),以此來量化頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則。X和Y可指代兩種不同型號(hào)的面料,關(guān)聯(lián)規(guī)則的支持度Sup指X和Y在數(shù)據(jù)集中同時(shí)出現(xiàn)的概率。支持度越高,構(gòu)成頻繁項(xiàng)集的可能性越高,但支持度過低時(shí)則無法構(gòu)成頻繁項(xiàng)集。置信度體現(xiàn)數(shù)據(jù)集中某項(xiàng)出現(xiàn)后,另一項(xiàng)也出現(xiàn)的概率。置信度Con指當(dāng)X存在的條件下,Y也存在的概率。提升度Lift表示含有Y的條件下,同時(shí)含有X的概率。提升度能體現(xiàn)X和Y之間關(guān)聯(lián)關(guān)系的強(qiáng)弱。提升度越大,關(guān)聯(lián)程度越強(qiáng)。表達(dá)式為
Sup(X,Y)=P(X∩Y)
(1)
(2)
(3)
Apriori算法使用逐層搜索的迭代方法,其中k項(xiàng)集用于探索k+1項(xiàng)集。如圖2所示,首先,掃描服裝面料需求歷史訂單數(shù)據(jù),生成面料類別候選頻繁1項(xiàng)集。然后,計(jì)算候選頻繁1項(xiàng)集的支持度Sup,依次與預(yù)設(shè)的最小支持度閾值做比較,去除低于最小支持度閾值的面料類別。判斷剩余的項(xiàng)集是否為空,成立則產(chǎn)生面料關(guān)聯(lián)規(guī)則,不成立則循環(huán)連接生成候選頻繁k+1項(xiàng)集,直至生成關(guān)聯(lián)規(guī)則。
1.2.2 Prophet預(yù)測(cè)模型
Prophet模型是Facebook發(fā)布的開源時(shí)間序列預(yù)測(cè)框架[16]。服裝面料需求歷史訂單數(shù)據(jù)具有周期不確定性的特點(diǎn),針對(duì)歷史訂單時(shí)序數(shù)據(jù),Prophet對(duì)其趨勢(shì)變化點(diǎn)的檢測(cè)、季節(jié)性、節(jié)假日以及突發(fā)事件具有很好的擬合效果。Prophet與傳統(tǒng)的時(shí)間序列方法不同,在建模時(shí)不要求歷史數(shù)據(jù)是連續(xù)值,其主要考慮時(shí)間結(jié)構(gòu)的依賴關(guān)系,因此比傳統(tǒng)的時(shí)間序列模型更有優(yōu)勢(shì)。Prophet是一個(gè)加法回歸模型,基于 時(shí)間序列分解(seasonal-trend-loss,STL)分解的思想將模型分解成趨勢(shì)項(xiàng)、季節(jié)項(xiàng)及假期項(xiàng)三部分,基本模型為
y(t)=g(t)+s(t)+h(t)+ε(t)
(4)
式(4)中:g(t)為趨勢(shì)函數(shù),它用于分析和擬合服裝面料時(shí)間序列中周期的不確定性變化;s(t)為服裝面料時(shí)間序列的周期性變化,可用于模擬周、月、年等各種周期變化趨勢(shì);h(t)為服裝面料非周期性的不規(guī)律的假期影響,并且可以根據(jù)服裝面料熱銷期來自定義假期列表實(shí)現(xiàn)節(jié)假日或突發(fā)事件場(chǎng)景下的預(yù)測(cè);ε(t)為模型中未反映的噪聲部分并假設(shè)噪聲因子服從正態(tài)分布。
1.2.3 LSTM預(yù)測(cè)模型
針對(duì)服裝面料需求歷史訂單時(shí)序數(shù)據(jù)非線性的部分,LSTM神經(jīng)網(wǎng)絡(luò)能自學(xué)習(xí)數(shù)據(jù)內(nèi)部特征進(jìn)一步預(yù)測(cè)。LSTM長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)是一種對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)改進(jìn)的特殊形式[17]。Hochreiter等[18]于1997年提出LSTM以改進(jìn)實(shí)際應(yīng)用中RNN存在的長(zhǎng)期記憶力弱、梯度消失的問題[19]。LSTM在RNN隱藏層節(jié)點(diǎn)上增加了記憶單元結(jié)構(gòu)用來解決長(zhǎng)期依賴的問題,通過對(duì)遺忘門、輸入門和輸出門的控制,實(shí)現(xiàn)對(duì)歷史信息的部分遺忘、刷新和保存[20]。將服裝面料時(shí)間序列數(shù)據(jù)輸入到輸入層,LSTM神經(jīng)網(wǎng)絡(luò)模型可以通過劃分時(shí)間步長(zhǎng)輸入數(shù)據(jù),由輸入數(shù)據(jù)及上一層隱藏層的輸出自學(xué)習(xí)歷史訂單需求量時(shí)序數(shù)據(jù)的內(nèi)部特征。LSTM單元結(jié)構(gòu)如圖3所示。
C代表不同時(shí)刻的細(xì)胞狀態(tài);h代表不同時(shí)刻的隱藏層的狀態(tài);σ表示sigmoid函數(shù);tanh表示雙曲正切函數(shù);ft、it、ot為對(duì)應(yīng)門限參數(shù)圖3 LSTM單元結(jié)構(gòu)圖Fig.3 LSTM unit structure diagram
1.2.4 量子粒子群算法加權(quán)的QPSOProphet-LSTM預(yù)測(cè)模型
針對(duì)生成規(guī)則的具關(guān)聯(lián)性面料,Prophet模型擬合面料的周期性、季節(jié)性、節(jié)假日及特殊促銷活動(dòng),得到面料需求預(yù)測(cè)值P(t)。LSTM神經(jīng)網(wǎng)絡(luò)劃分面料需求歷史訂單數(shù)據(jù)的時(shí)間步長(zhǎng),自學(xué)習(xí)得到面料需求預(yù)測(cè)值L(t)。構(gòu)建組合預(yù)測(cè)模型,表達(dá)式為
Y(t)=ω1P(t)+ω2L(t),t=1,2,…,N
(5)
ω1+ω2=1
(6)
式中:ω1和ω2為Prophet及LSTM模型的權(quán)值系數(shù)。為使模型預(yù)測(cè)性能更佳,使用量子粒子群算法優(yōu)化權(quán)值系數(shù)。
量子粒子群算法(quantum particle swarm optimization,QPSO)是在粒子群算法(particle swarm optimization,PSO)的基礎(chǔ)上引入一種量子行為并取消粒子運(yùn)動(dòng)速度向量的新算法[21]。相比于PSO,QPSO能避免粒子位置變化缺少隨機(jī)性而陷入局部最優(yōu)的問題[22-24]。
為衡量是否取得最優(yōu)解,構(gòu)建適應(yīng)度函數(shù)h(ω)為
(7)
式(7)中:R(t)為面料需求實(shí)際值。
設(shè)定ω1和ω2的搜索范圍以及最大迭代次數(shù),求解粒子的適應(yīng)度值。更新粒子全局最優(yōu)解及局部最優(yōu)解,在最大迭代次數(shù)范圍迭代尋優(yōu)直到得到最佳權(quán)值系數(shù)。
不同規(guī)格型號(hào)的面料需求數(shù)據(jù)在模型中會(huì)有不同的表現(xiàn)。區(qū)別于普通的線性加權(quán)方法,量子粒子群優(yōu)化算法能根據(jù)模型的表現(xiàn),動(dòng)態(tài)訓(xùn)練出最佳的組合模型權(quán)值系數(shù)值。最終,在最大迭代次數(shù)內(nèi)對(duì)ω1和ω2進(jìn)行迭代尋優(yōu),直到得到最優(yōu)的ω1和ω2參數(shù),構(gòu)建出QPSOProphet-LSTM預(yù)測(cè)組合模型。具體實(shí)施步驟如下所示。
Step 1設(shè)置種群大小M,粒子維度為D,可調(diào)的控制系數(shù)β,最大迭代次數(shù)T,設(shè)置參數(shù)ω1和ω2的訓(xùn)練范圍為[0.001,0.999]。
Step 2初始化粒子群位置列表。
Step 3構(gòu)建適應(yīng)度函數(shù)h(ω)。
Step 4計(jì)算Step 2中粒子的適應(yīng)度函數(shù)值,根據(jù)適應(yīng)度函數(shù)值更新個(gè)體與全局最優(yōu)參數(shù)。
Step 5再次計(jì)算全部粒子當(dāng)前適應(yīng)度函數(shù)值,重置個(gè)體與全局最優(yōu)參數(shù),更新粒子群位置列表。
Step 6當(dāng)達(dá)到最大迭代次數(shù)時(shí)停止,否則重復(fù)Step 5,直至得到最優(yōu)參數(shù)及其對(duì)應(yīng)的預(yù)測(cè)精度更高的面料需求預(yù)測(cè)組合模型。
采用線性加權(quán)法優(yōu)化組合模型能簡(jiǎn)單可行地得到權(quán)重及對(duì)應(yīng)的預(yù)測(cè)結(jié)果,但高效性無法得到保證。在量子粒子群迭代尋找最優(yōu)權(quán)值系數(shù)的過程中,粒子的位置以隨機(jī)的方式初始化,并迭代地更新最優(yōu)粒子的參數(shù)。量子粒子群算法能夠快速收斂到全局最優(yōu)點(diǎn),而且對(duì)初始狀態(tài)要求不高。采用量子粒子群算法能自學(xué)習(xí)自身經(jīng)驗(yàn),并且可以通過調(diào)整少量參數(shù)的方式,根據(jù)權(quán)重范圍進(jìn)行全局搜索,提高預(yù)測(cè)精度。
不同于傳統(tǒng)只針對(duì)某特定面料歷史數(shù)據(jù)預(yù)測(cè)的思路,基于量子粒子群優(yōu)化組合模型的方法能實(shí)現(xiàn)不同規(guī)格型號(hào)面料的動(dòng)態(tài)需求預(yù)測(cè),更適合多樣化的服裝面料生產(chǎn)情形。
評(píng)價(jià)指標(biāo)是衡量模型的預(yù)測(cè)效果的標(biāo)準(zhǔn),常用的評(píng)價(jià)指標(biāo)有方根誤差(RMSE)及平均絕對(duì)誤差(MAE)[25]表達(dá)式為
(8)
(9)
當(dāng)RMSE、MAE評(píng)價(jià)指標(biāo)的結(jié)果越小時(shí),預(yù)測(cè)值與真實(shí)值之間誤差越小,模型的預(yù)測(cè)精度越高,模型效果越好[26]。
本文采用的實(shí)驗(yàn)數(shù)據(jù)來源于某服裝生產(chǎn)企業(yè),該企業(yè)坐落于服裝生產(chǎn)集聚區(qū)專業(yè)生產(chǎn)基地,是一家集生產(chǎn)、銷售于一體的現(xiàn)代服裝生產(chǎn)企業(yè)。企業(yè)產(chǎn)品涵蓋男女四季服裝,面向全國(guó)中小型服裝店及網(wǎng)店提供貨源。選取該企業(yè)2016年3月—2019年8月的面料歷史訂單數(shù)據(jù),經(jīng)整理統(tǒng)計(jì)共計(jì)25583組訂單數(shù)據(jù)。每組數(shù)據(jù)包括訂單號(hào)(Order ID)、訂單日期(Date)、面料型號(hào)(Specifications)、面料數(shù)量(Quantity)、面料價(jià)格(Price)以及訂單產(chǎn)品總數(shù)(Product quantity)相關(guān)信息,部分?jǐn)?shù)據(jù)如表1所示。
面料歷史需求數(shù)據(jù)體現(xiàn)在每個(gè)獨(dú)立訂單中,需要提取歸并各訂單中不同面料的信息。將面料數(shù)據(jù)按訂單號(hào)進(jìn)行分組,轉(zhuǎn)換成每行一個(gè)事務(wù)的形式,顯示單個(gè)訂單中各自產(chǎn)品的數(shù)量。以訂單號(hào)(Order ID)作為索引,依據(jù)訂單號(hào)對(duì)數(shù)據(jù)進(jìn)行分組。采取給不同面料產(chǎn)品設(shè)置布爾值的方式,明確該產(chǎn)品是否在面料訂單中,將不在訂單中的產(chǎn)品用0進(jìn)行填充,預(yù)處理后的面料需求訂單如表2所示。
表1 某服裝企業(yè)部分面料需求歷史訂單數(shù)據(jù)Table 1 Some fabric demand historical order data of a garment enterprise
表2 預(yù)處理后的面料需求訂單Table 2 Pre-processed fabric demand order
由表2可見,面料訂單時(shí)間間隔較短,整理后的面料需求訂單可直觀獲得單項(xiàng)面料的時(shí)間以及需求量。由于企業(yè)實(shí)際生產(chǎn)情況,每批次面料生產(chǎn)數(shù)量大,按分鐘預(yù)測(cè)面料需求量的意義不大。并且單次面料需求量可供一段時(shí)間使用,體現(xiàn)在數(shù)據(jù)上可能過于離散。為解決過于離散導(dǎo)致數(shù)據(jù)特征分析難的問題,采用按月重采樣的方法對(duì)數(shù)據(jù)進(jìn)行聚合處理,針對(duì)面料需求歷史訂單數(shù)據(jù)中的缺失值,采用同期數(shù)據(jù)均值進(jìn)行填充。為提高數(shù)據(jù)建模的準(zhǔn)確性,對(duì)需求數(shù)據(jù)取對(duì)數(shù)處理,使需求數(shù)據(jù)接近正態(tài)分布。以面料azwx75163為例,預(yù)處理后的azwx75163型號(hào)面料在2016年3月—2019年8月間的服裝面料需求歷史訂單數(shù)據(jù)如圖4所示。由圖4可見,在2016年3月—2019年8月間,面料azwx75163的需求數(shù)據(jù)呈周期性波動(dòng),具有顯著周期性和季節(jié)性趨勢(shì)。
圖4 2016年3月—2019年8月面料azwx75163需求Fig.4 Demand forazwx75163 fabric from March 2016 to August 2019
本實(shí)驗(yàn)基于Python3開發(fā)環(huán)境,在Jupyter Notebook實(shí)現(xiàn)整個(gè)實(shí)驗(yàn)流程。具體配置如表3所示。
表3 實(shí)驗(yàn)環(huán)境配置Table 3 Experimental environment configuration
采用Apriori算法挖掘面料關(guān)聯(lián)規(guī)則,最佳支持度閾值的選取尤為重要。支持度閾值過低會(huì)導(dǎo)致算法耗時(shí)長(zhǎng),支持度閾值過高會(huì)得到大量無用規(guī)則。
在關(guān)聯(lián)規(guī)則挖掘中,挖掘算法的支持度與輸出結(jié)果之間存在著函數(shù)關(guān)系,但是其輸入與輸出之間不存在一種特定的解析表達(dá)式。文獻(xiàn)[27]提出一種可以利用以前挖掘所用的支持度參數(shù)信息來估計(jì)當(dāng)前挖掘的最佳支持度的牛頓插值算法。牛頓插值多項(xiàng)式是根據(jù)以前挖掘采用的支持度和置信度閾值以及算法輸出的關(guān)聯(lián)規(guī)則的數(shù)目,聯(lián)系當(dāng)前的挖掘目標(biāo)來預(yù)計(jì)當(dāng)前挖掘應(yīng)當(dāng)采用的支持度閾值,使得挖掘出的關(guān)聯(lián)規(guī)則可信度高且關(guān)聯(lián)規(guī)則的數(shù)目接近期望值或控制在合理范圍內(nèi)。因此可以將支持度閾值與關(guān)聯(lián)規(guī)則的數(shù)目形成插值函數(shù)來尋找更佳的支持度閾值。
由于面料型號(hào)眾多,所有面料皆有關(guān)聯(lián)的程度較低,根據(jù)服裝廠面料匹配經(jīng)驗(yàn)關(guān)聯(lián)面料量與總面料型號(hào)量比一般不超過10%。取其1/2,選擇初始支持度閾值為5%,然后分別選取兩值的0.1倍作為不同的支持度閾值進(jìn)行挖掘,形成插值結(jié)點(diǎn)。本實(shí)驗(yàn)分別設(shè)置支持度閾值為0.5%、1%、5%、10%,對(duì)比生成的規(guī)則數(shù)目來選取最佳支持度閾值,生成的規(guī)則數(shù)結(jié)果如圖5所示。
圖5 不同支持度閾值生成規(guī)則數(shù)對(duì)比Fig.5 Comparison of the number of generated rules with different support thresholds
由圖5可得,當(dāng)支持度閾值為0.5%時(shí),生成了大量置信度低的無用規(guī)則。當(dāng)支持度閾值為5%時(shí),僅生成了27條規(guī)則,且其中18條置信度低于0.5;當(dāng)支持度閾值為10%時(shí),僅生成了8條規(guī)則,且其中6條置信度低于0.5。生成的規(guī)則數(shù)量少且可信度極低,這表明生成的規(guī)則不具代表性。當(dāng)支持度閾值為1%時(shí),生成了百多條規(guī)則,且其中84條有至少50%的置信度。因此,本實(shí)驗(yàn)設(shè)置服裝面料最小支持度閾值(min_support)為0.01。
設(shè)置metric為“l(fā)ift”,將提升度lift作為規(guī)則排序的度量依據(jù)。設(shè)置最小度量值min_threshold_for_metric為1,當(dāng)lift大于1時(shí),面料間呈正相關(guān),且當(dāng)值越大時(shí),面料間的關(guān)聯(lián)正相關(guān)程度越高。當(dāng)lift等于1時(shí),面料間沒有相關(guān)關(guān)系。當(dāng)lift小于1時(shí),面料間成負(fù)相關(guān),且當(dāng)數(shù)值越小時(shí),負(fù)相關(guān)程度越高。采用Apriori算法遍歷服裝面料需求歷史訂單數(shù)據(jù)生成面料類別候選頻繁項(xiàng)集,計(jì)算組成的候選頻繁項(xiàng)集支持度Sup,將候選頻繁項(xiàng)集中所有支持度小于最小支持度閾值0.01的項(xiàng)集去除,循環(huán)連接生成候選頻繁項(xiàng)集 itemsets直至產(chǎn)生面料關(guān)聯(lián)規(guī)則,結(jié)果如表4所示。
表4 面料關(guān)聯(lián)結(jié)果Table 4 Fabric correlation results
由結(jié)果可知,面料azwx75163與面料fzde91632關(guān)聯(lián)程度最高,其次面料qpayj86196與面料Pilce35587、面料Onaji48614關(guān)聯(lián)程度高,很大程度構(gòu)成某款服裝產(chǎn)品。挖掘面料關(guān)聯(lián)規(guī)則后,將預(yù)處理的關(guān)聯(lián)面料輸入組合預(yù)測(cè)模型,以面料azwx75163為例。
使用Prophet模型對(duì)面料azwx75163歷史需求數(shù)據(jù)進(jìn)行擬合并預(yù)測(cè)。設(shè)置數(shù)據(jù)前70%為訓(xùn)練集且后30%為測(cè)試集。實(shí)例化Prophet對(duì)象,面料時(shí)間序列具有明顯的年度周期,但在不同月份周期的變化不一樣,其季節(jié)性不是Prophet默認(rèn)的恒定加性因子,而是隨著趨勢(shì)增長(zhǎng),具有乘法季節(jié)性,設(shè)置seasonality_mode為“multiplicative”來建立乘法模型。預(yù)測(cè)中不確定性的最大原因在于未來趨勢(shì)變化不確定。Prophet 假定未來趨勢(shì)的平均變動(dòng)頻率和幅度與歷史值一致,來預(yù)測(cè)趨勢(shì)變化并計(jì)算得到預(yù)測(cè)區(qū)間。當(dāng)變化速率靈活性增大時(shí),預(yù)測(cè)的不確定性會(huì)隨之增大。設(shè)置參數(shù)changepoint_prior_scale為0.3以降低預(yù)測(cè)的不確定性,調(diào)整趨勢(shì)擬合程度。設(shè)置置信區(qū)間參數(shù)interval_width 為0.8來控制預(yù)測(cè)區(qū)間的寬度。面料時(shí)間序列數(shù)據(jù)在趨勢(shì)中存在一些突變點(diǎn),默認(rèn)情況下Prophet將自動(dòng)監(jiān)測(cè)突變點(diǎn)并對(duì)趨勢(shì)做出調(diào)整。但Prophet會(huì)存在忽略趨勢(shì)速率的變化點(diǎn)或?qū)v史數(shù)據(jù)趨勢(shì)變化存在過擬合的現(xiàn)象,因此需要設(shè)置突變點(diǎn)參數(shù)對(duì)趨勢(shì)的調(diào)整過程進(jìn)行更好地控制,設(shè)置參數(shù)changepoint_range為0.8在面料時(shí)間序列的前80%處尋找突變點(diǎn),確保有足夠的長(zhǎng)度預(yù)測(cè)未來的趨勢(shì),避免時(shí)間序列末尾過擬合。實(shí)例化Prophet模型時(shí)為內(nèi)置的周季節(jié)性指定了傅里葉級(jí)數(shù)為3,設(shè)置weekly_seasonality為4增加周季節(jié)性的變化,使其適應(yīng)面料數(shù)據(jù)更高頻率的變化??紤]節(jié)假日對(duì)服裝面料需求不可忽視的影響,本實(shí)驗(yàn)創(chuàng)建了新的DataFrame用于記錄歷史時(shí)間及待預(yù)測(cè)時(shí)間中出現(xiàn)的所有節(jié)假日,實(shí)現(xiàn)對(duì)節(jié)假日的建模,為防止節(jié)假日效應(yīng)被過度擬合,默認(rèn)設(shè)置參數(shù)holidays_prior_scale為10使先驗(yàn)規(guī)模平滑。Prophet模型具體參數(shù)配置如表5所示。
表5 Prophet模型參數(shù)配置Table 5 Prophet model parameter configuration
Prophet模型成分分解得到trend、weekly、yearly以及holidays 4個(gè)部分,如圖6所示。由圖6可得,面料azwx75163整體趨勢(shì)穩(wěn)定波動(dòng),每年的5、6月份需求量最大,是受春夏換季氣溫升高影響。全年每月月初需求量開始增加,到中旬達(dá)到峰值后逐漸降低。從周趨勢(shì)分析,周末需求量大于工作日,周末人們有更多時(shí)間購(gòu)物。Prophet模型得到預(yù)測(cè)結(jié)果P(t),RMSE為15.087,MAE為11.512。
通過LSTM神經(jīng)網(wǎng)絡(luò)對(duì)面料azwx75163歷史訂單數(shù)據(jù)劃分時(shí)間步長(zhǎng)自學(xué)習(xí)規(guī)律。為加速模型收斂及提升計(jì)算精度,對(duì)原始數(shù)據(jù)進(jìn)行歸一化處理,將原始范圍內(nèi)的數(shù)據(jù)重新縮放至0~1的范圍,減小訓(xùn)練數(shù)據(jù)的極差,加快訓(xùn)練模型loss下降速度。將原始數(shù)據(jù)歸一化處理后,直接采用留出法將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集兩部分。由于本實(shí)驗(yàn)的面料需求數(shù)據(jù)是時(shí)序數(shù)據(jù),可以通過擬合前段歷史數(shù)據(jù)捕捉其周期特性來預(yù)測(cè)未來的需求量。在劃分集合的時(shí)候,選取多種劃分情況重復(fù)實(shí)驗(yàn)比較后,設(shè)置數(shù)據(jù)前70%為訓(xùn)練集且后30%為測(cè)試集。神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練時(shí)存在一定的隨機(jī)性,設(shè)置隨機(jī)種子數(shù)為計(jì)算創(chuàng)造隨機(jī)數(shù)環(huán)境。batch_size是每次梯度更新的樣本數(shù),其大小影響模型的優(yōu)化程度和速度。batch_size一般常用16、32、64,增大batch_size,處理相同數(shù)據(jù)量的速度會(huì)變快。在設(shè)置batch_size時(shí),重復(fù)實(shí)驗(yàn)并觀察loss收斂的情況,當(dāng)收斂效果不好時(shí)則降低。當(dāng)神經(jīng)單元個(gè)數(shù)為128時(shí),模型擬合精度更高。由于面料需求量預(yù)測(cè)是一個(gè)回歸問題,因此采用MSE作為損失函數(shù)。激活函數(shù)使用tanh函數(shù),其輸出在-1~1之間,以0為中心并在0附近梯度大,模型收斂更快。在構(gòu)建LSTM模型時(shí),使用Adam自適應(yīng)估計(jì)算法對(duì)模型進(jìn)行優(yōu)化,能使參數(shù)調(diào)整得更平穩(wěn)。LSTM模型具體參數(shù)配置如表6所示。
圖6 Prophet模型成分分析Fig.6 Prophet model component analysis
表6 LSTM模型參數(shù)配置Table 6 LSTM model parameter configuration
初始化LSTM神經(jīng)網(wǎng)絡(luò)模型,每次用1個(gè)樣本進(jìn)行100個(gè)周期的訓(xùn)練。LSTM模型得到預(yù)測(cè)結(jié)果L(t),RMSE為10.807,MAE為8.070。
為充分利用Prophet與LSTM模型優(yōu)勢(shì),構(gòu)建適應(yīng)度函數(shù)式(7),采用量子粒子群算法對(duì)組合模型的系數(shù)ω1和ω2迭代尋優(yōu)。設(shè)定ω1和ω2的參數(shù)范圍以限定權(quán)值系數(shù)的搜尋區(qū)間。ω1和ω2之和為1,設(shè)置粒子維度為1則僅需尋優(yōu)一個(gè)參數(shù),并通過計(jì)算得到另一個(gè)權(quán)值系數(shù)。由于本實(shí)驗(yàn)僅需在參數(shù)范圍[0.001,0.999]之間尋找一個(gè)權(quán)值系數(shù),為保證算法收斂速度,設(shè)置大小為50的粒子群進(jìn)行100次以內(nèi)的迭代以尋找最優(yōu)權(quán)值,經(jīng)過重復(fù)實(shí)驗(yàn)比較,當(dāng)壓縮擴(kuò)張因子為0.6時(shí)性能更好。量子粒子群算法具體參數(shù)配置如表7所示。
采取隨機(jī)方式初始化粒子位置,迭代更新最優(yōu)粒子,最優(yōu)適應(yīng)度函數(shù)值隨迭代次數(shù)的變化如圖7所示,得最優(yōu)適應(yīng)度函數(shù)值為9.622 6。
訓(xùn)練得到最佳權(quán)值參數(shù)ω1=0.293,ω2=0.707。算術(shù)平均法給組合模型中的各模型平均分配權(quán)重,這種方法易行,但是無法分析出模型的優(yōu)勢(shì)比例,未考慮各模型的優(yōu)勢(shì)及差異。線性加權(quán)法能衡量各模型效果并對(duì)其線性加權(quán),但不能很好地學(xué)習(xí)自身經(jīng)驗(yàn),不能在權(quán)重范圍內(nèi)進(jìn)行全局搜索,很難得到最優(yōu)權(quán)重。不同規(guī)格型號(hào)的面料需求數(shù)據(jù)由于自身特征差異,在模型訓(xùn)練過程中會(huì)得到不同結(jié)果,量子粒子群優(yōu)化算法能根據(jù)模型的表現(xiàn),動(dòng)態(tài)訓(xùn)練出最佳的組合模型權(quán)值系數(shù),該方法能有效提高面料需求預(yù)測(cè)精確度。統(tǒng)計(jì)不同權(quán)值系數(shù)構(gòu)成的組合預(yù)測(cè)模型的RMSE以及MAE結(jié)果值,不同權(quán)值系數(shù)預(yù)測(cè)評(píng)價(jià)指標(biāo)對(duì)比如表8所示。當(dāng)ω1=1,ω2=0時(shí),對(duì)應(yīng)Prophet預(yù)測(cè)模型。當(dāng)ω1=0,ω2=1時(shí),對(duì)應(yīng)LSTM預(yù)測(cè)模型。
表7 量子粒子群算法參數(shù)配置Table 7 Parameter configuration of quantum particle swarm optimization
圖7 最優(yōu)適應(yīng)度函數(shù)值迭代次數(shù)變化Fig.7 Changes in iteration times of optimal fitness function value
采用單模型Prophet、LSTM與量子粒子群優(yōu)化的QPSOProphet-LSTM面料需求預(yù)測(cè)模型作對(duì)比實(shí)驗(yàn)進(jìn)行驗(yàn)證,各模型預(yù)測(cè)結(jié)果對(duì)比如圖8所示。
實(shí)驗(yàn)結(jié)果表明,相較于Prophet及LSTM,采用量子粒子群優(yōu)化的QPSOProphet-LSTM面料需求預(yù)測(cè)模型RMSE及MAE值最小,RMSE較Prophet降低5.464,較LSTM降低1.184;MAE較Prophet降低4.261,較LSTM降低0.819,預(yù)測(cè)精度更高。通過Apriori算法挖掘面料azwx75163與面料fzde91632關(guān)聯(lián),再基于量子粒子群加權(quán)的面料需求組合預(yù)測(cè)模型能針對(duì)面料需求進(jìn)行有效預(yù)測(cè),能有效解決面料需求非確定性、預(yù)測(cè)難的問題,滿足服裝企業(yè)柔性生產(chǎn)。
表8 不同權(quán)值系數(shù)預(yù)測(cè)評(píng)價(jià)指標(biāo)對(duì)比Table 8 Comparison of prediction and evaluation indexes with different weight coefficients
圖8 各模型預(yù)測(cè)結(jié)果對(duì)比圖Fig.8 Comparison of prediction results of each model
針對(duì)服裝企業(yè)面料組成復(fù)雜導(dǎo)致需求預(yù)測(cè)難的問題,本文提出一種基于Apriori關(guān)聯(lián)規(guī)則及組合模型的預(yù)測(cè)方法。通過實(shí)驗(yàn)驗(yàn)證得到以下結(jié)論。
(1)采用Apriori算法挖掘不同規(guī)格型號(hào)服裝面料的關(guān)聯(lián)規(guī)則,對(duì)比不同支持度閾值,得到最佳規(guī)則,有利于解決面料量匹配預(yù)測(cè)難題,柔性生產(chǎn)。
(2)針對(duì)服裝面料周期不確定性,提出量子粒子群優(yōu)化加權(quán)的需求預(yù)測(cè)組合模型。評(píng)價(jià)指標(biāo)RMSE及MAE值降低,預(yù)測(cè)精度提升。
(3) 在未來工作中,將以解決企業(yè)實(shí)際問題出發(fā),進(jìn)一步研究預(yù)測(cè)模型超參數(shù)的優(yōu)化,提高預(yù)測(cè)性能。