徐時偉
(溫州職業(yè)技術(shù)學(xué)院 信息技術(shù)系,浙江 溫州 325035)
在隱形眼鏡銷售鏈中,上游批發(fā)商、下游零售商以小企業(yè)或個體戶為主,受管理水平與資金所限,所使用的銷售管理軟件功能較為簡單,僅有進銷存記錄與客戶管理等基本功能,缺乏數(shù)據(jù)分析及預(yù)測功能。這類軟件以單機版居多,易造成銷售鏈上下游的數(shù)據(jù)互相孤立,上游無法根據(jù)下游經(jīng)營預(yù)期及時調(diào)整庫存與供貨。基于此,對隱形眼鏡銷量進行分析與預(yù)測,對上下游商家均有重要意義。
在銷量預(yù)測研究方面,比較成熟的技術(shù)有線性回歸、ARIMA等時間序列模型,但模型中缺少對外部因素的考慮。隨著人工智能的發(fā)展,神經(jīng)網(wǎng)絡(luò)被應(yīng)用于復(fù)雜的非線性回歸問題[1],但需要足夠多的樣本,且存在易過擬合、推廣能力差等缺點。SVR(Supported Vector Regression)是一種基于統(tǒng)計學(xué)習(xí)理論的機器學(xué)習(xí)方法,彌補了神經(jīng)網(wǎng)絡(luò)的缺點,適用于小樣本情況下的多維非線性回歸預(yù)測問題[2]。本文提出一種基于SVR的隱形眼鏡銷量預(yù)測方法,并應(yīng)用于“云鏡”在線隱形眼鏡進銷存管理系統(tǒng)[3]。該系統(tǒng)以“打通上下游,構(gòu)建直采生態(tài)”為特色,為本文實驗提供了原始數(shù)據(jù),而其研究結(jié)果又有助于該系統(tǒng)上下游商家提升精細化管理水平。
原“云鏡”系統(tǒng)包括進銷存管理、客戶管理、采購管理、數(shù)據(jù)分析報表等4個模塊,將基于SVR的隱形眼鏡銷量預(yù)測模塊與之集成后,系統(tǒng)結(jié)構(gòu)如圖1所示?;赟VR的隱形眼鏡銷量預(yù)測模塊在每日凌晨系統(tǒng)空閑時段讀取數(shù)據(jù)庫中數(shù)據(jù)進行離線預(yù)測,將結(jié)果寫回數(shù)據(jù)庫。下游零售商訪問數(shù)據(jù)分析報表模塊,可查看其店鋪中各品牌隱形眼鏡的銷量預(yù)測結(jié)果,而上游批發(fā)商則可查看與之有采購關(guān)系的零售商銷量預(yù)測結(jié)果總和。

圖1 隱形眼鏡銷量預(yù)測系統(tǒng)結(jié)構(gòu)
本文對“云鏡”系統(tǒng)中每個零售商的每個隱形眼鏡品牌進行銷量預(yù)測。隱形眼鏡銷量預(yù)測模塊流程如圖2所示。從數(shù)據(jù)庫中讀取預(yù)測所需的原始數(shù)據(jù),經(jīng)過模糊化和歸一化等預(yù)處理,然后從中提取特征向量,進行SVR,最后得到預(yù)測結(jié)果并寫回數(shù)據(jù)庫。

圖2 隱形眼鏡銷量預(yù)測模塊流程
Vapnik等提出的支持向量算法,以結(jié)構(gòu)風險最小化為目標,克服了神經(jīng)網(wǎng)絡(luò)可能出現(xiàn)的局部極小、過學(xué)習(xí)等問題[4]。支持向量算法在文本分類、模式識別等分類問題領(lǐng)域應(yīng)用廣泛,在回歸預(yù)測領(lǐng)域也有應(yīng)用場景。其基本思想是:通過非線性映射,把樣本空間映射到一個高維特征空間,使得在特征空間中可應(yīng)用線性學(xué)習(xí)機的方法解決樣本空間中的高度非線性分類和回歸問題[5]。具體到回歸預(yù)測領(lǐng)域,假設(shè)有一個訓(xùn)練樣本數(shù)據(jù)集(x1,y1,)(x2,y1,) …, (xn,yn),其中xi∈RN為N維輸入向量,yi∈R為目標值。我們希望學(xué)習(xí)到一個函數(shù)f(x)=wgΦ(x)+b,使其與y盡可能接近,其中Φ(x)為從RN空間到高維空間的某種非線性變換。尋找最優(yōu)f(x)的問題可轉(zhuǎn)化為:

其中,It( )為損失函數(shù),C為懲罰參數(shù)。引入松弛變量和,可轉(zhuǎn)化為:

引入拉格朗日乘子,得到對偶問題,求解后得到回歸函數(shù)為:

為了簡化計算,用樣本空間中滿足Mercer條件的核函數(shù)K(xi, x)代替高維空間中的內(nèi)積運算,(3)式可轉(zhuǎn)化為:

本文考慮隱形眼鏡銷售特點,綜合“云鏡”系統(tǒng)用戶的調(diào)查反饋意見,選擇代表內(nèi)部因素和外部因素的多個特征向量。其內(nèi)部因素為前N個周期的銷量x1, x2, x3, …, xN;外部因素包括月份xmonth、當前周期是否有節(jié)假日xholiday、當前周期是否有促銷活動xonsale、接近過期比例xexprate。因特征向量中含有非數(shù)值變量,且不同類型的變量量綱不同,在進行SVR訓(xùn)練前,需要對數(shù)據(jù)進行模糊化和歸一化處理,即:

對于一家零售商,假設(shè)其在售的隱形眼鏡品牌數(shù)為m,第j個品牌的銷量預(yù)測值為p1,j,p2,j,…,pn,j及實際值為o1,j,o2,j,…,on,j,其中n為周期數(shù)。定義預(yù)測誤差的計算公式為:
第j個品牌的單品牌預(yù)測誤差為:

全品牌預(yù)測誤差為:

每個零售商依(9)、(10)式計算后取平均值,作為全部零售商的整體預(yù)測誤差。
以“云鏡”系統(tǒng)中的銷售數(shù)據(jù)為基礎(chǔ),進行訓(xùn)練與預(yù)測實驗。以一個星期為周期,將系統(tǒng)中所有隱形眼鏡零售商近兩年共96個周期的銷售數(shù)據(jù)作為樣本集,選取前72個周期用于訓(xùn)練,后24個周期用于測試。使用Python機器學(xué)習(xí)工具包scikit-learn,核函數(shù)選用徑向基函數(shù),進行單品牌測試和全品牌測試,依(9)、( 10)式計算各測試誤差。
在SVR中,特征向量的選擇會影響預(yù)測準確度。在實驗中,先選擇銷量最大零售商,針對特征向量中內(nèi)部因素和外部因素,分別選取不同的參數(shù)或組合進行模型訓(xùn)練,比較誤差結(jié)果,確定最優(yōu)特征向量;然后再對全部零售商進行銷量預(yù)測,分析整體預(yù)測誤差。本實驗的原始數(shù)據(jù)為銷量最大零售商和全部零售商的某3種典型品牌隱形眼鏡銷售數(shù)據(jù)(見表1~表2)。

表1 銷量最大零售商的3種品牌隱形眼鏡銷售數(shù)據(jù)

表2 全部零售商的3種品牌隱形眼鏡銷售數(shù)據(jù)
單品牌測試與全品牌測試中,誤差隨歷史周期數(shù)N變化的關(guān)系見表3。由表3可知,N太小,則不能有效體現(xiàn)近期銷量的影響;N太大,則存在信息冗余。因此,選擇N=6進行后續(xù)實驗。

表3 3種品牌隱形眼鏡銷量預(yù)測誤差—歷史周期數(shù) N 變化的關(guān)系
單品牌測試與全品牌測試中,不同外部因素組合對誤差的影響見表4。由表4可知,加入月份會增加預(yù)測誤差,加入節(jié)假日信息對預(yù)測結(jié)果影響不大。是否有促銷、接近過期比例能減小預(yù)測誤差,且二者組合能取得相對較好的結(jié)果。

表4 3種品牌隱形眼鏡銷量預(yù)測誤差—外部因素組合關(guān)系
經(jīng)過實驗篩選,確定最優(yōu)特征向量。為了進一步檢驗該方法的準確性,采用線性回歸方法、ARIMA方法進行隱形眼鏡銷量預(yù)測,比較不同方法的品牌隱形眼鏡銷量整體預(yù)測誤差(見表5)。由表5可知,基于SVR的隱形眼鏡銷量預(yù)測方法的誤差比線性回歸方法降低34.99%[(0.3475—0.2259)/0.3475],比ARIMA方法降低33.17%[(0.3380—0.2259)/0.3380]。

表5 不同方法的3種品牌隱形眼鏡銷量整體預(yù)測誤差
本文提出一種基于SVR的隱形眼鏡銷量預(yù)測方法,并應(yīng)用于“云鏡”在線隱形眼鏡進銷存管理系統(tǒng)中,對系統(tǒng)中各零售商的品牌隱形眼鏡銷量進行預(yù)測實驗。實驗結(jié)果表明,該方法相較于線性回歸方法、ARIMA方法,預(yù)測誤差最小,將有助于上下游商家合理安排采購計劃及庫存,提升精細化管理水平。同時,該方法綜合考慮了時間序列這一內(nèi)部因素和影響經(jīng)營的諸多外部因素,且借助SVR的小樣本適應(yīng)性,較好地實現(xiàn)了歷史數(shù)據(jù)較少情形下的回歸預(yù)測。對于具有類似特點的預(yù)測問題,均可采用該方法。如其他商品的銷量預(yù)測,可取近期銷量數(shù)據(jù)作為內(nèi)部因素,并結(jié)合該商品經(jīng)營特點,引入多種可能影響銷量的外部因素,通過實驗篩選,確定最優(yōu)特征向量。為了進一步提升預(yù)測的準確性,下一步研究將嘗試人工智能領(lǐng)域的新算法,如深度學(xué)習(xí)等的應(yīng)用。