徐時偉
(溫州職業(yè)技術學院 信息技術系,浙江 溫州 325035)
在隱形眼鏡銷售鏈中,上游批發(fā)商、下游零售商以小企業(yè)或個體戶為主,受管理水平與資金所限,所使用的銷售管理軟件功能較為簡單,僅有進銷存記錄與客戶管理等基本功能,缺乏數(shù)據(jù)分析及預測功能。這類軟件以單機版居多,易造成銷售鏈上下游的數(shù)據(jù)互相孤立,上游無法根據(jù)下游經(jīng)營預期及時調(diào)整庫存與供貨?;诖?,對隱形眼鏡銷量進行分析與預測,對上下游商家均有重要意義。
在銷量預測研究方面,比較成熟的技術有線性回歸、ARIMA等時間序列模型,但模型中缺少對外部因素的考慮。隨著人工智能的發(fā)展,神經(jīng)網(wǎng)絡被應用于復雜的非線性回歸問題[1],但需要足夠多的樣本,且存在易過擬合、推廣能力差等缺點。SVR(Supported Vector Regression)是一種基于統(tǒng)計學習理論的機器學習方法,彌補了神經(jīng)網(wǎng)絡的缺點,適用于小樣本情況下的多維非線性回歸預測問題[2]。本文提出一種基于SVR的隱形眼鏡銷量預測方法,并應用于“云鏡”在線隱形眼鏡進銷存管理系統(tǒng)[3]。該系統(tǒng)以“打通上下游,構建直采生態(tài)”為特色,為本文實驗提供了原始數(shù)據(jù),而其研究結(jié)果又有助于該系統(tǒng)上下游商家提升精細化管理水平。
原“云鏡”系統(tǒng)包括進銷存管理、客戶管理、采購管理、數(shù)據(jù)分析報表等4個模塊,將基于SVR的隱形眼鏡銷量預測模塊與之集成后,系統(tǒng)結(jié)構如圖1所示。基于SVR的隱形眼鏡銷量預測模塊在每日凌晨系統(tǒng)空閑時段讀取數(shù)據(jù)庫中數(shù)據(jù)進行離線預測,將結(jié)果寫回數(shù)據(jù)庫。下游零售商訪問數(shù)據(jù)分析報表模塊,可查看其店鋪中各品牌隱形眼鏡的銷量預測結(jié)果,而上游批發(fā)商則可查看與之有采購關系的零售商銷量預測結(jié)果總和。
圖1 隱形眼鏡銷量預測系統(tǒng)結(jié)構
本文對“云鏡”系統(tǒng)中每個零售商的每個隱形眼鏡品牌進行銷量預測。隱形眼鏡銷量預測模塊流程如圖2所示。從數(shù)據(jù)庫中讀取預測所需的原始數(shù)據(jù),經(jīng)過模糊化和歸一化等預處理,然后從中提取特征向量,進行SVR,最后得到預測結(jié)果并寫回數(shù)據(jù)庫。
圖2 隱形眼鏡銷量預測模塊流程
Vapnik等提出的支持向量算法,以結(jié)構風險最小化為目標,克服了神經(jīng)網(wǎng)絡可能出現(xiàn)的局部極小、過學習等問題[4]。支持向量算法在文本分類、模式識別等分類問題領域應用廣泛,在回歸預測領域也有應用場景。其基本思想是:通過非線性映射,把樣本空間映射到一個高維特征空間,使得在特征空間中可應用線性學習機的方法解決樣本空間中的高度非線性分類和回歸問題[5]。具體到回歸預測領域,假設有一個訓練樣本數(shù)據(jù)集(x1,y1,)(x2,y1,) …, (xn,yn),其中xi∈RN為N維輸入向量,yi∈R為目標值。我們希望學習到一個函數(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訓練前,需要對數(shù)據(jù)進行模糊化和歸一化處理,即:
對于一家零售商,假設其在售的隱形眼鏡品牌數(shù)為m,第j個品牌的銷量預測值為p1,j,p2,j,…,pn,j及實際值為o1,j,o2,j,…,on,j,其中n為周期數(shù)。定義預測誤差的計算公式為:
第j個品牌的單品牌預測誤差為:
全品牌預測誤差為:
每個零售商依(9)、(10)式計算后取平均值,作為全部零售商的整體預測誤差。
以“云鏡”系統(tǒng)中的銷售數(shù)據(jù)為基礎,進行訓練與預測實驗。以一個星期為周期,將系統(tǒng)中所有隱形眼鏡零售商近兩年共96個周期的銷售數(shù)據(jù)作為樣本集,選取前72個周期用于訓練,后24個周期用于測試。使用Python機器學習工具包scikit-learn,核函數(shù)選用徑向基函數(shù),進行單品牌測試和全品牌測試,依(9)、( 10)式計算各測試誤差。
在SVR中,特征向量的選擇會影響預測準確度。在實驗中,先選擇銷量最大零售商,針對特征向量中內(nèi)部因素和外部因素,分別選取不同的參數(shù)或組合進行模型訓練,比較誤差結(jié)果,確定最優(yōu)特征向量;然后再對全部零售商進行銷量預測,分析整體預測誤差。本實驗的原始數(shù)據(jù)為銷量最大零售商和全部零售商的某3種典型品牌隱形眼鏡銷售數(shù)據(jù)(見表1~表2)。
表1 銷量最大零售商的3種品牌隱形眼鏡銷售數(shù)據(jù)
表2 全部零售商的3種品牌隱形眼鏡銷售數(shù)據(jù)
單品牌測試與全品牌測試中,誤差隨歷史周期數(shù)N變化的關系見表3。由表3可知,N太小,則不能有效體現(xiàn)近期銷量的影響;N太大,則存在信息冗余。因此,選擇N=6進行后續(xù)實驗。
表3 3種品牌隱形眼鏡銷量預測誤差—歷史周期數(shù) N 變化的關系
單品牌測試與全品牌測試中,不同外部因素組合對誤差的影響見表4。由表4可知,加入月份會增加預測誤差,加入節(jié)假日信息對預測結(jié)果影響不大。是否有促銷、接近過期比例能減小預測誤差,且二者組合能取得相對較好的結(jié)果。
表4 3種品牌隱形眼鏡銷量預測誤差—外部因素組合關系
經(jīng)過實驗篩選,確定最優(yōu)特征向量。為了進一步檢驗該方法的準確性,采用線性回歸方法、ARIMA方法進行隱形眼鏡銷量預測,比較不同方法的品牌隱形眼鏡銷量整體預測誤差(見表5)。由表5可知,基于SVR的隱形眼鏡銷量預測方法的誤差比線性回歸方法降低34.99%[(0.3475—0.2259)/0.3475],比ARIMA方法降低33.17%[(0.3380—0.2259)/0.3380]。
表5 不同方法的3種品牌隱形眼鏡銷量整體預測誤差
本文提出一種基于SVR的隱形眼鏡銷量預測方法,并應用于“云鏡”在線隱形眼鏡進銷存管理系統(tǒng)中,對系統(tǒng)中各零售商的品牌隱形眼鏡銷量進行預測實驗。實驗結(jié)果表明,該方法相較于線性回歸方法、ARIMA方法,預測誤差最小,將有助于上下游商家合理安排采購計劃及庫存,提升精細化管理水平。同時,該方法綜合考慮了時間序列這一內(nèi)部因素和影響經(jīng)營的諸多外部因素,且借助SVR的小樣本適應性,較好地實現(xiàn)了歷史數(shù)據(jù)較少情形下的回歸預測。對于具有類似特點的預測問題,均可采用該方法。如其他商品的銷量預測,可取近期銷量數(shù)據(jù)作為內(nèi)部因素,并結(jié)合該商品經(jīng)營特點,引入多種可能影響銷量的外部因素,通過實驗篩選,確定最優(yōu)特征向量。為了進一步提升預測的準確性,下一步研究將嘗試人工智能領域的新算法,如深度學習等的應用。