張娛嘉 張景璐
摘 要:本文利用已有的開放平臺研究現今的餐飲行業地區分布,并利用這種方法分析各地餐飲行業發展情況和預測可能的其他可以進行商業活動的地點。以北京作為一個典型案例,本文中演示了分析結構化與非結構化數據的方法,以增強應用性。
關鍵詞:大數據 餐飲行業 信息系統
中圖分類號:F724.6 文獻標識碼:A 文章編號:1672-3791(2018)01(b)-0046-02
現如今大數據在人類社會中起到了關鍵作用,社交媒體網站、新聞門戶網站、數字地圖導航提供商等軟件上產生的大數據為決策者提供了更多的資訊。我們希望大數據能幫助我們做出更加合理的決策,然而,很少有關于大數據分析的研究表明對戰略決策的支持。此外,分析數字地圖導航提供商的大數據用于決策支持的方法方法多種多樣,特別是在餐飲行業。本研究采用科學研究方法,設計并評估“大數據分析”的方法,來輔助餐飲企業制定營業地點的決策。利用開放平臺上評估分析現今已有的餐飲行業地區分布,并利用這種方法分析各地餐飲行業發展情況和預測可能的其他可以進行商業活動的地點。以北京作為一個典型案例,本文中演示了分析結構化與非結構化數據的方法,以增強在實際問題中的應用,該方法是通用的,它對其他大數據流也同樣有適用性。
1 定位數據在現代網路服務中的重要意義
如今的信息化社會中,來源于個人的自愿分享和各種在線服務軟件獲得的內容,為大數據分析創造了很多機會。而移動互聯時代,定位無處不在,任何一個應用只要想了解用戶的位置,不管是為用戶提供服務還是用于用戶分析,就一定會用到定位,但僅僅是原始數據的獲取,并不能幫助我們得到切實有用的信息,所以,我們需要使用科學系統的方法,對原始數據進行數據預處理,包括但不限于聚集、抽樣、維歸約離散化、二元化、變量變換等。之后可以進行形似化和相異性的度量,但是在對于數據的探索之中,數據的可視化可以格外清晰地展現數據的特征和屬性之間的關系。在導航服務網站(如高德、百度地圖等)中,多種類型的數據不斷增長,在任何真實分析項目中,我們都必須處理大量的數據。然而,傳統的數據管理方法既不能管理如此龐大的數據量,也不能處理其有效增長和維護,因為相關數據的數量和速度會迅速增加。
如今的開放平臺能夠提供2D、3D、衛星多種地圖形式供開發者選擇,開放平臺提供的API和SDK可以適應各種平臺的地圖構建工作,同時還提供強大的地圖再開發能力和地圖數據支持。
2 數據的預處理
數據的預處理是一個非常廣泛的概念,我們為了分析處理北京餐廳地理信息數據,需要用到以各種方式關聯起來的策略和算法,大體上,這一技術分為兩類,就是選擇分析所需要的數據對象和屬性,以及創建改變屬性。借此,我們可以改善數據挖掘過程中的各種冗雜工作,減少工作時間,增加效率。
聚集可以將兩個或多個對象合并成單個對象,比如:收集到的餐飲地理數據,可以將其一個餐館所有的事務合并成一個餐館事務,那么數據的數量可以減少為餐館的數量。這里的問題就是在創建這個聚集的事務時,我們需要考慮到每個屬性的不同,使用不同的方法對數據進行合并操作,如果是定量屬性,如訪問次數、餐廳各項價格等,可以通過求和求平均值進行處理,而定性屬性可以視其重要程度進行化簡和聚集,成為一個集合。這可以幫助我們使用更少的精力時間對龐大數據進行預處理,以便于后文中的可視化操作。
3 大數據與傳統的關系型數據庫
大數據與NoSQL數據庫近來被認為是完美搭配,但傳統的關系型數據庫也并不能被輕易取代,依舊有著難易度帶的地位。如今的數據量時常能夠達到難以用傳統關系型數據庫處理程度,而且有著越來越多的數據不再簡單建立在傳統關系之上,有了更高的可擴展性。正如MySQL凱源數據庫最初版本開發者Monty Widenius所言,NoSQL需要著更多的優化持續開發成本,而很多公司無法負擔也無需負擔這一成本。大多數人依舊需要傳統的關系型數據庫來對數據進行管理,而在單機的環境之上SQL具有更強勁的性能表現,如本文涉及到的更具體分析部分。只有在集群環境中,NoSQL在鍵值查找上會比SQL快。
所以,在進行限定地區的具體數據和具體數據關系分析中,我們可以進一步篩選并找出自己所需的數據,展示傳統的關系型數據庫進行的具體分析??梢詮凝嫶蟮臄祿兄贿x擇我們需要的數據,通過分析在開放應用API獲取的數據,得到北京市的餐飲服務信息,分析各個區餐飲行業的情況,簡略代碼如下:
for url in urlList:
html = url_open(url)
target = json.loads(html)
gsNo = int(target['count'])
pageNo = divmod(gsNo,20)[0]+1 if divmod(gsNo,20)[1]>0 else divmod(gsNo,20)[0]
cityListNo.append([cityList[i][0],cityList[i][1],gsNo,pageNo])
totalNum = totalNum + gsNo
i = i + 1
# ['010', '北京', 528, 27]
return cityListNo
def get_GSByCity():
for city in cityListNo:
urlList = []
def get_gsList():
cityUrlList = get_GSByCity()
#cityurl為北京市的url
allList = []
for cityUrl in cityUrlList:
cityPoisList = []
for url in cityUrl:
html = url_open(url)
target = json.loads(html)
pagePoisList = target['pois']
cityPoisList.append(pagePoisList)
cityPoisList = sum(cityPoisList,[])
allList.append(cityPoisList)
運行程序得到北京市的餐飲服務數據,在建立數據庫并進行可視化之前,先要修改MySQL系統文件保證數據和進行處理的計算機編碼格式保持一致,不然可能會導致數據亂碼,并對數據可視化造成一定而影響。
建立合適的數據庫,將數據導入數據庫。因為得到的數據包含編號、餐廳名稱,所在省市、城市、城區名稱、具體地址、餐廳風格標簽和具體經緯度數據,所以,基于得到的數據我們可以建立數據庫表格,并把數據導入到建立的數據庫中。
導入成功后,處理數據,找到各區餐飲服務的總體數量制作成餅圖來直觀感受北京各區的餐飲分布情況。
顯示數據為:海淀區27%、朝陽區37%、東城區18%、西城區15%、大興區3%;從這些數據可以看出,朝陽區明顯高于其他地區,說明朝陽區的餐飲服務在量的方面領先于其他,綜合朝陽區的人口情況尤其是遷入遷出情況、面積占比,這一區域的活躍度相對較高。
4 對于北京餐飲的數據可視化
在大多數的學科之中通常我們會強調算法和數學方法,而可視化數據挖掘在日常生活之中能夠起到直觀的效果。
數據可視化的第一步是將信息映射成可視模式,即是把數據中的對象、屬性和聯系應射程科室的對象、屬性和聯系,之后通過選擇做出簡化,將數據導出到CSV文件,生成可視化圖像,通過圖像可以觀察需要的結論。
5 北京餐飲服務熱力圖
餐飲服務熱力圖可以觀察到在北京中心城區之外,還有幾個餐飲服務業集中的地區,說明這幾個位置也是人流相對密集的地點,在其周圍可能存在較大聚落,可以觀察到其中就有北京首都國際機場,雁棲湖景區等位置,說明在中心城區和大的聚落之外,交通樞紐和風景區也是重要的商業活動和餐飲服務業發達的地點。商業活動由中心城區向外擴散,而在郊區的交通樞紐和風景區也有零星分布。這一結果與北京城市規劃也是相符的,其他采用網格布局(grid layout)的城市可能會顯現出截然不同的結果。
6 結語
以上作為一個說明性案例,證明足夠的餐廳地理信息數據可以幫助做出熱點預測決策制定等工作。如利用內蒙古的數據,可以進行類似的實驗展示城市餐飲服務在地理位置上的特征,也可側面探索居民行為特征。這些數據可為餐飲決策者提供參考信息分析競爭者情況,尋找潛在市場,證實大數據處理在分析決策上的效用。還能將其應用到其他領域如旅游行程規劃,可以綜合地理位置、訪問頻率為旅客規劃行程使用地理定位數據顯示附近的餐廳。
參考文獻
[1] J.Bao,Y.Zheng,D.Wilkie,et al.Recommendations in location-based social networks:a survey[J].Geoinformatica,2015,19(3):525-565.
[2] J Miaha,H Q Vu,John Gammackc,et al.A Big Data Analytics Method for Tourist Behaviour Analysis[J].Information & Management,2016,54(6).