千文
(賀州學院 廣西壯族自治區(qū)賀州市 542899)
過去的商品市場營銷方式通常是采用廣撒網(wǎng)的形式,但是這種營銷方式雖然具有一定的效果,但是隨著現(xiàn)代技術的不斷發(fā)展,已經(jīng)無法帶來更為顯著的效益?;诖吮尘跋拢珳薁I銷已經(jīng)成為一種新的、有效的營銷手段。不斷整合先進的營銷理念,幫助企業(yè)準確定位客戶,通過高度的信息集成實現(xiàn)精準營銷。該方式不僅能夠降低營銷成本,而且可以提高企業(yè)的經(jīng)濟效益。目前,商業(yè)軟件如SPSS、MATLAB、SAS 被用于數(shù)據(jù)分析。但是這些軟件昂貴,具有龐大的安裝包,安裝過程非常復雜。Python 相較于與商業(yè)軟件相比,擁有著非常龐大的標準庫與第三方庫,可以實現(xiàn)對更加復雜的數(shù)據(jù)邏輯和更龐大的數(shù)據(jù)集的處理,并且自動分析十分方便。Python 成為數(shù)據(jù)分析領域的首選工具。Python 豐富的第三方庫、開源社區(qū)為許多非計算機專業(yè)提供了廣泛渠道。因此,本文簡要介紹了Python 的產(chǎn)品銷售數(shù)據(jù)分析中的思路。
Python 是一種計算機編程語言,結合了可解釋性、編譯和面向對象。Python 語言以其可讀、簡單、易于維護和可擴展性等眾多優(yōu)勢成為近年來最流行的編程語言之一,并且在數(shù)據(jù)科學和數(shù)據(jù)分析領域具有顯著的應用優(yōu)勢。
Python 的二維圖形庫Matplotlib 是一個功能強大的通用Python 可視化庫。Matlab 繪圖工具包提供了一個類似于Matlab 的繪圖。用戶只需調用pyplot 模塊中的函數(shù)即可簡單高效地繪制直方圖、散點圖和條形碼圖。
其是以Numpy 為基礎的一種工具,其創(chuàng)建目的是為了解決數(shù)據(jù)分析任務,它為時間序列分析提供了幫助。Pandas中擁有大量的庫和標準數(shù)據(jù)模型,所以能夠為處理大型數(shù)據(jù)提供必要的工具。
本文選擇Python 和Java 編程語言進行系統(tǒng)開發(fā),選擇Java 語言和預測模型進行網(wǎng)站開發(fā),并設計了Python 語言。前端開發(fā)選擇了一個簡單的基于layui 的網(wǎng)絡編程平臺。程序中使用的基本框架是layui 和jQuery,使用的路由框架是q.js。它是一個輕型單面前端配線架,設計理念是“輕巧而簡約”。為了使緩存得到更好的利用,同時減少后端支持,q.js終止了html5state,提供了兩種URL 注冊方法,分別是關鍵字和正則表達;使用的MWM 框架為Pndyls,其是專門為jQuery 編寫的。
在對于商品進行預測之前,首先需要了解具體流程:包括確定預測對象、預測目標與需求等。假設預測商品為服裝,此時需要考慮到衣服銷售季節(jié),明確衣服場景。預測對象、場景決定了預測方法的選擇。另外,確定預測時間,預測對象不同對于預測時間具有很高的要求。其次,對于數(shù)據(jù)進行處理,收集數(shù)據(jù)之后開展預處理,提高預測精度。數(shù)據(jù)預處理方法非常多,如常見的數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)轉換、數(shù)據(jù)規(guī)約等。之后可以構建模型,銷售預測方法則是根據(jù)上述分析到的條件來選擇適合的算法,并基于此建立預測模型。最后,確定評價指標,通過指標判斷預測結果。
表1 所示為銷量預測的主流方法。在預測和分析商品未來銷售數(shù)據(jù)時,根據(jù)現(xiàn)有數(shù)據(jù),數(shù)據(jù)預測方法可分為定性預測和定量預測。市場預測員根據(jù)定性知識收集各種數(shù)據(jù),然后根據(jù)市場預測員收集數(shù)據(jù),并基于預測人員的知識水平、主觀判斷和豐富經(jīng)驗來評估商品的未來銷售發(fā)展趨勢。定性預測方法具有成本低、時間短、易于使用,可以綜合多種因素。但這一方式對于預測要求非常高,所以預測人員的專業(yè)知識和經(jīng)驗非常重要。
表1: 主流預測方法對比
定性預測存在非常高的隨機性,因此可以采用不同預測決策者的加權平均值,但是預測結果和實際結果之間會出現(xiàn)差異。定量預測則是利用數(shù)學模型來分析已有的歷史數(shù)據(jù),經(jīng)過對歷史數(shù)據(jù)進行統(tǒng)一后,對于收集到的數(shù)據(jù)進行處理,以此來觀察變量之間的規(guī)律關系。原則上可以將定量分析分為兩類,其中一類是時間序列預測方法。這一方法能夠預測商品的變化規(guī)律,并且得到商品在市場上的演化權。時間預測序列方法認為未來的發(fā)展形勢是過去發(fā)展的延伸?;貧w預測是一種非常重要的因果分析方法。在預測過程中,使用特定的數(shù)學模型來對于自變量的變化過程是否存在特定關系進行研究,其因果律不僅表現(xiàn)它的時間序列中,而且具體表現(xiàn)在變量關系。
隨著技術的發(fā)展,在社會各個領域中開始廣泛應用支持向量機和神經(jīng)網(wǎng)絡。具有非線性預測能力的神經(jīng)網(wǎng)絡方法在神經(jīng)網(wǎng)絡模型中十分常見,但是因為神經(jīng)網(wǎng)絡以來學習樣本情況比較嚴重,所以非常容易陷入局部最優(yōu),甚至無法得到最優(yōu)解?;诖饲闆r下,樣本數(shù)據(jù)較小時,預測精度相對較低;但樣本數(shù)據(jù)較多時,將會需求大量訓練時間。由于其自身的特點,支持向量機在預測小樣本數(shù)據(jù),支持度非常高,預測結果也比較準確。
而關于銷售額的預測方法也非常多,因此選擇銷售額的預測方法需要根據(jù)預測場景和預測對象來選擇。該預測方法根據(jù)預測對象和情況進行預測,有效地減少了預測結果與實際情況之間的誤差,獲得準確的商品銷售預測結果。然而,如果我們選擇的預測方法沒有考慮到實際情況,這不僅會浪費大量人力、物力,還會浪費時間。另外,預測結果很難在環(huán)境中得到實際應用,導致預測結果和實際情況之間存在較大的差異?;谟柧殘鼍?、預測對象等情況來開展預測的話,預測結果的精準度更高。
通過對商品銷售現(xiàn)狀的分析和各種預測算法的比較,結合樣本數(shù)據(jù)和短期預測時間的特點,如果選擇一種需要大量數(shù)據(jù)才可以獲得準確預測的預測方法,則預測時間會成倍增加,但精度是相似的。根據(jù)短期銷售預測的特點,本研究采用支持向量回歸方法,對于非線性預測數(shù)據(jù)友好,在高維預測、小樣本數(shù)據(jù)具有良好的預測效果,能較好地滿足商業(yè)銷售預測的需要。
商品銷售的影響因素可概括為定量因素和定性因素。其中,定性因素是指在具體數(shù)據(jù)中難以量化的因素,如城市經(jīng)濟發(fā)展趨勢、宏觀調控政策、習慣差異、城市發(fā)展水平等。由于銷售預測只涉及短期,在短期定量預測中,當?shù)乜側丝诤途用穸鞲駹栂禂?shù)難以改變,大部分的可支配收入也比較穩(wěn)定。通過分析影響商品銷售的因素,并且結合產(chǎn)品的特點,并考慮到影響需求的主要因素,包括氣象條件、節(jié)假日、歷史需求、促銷活動等。第二,商品銷售相關因素的日變化,包括日期類型(休息日、促銷日、工作日、節(jié)假日)、天氣等。
在本次設計中,地區(qū)總人口數(shù)、居民恩格爾系數(shù)無較大變化,大部分人的可支配收入也比較穩(wěn)定。本文考慮到眾多影響因素,包括歷史需求、天氣、節(jié)假日、促銷活動等,基于此將影響因素分為兩類:第一類為預測商品日常銷售所產(chǎn)生的數(shù)據(jù),從而確定商品需求情況;另一個是與原材料銷售相關的影響因素,這些因素每天都在變化,例如日期(促銷日、工作日、休息日、節(jié)假日)等。在預測商品銷量前,將數(shù)據(jù)進行隸屬函數(shù)的模糊化處理,方便后續(xù)預測。由于影響因素較多,所以各影響因素水平較大的情況下,利用影響因素的原始數(shù)據(jù)進行分析、預測,數(shù)值范圍大的因素影響顯著,數(shù)值范圍大和數(shù)值范圍小的因素影響減小。因此,有必要確保預測結果的更高精度。為最大程度保障結果準確性,解決影響數(shù)據(jù)的因素,這些指標的尺度相同。
在銷售商品的過程中,需要一個詳細的銷售計劃,以便在短時間內儲存商品。只有提前預測商品的未來銷售量進,才能保證在短時間內不出現(xiàn)貨物短缺、庫存過剩、腐敗和報廢等情況,造成經(jīng)濟損失。因此,商品銷售預測是產(chǎn)品銷售過程中一個非常重要的環(huán)節(jié)。然而,在目前的銷售預測研究中,很少有一個完整的平臺。因此,為了促進產(chǎn)品銷售行業(yè)的發(fā)展,增加貿易商的收入,避免誤判造成較大的經(jīng)濟損失。本次設計中模型設計采用更可靠的預測算法和更精確的預測精度來滿足預測的需要。產(chǎn)品銷售量為該回歸模型的因變量,以天氣、周假期和促銷情況等作為回歸模型的自變量。
本次設計中輸入變量為:
W:當天周屬性;
IsP:當天是否進行促銷活動;
SV:當天的商品銷量;
IsH:當天是否為節(jié)假日。
本文選擇上述的幾種核函數(shù)構建商品銷售數(shù)據(jù)預測模型,通過SVR(kernel+“poly”)構建SVR多項式核的預測模型、線性核預測模型、高斯核模型。
在模型開發(fā)中的預測模型的評估是一個非常重要的部分。如果構建的模型太過簡單那么訓練模型非常容易發(fā)生欠擬合現(xiàn)象;而模型復雜程度過高的話,則容易過擬合。所以需要評估預測模型,保證變化平衡。通過對模型進行評估,基于評估結果可以找到最佳模型,從而更直觀地了解模型的預測性能。
2.4.1 模型評估的方法
數(shù)據(jù)挖掘采用驗證(Hold.out)與交叉驗證(Cross.Validation)方法,這兩種方法可以幫助模型對于新數(shù)據(jù)集性能進行預測。
(1)保持法驗證。將數(shù)據(jù)集隨機分為三個子集,分別是訓練集、驗證集和測試集;驗證集:對于培訓階段得到的模型結果數(shù)據(jù)集進行評估,但不是所有模型算法都需要驗證集;測試集:該測試集可以避免新數(shù)據(jù)的訓練結果導致訓練模型的大偏差。如果模型和訓練集比測試集更合適,則可能是因為過擬合;訓練集:主要是用來確定預測訓練模型的數(shù)據(jù)集,并且為優(yōu)化模型參數(shù)、模型選擇提供了實驗平臺。
(2)K 折交叉驗證。當樣本數(shù)據(jù)有限的情況下,可以將有限的數(shù)據(jù)分成k 組,以便對模型性能進行無偏估計。在每個訓練過程中,為所選子集創(chuàng)建驗證集,本次訓練集選擇k.1 組的剩余子集。在進行一輪訓練時,根據(jù)所有數(shù)據(jù)都可以得到k 組模型?;谠撃P万炞C集的平均分類準確率的平均數(shù)作為k.cv 下分類器的性能指標。該方法的優(yōu)勢在于能夠從有限樣本數(shù)據(jù)的學中得到盡可能多的有效信息。在這一過程中,可以從多個角度來學習有限的樣本數(shù)據(jù)。這個學習
過程可以避免陷入局部極值。訓練樣本和測試樣本在這個過程中均得到最多的學習,結果說服力更強大。
2.4.2 預測中的誤差
從幾個方面來研究預測模型中存在的預測誤差情況,包括偏差和分差引起的,在模型最小方差與偏差之間尋求平衡?;谡`差來得到診斷模型的結果,從而促進數(shù)據(jù)擬合過程的優(yōu)化,防止發(fā)生欠擬合現(xiàn)象和過擬合現(xiàn)象,獲得更準確的模型。根據(jù)偏差和方差的概念,誤差預測可分為兩類:
(1)方差誤差:模型在給定數(shù)據(jù)點的可變性,如果模型出現(xiàn)重復構建情況,方差意味著模型不同實現(xiàn)之間在給定點的預期值的變化程度。
(2)偏差誤差:其是模型預期值、平均值和模型正確值之間的差值。當存在多個模型的狀態(tài)下,每次新收集數(shù)據(jù)然后創(chuàng)建新模型后,基于原始數(shù)據(jù)的隨機性,所以生成模型存在許多預測。偏差是判斷模型預測值和正確值之間距離的因素。
本文的銷售數(shù)據(jù)選擇某市場的服裝銷售數(shù)據(jù),收集數(shù)據(jù)為2020 年1 月1 日至2021 年1 月1 日的銷售數(shù)據(jù)?;谟绊戜N售數(shù)據(jù)的因素,將其開展模糊化處理,然后保存在數(shù)據(jù)庫中。經(jīng)過對原始數(shù)據(jù)進行分析,發(fā)現(xiàn)原始數(shù)據(jù)中存在殘缺值,這樣表示信息存在空白,并且還會對預測產(chǎn)生影響,數(shù)據(jù)集的處理直接影響到預測的準確性。為了應對殘缺值問題,可以采用均值填充。如果缺失值是影響因素中的數(shù)值型數(shù)據(jù)值的情況下,基于該屬性在其他所有對象的取值平均值來對于缺失的屬性值進行填充。
本系統(tǒng)的目的是讓商品的銷售單位準確了解市場上商品的銷售情況。同時,通過系統(tǒng)預測,可以預測短期銷售情況,促進商品銷售的定制化。系統(tǒng)流程如圖1 所示。
圖1: 銷量管理預測系統(tǒng)流程圖
該項目的開發(fā)平臺分為兩部分:銷售數(shù)據(jù)模型用Python編寫。在開發(fā)過程中,選擇Pycharm 作為Python 的開發(fā)平臺,其擁有智能提示、代碼跳轉、實時查看變量/內存、代碼格式化、版本控制、代碼單元測試、斷點提示等工具與插件,這些可以提高Python 開發(fā)效率。Web 平臺的開發(fā)選擇IntelliJ,有一個更高效的項目管理模式,一個不同但清晰的settings 目錄,支持更高效的插件開發(fā)和其他JCSS 項目。此外,它有許多快捷鍵,以方便用戶開發(fā)。
3.3.1 用戶信息模塊
用戶信息模塊的主要操作流程如圖2 所示,該模塊主要負責用戶登錄。
圖2: 信息管理流程
3.3.2 歷史銷量模塊
在這一模塊中包括本次設計中的數(shù)據(jù)展示的頁面,主要是銷量歷史數(shù)據(jù)的管理和查快時主要展示內容。歷史數(shù)據(jù)頁面為歷史數(shù)據(jù)展示和管理,方便用戶維護歷史數(shù)據(jù)和管理歷史數(shù)據(jù)。用戶在進入平臺的歷史銷量模塊之后,這一頁面上所呈現(xiàn)的歷史銷量數(shù)據(jù)內容主要包括商品名稱、各種商品當日銷量。每天數(shù)據(jù)均可以刪除和修改,方便用戶查詢歷史數(shù)據(jù),并對比每天銷量的對比。
3.3.3 意見與通告模塊
為了方便溝通的及時性,設計了該模塊。在這一模塊中,用戶可以上傳文字、視頻、圖片、文檔等眾多類型的信息。
3.3.4 預測模塊
調用SVR 預測模型,對配置文件中的參數(shù)、數(shù)據(jù)等進行訪問,讀取預測時間的準備數(shù)據(jù),從而提供銷售預測數(shù)據(jù)。在本項目中,系統(tǒng)將對下周的銷售開展下一周的銷量預測。由Python 編程模塊執(zhí)行定時任務,這一模塊中可以實現(xiàn)定時人物,包括每分鐘、每小時、每天、周幾等特定時期。通過對歷史銷售數(shù)據(jù)的分析,結合相關銷售因素,采用SVR模型來預測商品的銷售情況?;赑ython 在機器學習中的應用,本研究采用Python 作為預測模型開發(fā)語言,在用戶填寫了商品銷售預測所需要的名稱、時間等信息之后,系統(tǒng)將首先評估是否存在預測數(shù)據(jù)。不存在預測數(shù)據(jù)的話,將會調用預測模型開展預測,選擇預測周期和商品類別,然后進入銷售預測頁面;如果存在,則直接讀取。
綜上所述,本文使用Python 實現(xiàn)商品的銷售預測模型,采用Java 作為編程平臺,選擇支持小樣本數(shù)據(jù)的SVR 算法來構建商品的銷售預測模型,能夠為商品未來的銷售預測提供依據(jù)。用戶還可以在平臺上查看商品的歷史銷售數(shù)據(jù),掌握商品的銷售情況。本文所設計的平臺是一個具有監(jiān)控和預測功能的銷售管理平臺。該平臺旨在為該地區(qū)的市場管理員、商戶等提供便利。