摘要:該文采用Python爬蟲技術(shù)獲取相關(guān)茶飲數(shù)據(jù),這種數(shù)據(jù)獲取技術(shù)能夠多維度地及時了解到茶飲消費的現(xiàn)狀。目前實現(xiàn)的是爬取美團網(wǎng)上的茶飲數(shù)據(jù),并存入CSV文件以供下一步的數(shù)據(jù)分析使用。在Python的相關(guān)庫,如pandas、numpy以及貝葉斯估計推薦算法的加持下,能科學(xué)地得出相關(guān)的茶飲店鋪推薦情況,從而給予消費者以及企業(yè)極大的參考價值。該文對從網(wǎng)頁端獲取到的茶飲數(shù)據(jù),如茶飲店鋪名稱、店鋪詳情、店鋪評分、評價人數(shù)、人均消費等信息進行算法分析,研究了數(shù)據(jù)分析過程中的基本流程,以及貝葉斯估計推薦算法所蘊含的推薦原理.總結(jié)了從數(shù)據(jù)源頭的收集,到存儲直至分析應(yīng)用,最終挖掘出數(shù)據(jù)價值的過程,整個分析結(jié)果為用戶及企業(yè)奠定了科學(xué)選擇的基礎(chǔ)。
關(guān)鍵詞:Python爬蟲;數(shù)據(jù)分析;貝葉斯估計;推薦算法
中圖分類號:TP315.69? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)17-0012-03
1引言
在相當長的一段時間里,人們都是通過傳統(tǒng)的線下交易來進行物品之間的買賣。而隨著互聯(lián)網(wǎng)的發(fā)展,再到移動支付的應(yīng)運而生,用戶通過線上購物的消費方式已越發(fā)普遍。以茶飲產(chǎn)品為例,人們可以足不出戶地了解這些茶飲商品的信息,在線上進行購買,或是先在線上了解商品詳情,再到實體店進行體驗并消費,減少了資源浪費,對于企業(yè)以及用戶可謂是雙贏的局面.長此以往,線上消費便產(chǎn)生了大量的消費數(shù)據(jù),將數(shù)據(jù)進行收集、管理、分析及應(yīng)用將會發(fā)掘出數(shù)據(jù)背后所蘊藏的巨大價值[1]。以往傳統(tǒng)的茶飲銷售報表已經(jīng)不能很好地滿足數(shù)據(jù)分析的需要,在數(shù)智時代使用先進的數(shù)據(jù)分析技術(shù)對數(shù)據(jù)進行有效利用已然成為了新時代的機遇與挑戰(zhàn)。對于茶飲行業(yè)而言,消費者如何從海量的數(shù)據(jù)中找到性價比較高的茶飲店鋪,企業(yè)如何根據(jù)茶飲市場的現(xiàn)狀做出抉擇,成為現(xiàn)如今需要思考的一個問題。
2數(shù)據(jù)獲取
目前針對國內(nèi)的茶飲市場數(shù)據(jù)分析主要來自國家統(tǒng)計局以及智研咨詢,除了這兩者便是各大茶飲企業(yè)的銷售數(shù)據(jù)。但是其中存在著一些問題,對于國家統(tǒng)計局以及智研咨詢來說,雖然其數(shù)據(jù)規(guī)模較為龐大,能對中國茶飲行業(yè)的未來做出相應(yīng)的預(yù)測,但對于消費者而言,更多關(guān)注的是時下茶飲店鋪的具體情況,因為他們需要了解的信息只有所處區(qū)域附近茶飲店鋪的價格情況、服務(wù)質(zhì)量、口碑等[2]。而關(guān)于茶飲行業(yè)將來的發(fā)展走向,消費者可能不會過多關(guān)注。而對于這些茶飲企業(yè)而言,他們能借助現(xiàn)有宏觀數(shù)據(jù)對茶飲市場未來發(fā)展趨勢有一定的預(yù)見,但是這些數(shù)據(jù)都過于籠統(tǒng),缺乏具體的影響因素。其次,茶飲市場中的品牌眾多,這導(dǎo)致某一品牌茶飲企業(yè)只有自己企業(yè)的茶飲數(shù)據(jù),而不具備其他茶飲品牌的數(shù)據(jù),無法找到和其他茶飲企業(yè)的異同。以上這些問題導(dǎo)致消費者在短時內(nèi)無法找到適合自己的茶飲產(chǎn)品,而企業(yè)也很難發(fā)現(xiàn)其面臨的具體問題,這便給決策帶來了些許的障礙[3]。
2.1 新型數(shù)據(jù)獲取方式
本文中的茶飲數(shù)據(jù)獲取方式將采用Python爬蟲技術(shù),所謂的互聯(lián)網(wǎng)爬蟲(網(wǎng)絡(luò)爬蟲),就是可以自主獲取網(wǎng)頁上內(nèi)容的程序,又可以將它稱為網(wǎng)頁蜘蛛,或者是稱為網(wǎng)絡(luò)機器人[4]。它是一種腳本或者程序,依照特定好的規(guī)定,自主獲取網(wǎng)頁上的各種信息。在特定網(wǎng)頁分析算法的加持下,能將部分與目標鏈接無關(guān)的信息過濾,智能選擇抓取網(wǎng)頁URL,可見在現(xiàn)如今數(shù)據(jù)獲取方面,Python爬蟲技術(shù)相較于傳統(tǒng)的數(shù)據(jù)獲取方式更加具有價值和優(yōu)勢[5]。
本文中茶飲數(shù)據(jù)的獲取采用的便是Python爬蟲技術(shù),首先要確定茶飲數(shù)據(jù)來源的網(wǎng)站,然后利用Python的requests庫發(fā)起URL請求,導(dǎo)入CSV庫,將返回的茶飲數(shù)據(jù)保存至CSV文件以供下一步的分析使用。同時還需引入time庫,設(shè)置每3秒請求一次,從而緩解服務(wù)器的壓力[6]。
2.2 茶飲數(shù)據(jù)獲取
本文的茶飲數(shù)據(jù)來源于美團網(wǎng),數(shù)據(jù)規(guī)模涵蓋了全國的各大城市:北京、上海、廣州、深圳、天津、西安、重慶、杭州、南京、武漢等幾乎所有茶飲店鋪數(shù)據(jù),共計11000余條。實驗所需要用到的數(shù)據(jù)包含了茶飲店鋪名稱、店鋪詳情、店鋪評分、評價人數(shù)、人均消費等信息,數(shù)據(jù)獲取結(jié)果如圖1所示。
3 數(shù)據(jù)獲取
針對獲取到的茶飲數(shù)據(jù),對這些數(shù)據(jù)進行分析時,先將數(shù)據(jù)進行清洗,再結(jié)合貝葉斯估計算,通過構(gòu)建相應(yīng)算法模型,能在數(shù)據(jù)分析的基礎(chǔ)上,對數(shù)據(jù)結(jié)果做出科學(xué)的推薦。
3.1 新型數(shù)據(jù)獲取方式
貝葉斯估計(Bayesian estimation)的基本思維基于的是貝葉斯定理,為了得到新的概率,要把先前的先驗概率與新的證據(jù)一并結(jié)合起來。當需要計算假設(shè)的概率時,就可以利用貝葉斯估計的方法。這個方法會用到之前假設(shè)的先驗概率,然后可以通過這些假設(shè)的先驗概率,從而觀測到數(shù)據(jù)本身,以及不同數(shù)據(jù)所對應(yīng)的概率[7]。貝葉斯定理的表達式可以寫成以下公式:
其中,公式里面的H代表的是假說,其概率可能會遭到實驗所產(chǎn)生數(shù)據(jù)的影響。E為實驗所產(chǎn)生的數(shù)據(jù),實驗數(shù)據(jù)對應(yīng)的是新的數(shù)據(jù),即未用于計算先驗概率的數(shù)據(jù)。先驗概率為P(H),在觀察到數(shù)據(jù)E以前,假說H的概率。P(H|E)為后驗概率,是在給定一個實驗研究數(shù)據(jù)E之后,假說H的概率。P(E|H)是假設(shè)H成立時發(fā)生E的概率。當H不變時,這是E的函數(shù),也稱為似然函數(shù),表示假設(shè)與給定假設(shè)的證據(jù)之間的相容程度[8]。似然函數(shù)為實驗過程中數(shù)據(jù)E的函數(shù),而后驗概率則為假說H的函數(shù)。有的時候也會稱P(E)為邊緣似然率。這個系數(shù)對所有可能的假設(shè)都是常數(shù),所以它不用來確定不同假設(shè)的相對概率。貝葉斯估計最關(guān)鍵的點是可以通過利用貝斯定理進行結(jié)合新的證據(jù)及以前的先驗概率,來得到新的概率[9]。貝葉斯估計能夠迭代使用:觀察到一些證據(jù)后得出的后驗概率可以作為先驗概率,而后按照新的證據(jù)得到新的后驗概率。所以,貝葉斯定理能夠應(yīng)用于許多不同的證明,無論它們是否同時出現(xiàn),這個過程稱為貝葉斯更新[10]?;谪惾~斯估計原理,結(jié)合前面獲取到的相關(guān)茶飲數(shù)據(jù),便可以構(gòu)建基于貝葉斯估計的推薦算法模型。
3.2 基于貝葉斯估計的推薦算法
構(gòu)建基于貝葉斯估計的推薦算法,公式如下:
其中,V代表的是某一個茶飲店鋪參與評價的消費者數(shù)量。M則是篩選出來的消費者評價個數(shù)的閾值,即如果某家店鋪評價的個數(shù)低于該閾值,則該茶飲店鋪將被忽略。該店鋪的評分為R,所有茶飲店鋪評分的均值用C表示。M的取值能夠按照實驗的目標自由地選取,在本文的模型中,采用的是90分位值,也即是只選取評價人數(shù)為前10%的茶飲店鋪進行分析推薦。
3.3 基于貝葉斯估計的推薦算法結(jié)果
導(dǎo)入全國茶飲數(shù)據(jù),根據(jù)基于貝葉斯估計的推薦算法模型從而科學(xué)地得出茶飲店鋪推薦Top10。推薦算法結(jié)果如圖2所示。
從模型的運算結(jié)果可以看出,通過基于貝葉斯估計的推薦算法,能根據(jù)茶飲數(shù)據(jù)重新計算出每一個茶飲店鋪的綜合得分,從而基于此得分對茶飲店鋪進行相關(guān)排序。本文中只取出排序Top10的茶飲店鋪,同時返回茶飲店鋪的基本信息。對于用戶而言,還可以點擊相應(yīng)店鋪詳情鏈接進行深入地了解。
3.4 實驗結(jié)果數(shù)據(jù)準確性驗證
對于貝葉斯估計推薦算法給出的結(jié)果,是否科學(xué)合理,需要通過實驗數(shù)據(jù)的對比分析來進行相關(guān)驗證。基于貝葉斯估計推薦算法,上文中已將全國的茶飲店鋪數(shù)據(jù)一起導(dǎo)入到算法模型中,得出全國的茶飲店鋪推薦Top10?,F(xiàn)在不妨將每個城市的茶飲店鋪數(shù)據(jù)分別導(dǎo)入到算法模型中,此時,便得到了每個城市其對應(yīng)的茶飲店鋪推薦Top10。再將這些城市其對應(yīng)的茶飲店鋪推薦Top10合并到一起,得到了一個新的數(shù)據(jù)集。在這個數(shù)據(jù)集中,每一個茶飲店鋪總會屬于某一個城市的茶飲店鋪推薦Top10?,F(xiàn)在將這個包含了全國各自城市茶飲店鋪推薦Top10的數(shù)據(jù)集,再重新導(dǎo)入到算法模型中,得出了基于貝葉斯估計推薦算法新的推薦結(jié)果,如圖3所示。
為了比較這兩種基于同一算法模型,不同方式的推薦結(jié)果,現(xiàn)將全國茶飲店鋪推薦Top10結(jié)果和各個城市茶飲店鋪推薦Top10數(shù)據(jù)集推薦結(jié)果放在一起進行對比,如圖4所示。
從結(jié)果對比可以看出,同一算法模型下,兩種推薦方式的結(jié)果發(fā)生了變化,推薦結(jié)果中,Top10的茶飲店鋪里,50%的茶飲店鋪是一致的,那么能否說明算法缺乏準確性,答案是否定的。源于算法模型的邏輯,上文提到,采用的是90分位值,也即是只選取評價人數(shù)為前10%的茶飲店鋪進行分析推薦。第一種推薦方式,數(shù)據(jù)集為全國茶飲店鋪數(shù)據(jù),數(shù)據(jù)規(guī)模龐大,而第二種推薦方式中,先是對各個城市的茶飲店鋪數(shù)據(jù)進行推薦,數(shù)據(jù)規(guī)模相對全國而言較小。受算法模型中分位值的影響,故推薦結(jié)果產(chǎn)生了些許偏差,為了進一步探究其推薦結(jié)果的可靠性,現(xiàn)進一步驗證。
3.5 實驗結(jié)果數(shù)據(jù)科學(xué)性驗證
對于上文中的第二種推薦方式,首先會得到包含了全國各個城市茶飲店鋪Top10的數(shù)據(jù)集,再導(dǎo)入到算法模型中,得出相應(yīng)的推薦結(jié)果。由于這個數(shù)據(jù)集來源于全國各個城市的茶飲店鋪在算法模型推薦下的結(jié)果,產(chǎn)生了相應(yīng)的茶飲店鋪綜合得分。于是,現(xiàn)在不將這個數(shù)據(jù)集導(dǎo)入到算法模型中,而是僅憑相應(yīng)的茶飲店鋪綜合得分對數(shù)據(jù)集進行倒敘排列,挑選出Top10的茶飲店鋪數(shù)據(jù),再將結(jié)果與全國茶飲店鋪推薦Top10進行對比,我們發(fā)現(xiàn)結(jié)果是完全一致的,這也驗證了上文中不同方式推薦結(jié)果偏差受到了算法模型中分位值的影響這一結(jié)論,如圖5所示。
然而,僅憑相應(yīng)的茶飲店鋪綜合得分對數(shù)據(jù)集進行倒敘排列,挑選出Top10的茶飲店鋪進行推薦,結(jié)果是否一定科學(xué),需再一次進行分析驗證,現(xiàn)將結(jié)果與在算法模型下的推薦結(jié)果進行對比分析,結(jié)果如圖6所示。
從對比的結(jié)果中可以看到,如圖6中的上表中,僅憑相應(yīng)的茶飲店鋪綜合得分對數(shù)據(jù)集進行倒敘排列后,排在第一與第二的茶飲店鋪評分均為5.0,而排在第一的茶飲店鋪評價人數(shù)為5502,排在第二的茶飲店鋪評價人數(shù)為5716,很顯然,茶飲店鋪評分相同的情況下,評價人數(shù)相對較少的茶飲店鋪卻排在了第一,這顯然是不科學(xué)的。而在貝葉斯估計推薦算法模型的加持下,對數(shù)據(jù)進行宏觀把控,微觀分析,重新計算綜合得分,再進行相應(yīng)推薦,將這樣不科學(xué)的結(jié)果糾正了過來,如圖6中的下表所示。至此,貝葉斯估計推薦算法模型的科學(xué)性得以驗證。
4結(jié)束語
基于規(guī)模較大的實驗數(shù)據(jù)以及反復(fù)的實驗對比分析,足以看出貝葉斯估計推薦算法邏輯嚴謹,在準確性與科學(xué)性方面表現(xiàn)較為出色,算法模型的可靠性能得到很大程度的保證。通過貝葉斯估計,構(gòu)建相應(yīng)的算法推薦模型,有利于對數(shù)據(jù)進行科學(xué)的分析,為用戶提供高質(zhì)量的選擇。使得用戶可以在海量的茶飲店鋪中找到真正性價比高的茶飲店鋪進行消費,從而極大地提高了消費體驗。同時也為企業(yè)的決策指明了方向,可以一窺企業(yè)自身的不足,而依據(jù)推薦結(jié)果,取其精華,加以改進。
接下來的研究工作是對算法進行優(yōu)化,或者重新構(gòu)建相關(guān)算法模型,加入更多數(shù)據(jù)的影響因子,以便得出更加精準的推薦結(jié)果。既能提升算法執(zhí)行的效率,又能確保推薦結(jié)果的準確性。同時,數(shù)據(jù)的獲取雖然可靠性能得到保障,但是更新數(shù)據(jù)卻需要定期自主更新,在效率上并不是很高。并且數(shù)據(jù)規(guī)模不是很龐大,難以在短時間內(nèi)發(fā)掘更多的數(shù)據(jù)價值。后續(xù)可以在修改爬蟲代碼的基礎(chǔ)上,結(jié)合云服務(wù)器,從而讓這些數(shù)據(jù)能夠定時地實現(xiàn)自主更新。此外,結(jié)合機器學(xué)習(xí)中的相關(guān)理論模型,對相應(yīng)茶飲數(shù)據(jù)進行擬合預(yù)測,也是一個極具價值的研究方向。
參考文獻:
[1] 韓文煜.基于python數(shù)據(jù)分析技術(shù)的數(shù)據(jù)整理與分析研究[J].科技創(chuàng)新與應(yīng)用,2020(4):157-158.
[2] 蔣敏.新式茶飲行業(yè)發(fā)展現(xiàn)狀與未來展望[J].農(nóng)業(yè)考古,2021(2):221-227.
[3] 俞沅沅.淺析中國新式茶飲產(chǎn)業(yè)[J].商場現(xiàn)代化,2021(23):23-25.
[4] 陳樂.基于Python的網(wǎng)絡(luò)爬蟲技術(shù)[J].電子世界,2018(16):163,165.
[5] 徐恒.社會化網(wǎng)絡(luò)數(shù)據(jù)獲取技術(shù)研究與實現(xiàn)[D].長春:吉林大學(xué),2016.
[6] 于大海,張巖.淺談HTTP服務(wù)器的設(shè)計與實現(xiàn)[J].教育教學(xué)論壇,2012(S1):232-234.
[7] Guan Q,Tang Y C,Xu A C.Reference Bayesian analysis of inverse Gaussian degradation process[J].Applied Mathematical Modelling,2019,74:496-511.
[8] Bennun L.An “ad-hoc” modified likelihood function applied to optimization of data analysis in atomic spectroscopy[J].Measurement,2018,116:140-145.
[9] 鄧柙.基于先驗概率與隨機參數(shù)改進神經(jīng)網(wǎng)絡(luò)模型及應(yīng)用研究[D].成都:四川師范大學(xué),2021.
[10] 魏煒,申金升.基于貝葉斯更新的供應(yīng)鏈協(xié)同預(yù)測模型研究[J].預(yù)測,2010,29(5):68-73.
收稿日期:2022-03-16
作者簡介:周渝(1997—),男,四川巴中人,學(xué)士,主要研究方向為計算機科學(xué)與技術(shù)。