石文兵,蘇樹智
餐飲企業根據服務經營的業態和規模擁有不同的分類,其經營模式和市場群體差別較大,日常經營活動的特征也不盡相同.
近年來,很多學者對餐飲業的研究主要集中在營銷策略、成本控制管理和物料需求分析等層面.朱鈁等結合餐飲企業的經營狀況,采取強化內部管理和嚴格控制經營成本的方法實現增加利潤的目的[1-2].王群智等[3]從物流和供應管理層面提出了餐飲企業轉型升級的發展策略.當前人工智能的發展勢態良好,越來越多的餐飲企業開始整合人工智能技術,很好地推動了餐飲企業智能化發展的轉型升級.張林泉[4]通過分析大學校園周邊餐飲企業樣本數據的學生總數和季度營業額的關系,研究了回歸分析模型的構建及顯著性檢驗方法.周健等[5]結合BP 神經網絡和灰色-馬爾科夫鏈構建了餐飲業短期客流量的預測模型,客流量誤差達到±0.05.在深度學習的應用研究領域,有學者構建深度學習預測模型,對餐飲企業外賣訂單量和菜品銷量進行預測,為企業制定物資采購計劃和管理決策提供了參考依據[6-7].類似的研究還有用SVM、XGBoost 等方法構建商品銷量的預測模型[8-9].樊亮通過構建整合移動平均自回歸模型對隴南市各縣區的社會消費品零售總額進行了預測分析[10].黃宏運等用BP 神經網絡構建了股票指數預測系統,為短期的股價預測提供借鑒和參考[11].在大型餐飲企業進駐高校的委托經營模式下,進駐高校的餐飲企業的服務對象和經營環境相對穩定,為數據分析與模型構建創造了很好的應用條件,從研究現狀來看,基于人工智能技術的相關智能計算方法尚未在進駐高校的餐飲企業營業額的預測中得到較好應用,本研究將采集整合進駐安徽理工大學的高校餐飲企業的歷史經營數據,構建基于優化隨機森林算法的高校餐飲企業營業額預測模型,為企業經營管理過程中物資采購計劃和管理決策的制定提供科學依據,提升智能化管理水平,降低生產成本,提高利潤和綜合競爭力.
為使高校餐飲企業營業額的預測更具指導和決策意義,本研究主要針對高校餐飲企業的日營業額進行預測,營業額預測體系結構如圖1 所示,主要包括數據采集與整合、預測模型構建和預測精度評估三個層次,體系結構中各層次的主要功能如下:
(1)數據采集和整合.經實地調研發現,高校餐飲企業營業額與很多客觀因素關系密切,研究過程中采集整合近5 年的歷史天氣數據、物資進銷存管理數據和校園一卡通消費數據,構建特征鮮明的營業額預測分析數據集.
(2)預測模型構建.對數據集進行數值化編碼、特征縮放、數據均衡化等預處理,對隨機森林算法進行優化,構建營業額預測模型.
(3)預測精度評估.構建的預測模型經訓練后,在測試集上進行預測評估,將該模型與傳統的Ridge、SVM 和XGBoost 進行對比分析,驗證營業額預測模型的有效性.對測試集上各模型的預測誤差進行評估,主要采用均方根誤差(RMSE)、平均絕對誤差(MAE)和平方相關系數(R2)三項評價指標,具體計算方法如公式(1)、公式(2)和公式(3)所示.

其中:n表示樣本數量,y(i)、y′(i)、yˉ(i)分別表示樣本中營業額的原始值、預測值和平均值.
隨機森林算法是在傳統決策樹算法的基礎上應用統計學采樣原理構建的一種聚合算法,算法包括決策樹構建數量和單棵決策樹特征數量兩個關鍵參數,隨機森林算法既可以用于分類問題,也可以用于回歸問題[12-16].在包含m個樣本的原數據集上進行m次有放回采樣,即得到m個樣本的采樣數據集,然后從數據集的n個特征中用無放回采樣取出f個特征作為輸入特征構建決策樹,按上述方法重復t次即可構造出t棵決策樹,對測試集上的每個樣本,綜合多棵決策樹對測試樣本進行計算,用少數服從多數的投票方式(分類問題)或求平均值的方式(回歸問題)計算測試集樣本的預測值,算法的基本原理如圖2所示.

圖2 隨機森林算法基本原理
隨機森林算法有兩項重要參數,分別是構建決策樹的子模型數和(n_estimators)和單顆決策樹的最大特征數(max_features),兩項參數的引入提升了模型對噪聲數據的處理能力,較好地克服了過擬合問題[17-19].為提升隨機森林模型在高校餐飲企業營業額預測中的效果,設計了一種二次劃分貪心選擇網格搜索算法,對隨機森林算法中的n_estimators 和max_features 進行參數優化.算法優化的基本思想是先對n_estimators 和max_features 設置初始范圍,第一次構建粗粒度劃分并進行網格化,網格上的點對應參數n_estimators 和max_features 的值,遍歷網格上所有的點并構建隨機森林模型,在驗證集上計算預測結果的均方根誤差,貪心選擇預測效果最優的網格點,在當前網格點的基礎上進行第二次細粒度劃分,按類似的方法二次貪心選擇預測效果最優的網格點,用二次劃分貪心選擇的網格搜索策略完成隨機森林算法參數的優化,以下為參數優化執行過程的算法.

算法中的循環變量i、j分別對應網格數據中x軸參數n_estimators 和y軸參數max_features,偽碼中1~4 行完成一次劃分和二次劃分步長的設置,并對網格一次劃分的邊界進行初始化,5~10 行完成一次劃分參數的遍歷,用遍歷的參數訓練模型,同時在驗證集上貪心選擇一次劃分最優參數,11~19 行用類似的方法進行二次劃分貪心選擇最優參數,返回的ki、kj作 為 參 數n_estimators、max_features 的 最優值.
實驗主要包括數據整合與預處理、隨機森林模型構建與參數優化、營業額預測效果檢驗三項核心工作,在Python 環境下基于scikit-learn 構建營業額預測模型,運行環境為Windows 10 專 業 版64 位 操 作 系 統,Intel(R)Core(TM)i9-9900K CPU @ 3.60GHz 8 核16 線程處理器,32G 運行內存.
(1)數據整合.要對進駐高校的餐飲企業進行營業額預測分析,高質量的數據集至關重要,實驗過程中整合了安徽理工大學某餐飲企業近5 年的物資進銷存管理數據和校園一卡通消費數據,同時在天氣后報網(http://www.tianqihoubao.com)用網絡爬蟲抓取了本地區近5 年的歷史天氣數據,經數據采集和整理,歷史天氣數據集中的第i個特征向量可表示為:

weai中的分量依次表示年、月、日、天氣狀況、最高溫度和最低溫度.餐飲企業物資進銷存管理數據能更好地反映食材的消耗情況,其中物資出庫記錄與營業額的聯系更緊密,為方便數據整合,通過分類匯總的方法計算每天各類物資的消耗金額,涉及的物資分類主要包括:蔬菜、副食、禽蛋、肉食、水產、豆制品、糧油、調料、飲料、水果,物資出庫記錄數據集中的第i個特征向量表示為:

其中:datei表示數據集中第i個樣本對應的日期,vegei表示當天出庫的蔬菜類物資的全部金額,nonstaplei、eggi、…、fruiti依此對應上述各分類的出庫金額.校園一卡通消費記錄能統計出當天的消費總人次和總營業額,經數據匯總得到校園一卡通消費數據集,其中第i個特征向量表示為:

coni中的分量依次表示日期、男生消費總人次、女生消費總人次、是否節假日和日營業額.
將歷史天氣數據、物資出庫記錄數據和消費記錄數據按日期整合將得到高校餐飲企業營業額預測大數據集,三個數據集中都含有相同的特征分量datei,為方便數值化計算,用特征分量yi、mi、di(年、月、日)替換datei,整合后數據集的輸入特征向量dataxi表示為:

數據集的預測目標向量datayi表示為:

(2)數據預處理.樣本數據質量的好壞直接影響到預測模型的計算效果,為提升模型在訓練和預測中的計算能力,對數據集中的部分特征進行數值化、特征縮放和均衡化預處理.
①One-Hot 編碼數值化.數據集輸入特征向 量 中yi、mi、di、si、holidaysi分 別 表 示 年、月、日、天氣狀況和是否為節假日,為離散型數據,不能直接參與模型的計算,將這些特征統一采用One-Hot 編碼數值化處理.One-Hot 編碼使用0 或1 對多個狀態進行編碼,將每個狀態作為獨立的特征,在任意時刻只有一個特征狀態取值為1,如 有特 征 向量f=[x,y,z],One-Hot 編碼數值化的效果如表1 所示.

表1 One-Hot 編碼
②特征縮放.數據分析發現數據集中的禽蛋類(egg)、糧油類(grainoil)、調料類(seasoning)、飲料類(drink)四個特征數據變化較大,對預測模型的收斂會產生很大影響,經數據樣本可視化分析,發現上述樣本數據近似高斯分布,更適合于標準化縮放處理,特征縮放的計算方法如公式(4)所示.

其中:μ是樣本特征的平均值,σ 為樣本特征的標準差,x為原始值,x′為特征縮放后的值.
③數據均衡化.營業額是最終的預測結果,只出現在訓練集中,實驗中數據可視化分析發現營業額分布均衡化程度不高,數據直方圖如圖3 所示,為進一步提高訓練數據質量,用公式x′=log(1+x)對營業額進行均衡化修正,x表示修正前的營業額,x′表示修正后的營業額,Python 中的log1p()函數可完成對應公式的修正計算,expm1()函數可將數據變換為原始值,營業額均衡化后的數據分布如圖4 所示,對比發現數據預處理后均衡化程度更高,提高了數據集的質量.

圖3 原營業額數據分布直方圖

圖4 營業額均衡化數據直方圖
數據預處理后,在Python 環境下用sklearn.ensemble 包 中的RandomForestRegressor 構 建營業額預測模型,將數據集樣本亂序排列后按6∶2∶2 的比例劃分為訓練集、驗證集和測試集,用本文設計的二次劃分貪心選擇網格搜索算法對預測模型參數n_estimators、max_features 進行優化,設置一次劃分初始化參數lowx=30、highx=390、lowy=1、highy=79、step1x=30、step1y=10,經一次劃分網格搜索,在驗證集上計算預測均方根誤差(RMSE),得到的一次劃分網格搜索效果如圖5 所示.

圖5 隨機森林優化一次劃分網格搜索
圖5 中標注的網格點計算得到的最小均方根誤差RMSE=0.049,對應的n_estimators、max_features 參數值分別為150 和41.按類似的方法進行二次劃分網格搜索,設置step2x=5,step2y=1,從而得到n_estimators 參數的搜索區間為[120,180],max_features 參數的搜索區間為[31,51],按二次劃分重新進行網格搜索,計算各網格點在驗證集上的均方根誤差,實驗得到的效果如圖6 所示,圖6 中標注的網格點計算得到的最小均方根誤差RMSE=0.033,該網格點對應的最優參數n_estimators 和max_features 分別為140 和34,從而得到隨機森林模型的最優參數.

圖6 隨機森林優化二次劃分網格搜索
為檢測優化的隨機森林算法模型在高校餐飲企業營業額預測中的效果,將該模型與嶺回歸Ridge、支持向量機SVM 和XGBoost 三種模型在測試集上進行預測對比分析,分別計算RMSE、MAE和R2三項評價指標,得到的實驗結果如表2 所示,本文設計的隨機森林優化模型在測試集上的預測均方根誤差為0.037,平均絕對誤差為0.149,平方相關系數為0.963.對比分析發現,本文模型預測效果明顯優于其他三種模型,表明該模型能準確反映學習特征參數和預測目標之間的因果關系,能為營業額的精準預測提供決策支持.

表2 營業額預測效果對比分析
本文提出的基于優化隨機森林算法的高校餐飲企業營業額預測模型,經數據采集和預處理構建了營業額預測樣本數據集,按6∶2∶2劃分成訓練集、驗證集和測試集,模型經訓練后,在驗證集上調用二次劃分貪心選擇網格搜索算法,得到了最優參數(n_estimators=140,max_features=34),最后在測試集上進行了營業額預測效果對比分析,實驗結果驗證了該模型的優越性,比其他傳統模型的預測誤差更低,平方相關系數R2表明本文模型具有更好的回歸擬合效果,將該方法應用于進駐高校的餐飲企業營業額的預測中,能提高高校餐飲企業的精細化管理水平和智能決策能力.在本研究成果的基礎上優化算法運行效率并提升模型在不同數據集上的通用性是后續進一步深入研究的內容,使得模型具有更高的運行效率和更強的適用性,為其他相關應用領域的科學計算提供參考和技術支持.