數據挖掘建模過程全公開

點擊上方“ Python爬蟲與數據挖掘 ”,進行關注

回覆“書籍”即可獲贈Python從入門到進階共10本電子書

感時花濺淚,恨別鳥驚心。
「數倉寶貝庫」,帶你學數據!

導讀:本文以餐飲行業的數據挖掘應用爲例,詳細介紹數據挖掘的建模過程。

數據挖掘的基本任務包括利用分類與預測聚類分析關聯規則時序模式偏差檢測智能推薦等方法幫助企業提取數據中蘊含的商業價值提高企業的競爭力


對餐飲企業而言,數據挖掘的基本任務是從餐飲企業採集各類菜品銷量、成本單價、會員消費、促銷活動等內部數據,以及天氣、節假日、競爭對手及周邊商業氛圍等外部數據,之後利用數據分析手段,實現菜品智能推薦、促銷效果分析、客戶價值分析、新店選點優化、熱銷/滯銷菜品分析和銷量趨勢預測,最後將這些分析結果推送給餐飲企業管理者及有關服務人員,爲餐飲企業降低運營成本、提升盈利能力、實現精準營銷、策劃促銷活動等提供智能服務支持。


接下來將以餐飲行業的數據挖掘應用爲例,詳細介紹數據挖掘的建模過程,如圖1所示。



圖1 餐飲行業數據挖掘建模過程




01
定義挖掘目標


針對具體的數據挖掘應用需求,首先要明確本次的挖掘目標是什麼,系統完成後能達到什麼樣的效果。因此,我們必須分析應用領域(包括應用中的各種知識和應用目標),瞭解相關領域的有關情況,熟悉背景知識,弄清用戶需求。要想充分發揮數據挖掘的價值,必須要對數據挖掘目標有清晰明確的認識,即決定到底想幹什麼。


針對餐飲行業的數據挖掘應用,可定義如下挖掘目標:

1)實現動態菜品智能推薦,幫助顧客快速發現自己感興趣的菜品,同時確保推薦給顧客的菜品也是餐飲企業期望顧客消費的菜品,實現餐飲消費者和餐飲企業的雙贏。

2)對餐飲客戶進行細分,瞭解不同客戶的貢獻度和消費特徵,分析哪些客戶是最有價值的、哪些是最需要關注的,對不同價值的客戶採取不同的營銷策略,將有限的資源投放到最有價值的客戶身上,實現精準化營銷。

3)基於菜品歷史銷售情況,綜合考慮節假日、氣候和競爭對手等影響因素,對菜品銷量進行趨勢預測,方便餐飲企業準備原材料。

4)基於餐飲大數據,優化新店選址,並對新店潛在顧客的口味偏好進行分析,以便及時進行菜式調整。



02
數據取樣


在明確了數據挖掘的目標後,接下來就需要從業務系統中抽取一個與挖掘目標相關的樣本數據子集。抽取數據的標準:一是相關性,二是可靠性,三是有效性,而不是動用全部企業數據。通過數據樣本的精選,不僅能減少數據處理量,節省系統資源,而且使我們想要尋找的規律能更好地突顯出來。


進行數據取樣,一定要嚴把質量關。在任何時候都不能忽視數據的質量,即使是從一個數據倉庫中進行數據取樣,也不要忘記檢查數據質量如何。因爲數據挖掘是要探索企業運作的內在規律性,原始數據有誤,就很難從中探索其規律。若真的從中探索出什麼“規律性”,再依此去指導工作,則很可能會對相關決策造成誤導。若從正在運行的系統中進行數據取樣,更要注意數據的完整性和有效性。


衡量取樣數據質量的標準包括:資料完整無缺,各類指標項齊全;數據準確無誤,反映的都是正常(而不是異常)狀態下的水平。


對獲取的數據可再從中作抽樣操作。抽樣的方式多種多樣,常見的方式如下:

1)隨機抽樣:在採用隨機抽樣方式時,數據集中的每一組觀測值都有相同的被抽取的概率。如按10%的比例對一個數據集進行隨機抽樣,則每一組觀測值都有10%的機會被取到。

2)等距抽樣:如果按5%的比例對一個有100組觀測值的數據集進行等距抽樣,則有個數據被取到,那麼等距抽樣方式是取第20、40、60、80組這和第100組這5組觀測值。

3)分層抽樣:在這種抽樣操作中,首先將樣本總體分成若干層次(或者說分成若干個子集)。每個層次中的觀測值都具有相同的被選用的概率,但對不同的層次可設定不同的概率。這樣的抽樣結果通常具有更好的代表性,進而使模型具有更好的擬合精度。

4)按起始順序抽樣:這種抽樣方式是從輸入數據集的起始處開始抽樣。抽樣的數量可以給定一個百分比,或者直接給定選取觀測值的組數。

5)分類抽樣:在前述幾種抽樣方式中,並不考慮抽取樣本的具體取值。分類抽樣則依據某種屬性的取值來選擇數據子集,如按客戶名稱分類、按地址區域分類等。分類抽樣的選取方式就是前面所述的幾種方式,只是抽樣以類爲單位。


基於前面提到的針對餐飲行業的數據挖掘目標,需從客戶關係管理系統、前廳管理系統、後廚管理系統、財務管理系統和物資管理系統中抽取用於建模和分析的餐飲數據,主要包括的內容如下:

  • 餐飲企業信息:名稱、位置、規模、聯繫方式、部門、人員以及角色等。

  • 餐飲客戶信息:姓名、聯繫方式、消費時間、消費金額等。

  • 餐飲企業菜品信息:菜品名稱、菜品單價、菜品成本、所屬部門等。

  • 菜品銷量數據:菜品名稱、銷售日期、銷售金額、銷售份數。

  • 原材料供應商資料及商品數據:供應商姓名、聯繫方式、商品名稱、客戶評價信息。

  • 促銷活動數據:促銷日期、促銷內容以及促銷描述等。

  • 外部數據:如天氣、節假日、競爭對手以及周邊商業氛圍等數據。



03
數據探索


前面所敘述的數據取樣,多少帶有人們對如何實現數據挖掘目的的先驗認識而進行操作的。當我們拿到一個樣本數據集後,它是否達到我們原來設想的要求、其中有沒有什麼明顯的規律和趨勢、有沒有出現從未設想過的數據狀態、屬性之間有什麼相關性、它們可分成怎樣的類別……這都是要首先探索的內容。


對所抽取的樣本數據進行探索、審覈和必要的加工處理,能保證最終的挖掘模型的質量。可以說,挖掘模型的質量不會超過抽取樣本的質量。數據探索和預處理的目的是保證樣本數據的質量,從而爲保證模型質量打下基礎。


針對採集的餐飲數據,數據探索主要包括異常值分析、缺失值分析、相關分析、週期性分析等。



04
數據預處理


當採樣數據維度過大時,如何進行降維處理、缺失值處理等都是數據預處理要解決的問題。


由於採樣數據中常常包含許多含有噪聲、不完整甚至不一致的數據,對數據挖掘所涉及的數據對象必須進行預處理。那麼如何對數據進行預處理以改善數據質量,並最終達到完善數據挖掘結果的目的呢?


針對採集的餐飲數據,數據預處理主要包括數據篩選、數據變量轉換、缺失值處理、壞數據處理、數據標準化、主成分分析、屬性選擇、數據規約等



05
挖掘建模



樣本抽取完成並經預處理後,接下來要考慮的問題是:本次建模屬於數據挖掘應用中的哪類問題(分類、聚類、關聯規則、時序模式或智能推薦)?選用哪種算法進行模型構建?


這一步是數據挖掘工作的核心環節。針對餐飲行業的數據挖掘應用,挖掘建模主要包括基於關聯規則算法的動態菜品智能推薦、基於聚類算法的餐飲客戶價值分析、基於分類與預測算法的菜品銷量預測、基於整體優化的新店選址。


以菜品銷量預測爲例,模型構建是對菜品歷史銷量,綜合考慮節假日、氣候和競爭對手等採樣數據軌跡的概括,它反映的是採樣數據內部結構的一般特徵,並與該採樣數據的具體結構基本吻合。模型的具體化就是菜品銷量預測公式,公式可以產生與觀察值有相似結構的輸出,這就是預測值。



06
模型評價


從建模過程會得出一系列的分析結果,模型評價的目的之一就是從這些模型中自動找出一個最好的模型,另外就是要根據業務對模型進行解釋和應用。



0 7
常用的數據挖掘建模工具


數據挖掘是一個反覆探索的過程,只有將數據挖掘工具提供的技術和實施經驗與企業的業務邏輯和需求緊密結合,並在實施過程中不斷磨合,才能取得好的效果。下面簡單介紹幾種常用的數據挖掘建模工具。


(1)SAS Enterprise Miner


Enterprise Miner(EM)是SAS推出的一個集成數據挖掘系統,允許使用和比較不同的技術,同時還集成了複雜的數據庫管理軟件。它通過在一個工作空間(Workspace)中按照一定的順序添加各種可以實現不同功能的節點,然後對不同節點進行相應的設置,最後運行整個工作流程(Workflow),便可以得到相應的結果。


(2)IBM SPSS Modeler


IBM SPSS Modeler原名Clementine,2009年被IBM收購後對產品的性能和功能進行了大幅度改進和提升。它封裝了最先進的統計學和數據挖掘技術來獲得預測知識,並將相應的決策方案部署到現有的業務系統和業務過程中,從而提高企業的效益。IBM SPSS Modeler擁有直觀的操作界面、自動化的數據準備和成熟的預測分析模型,結合商業技術可以快速建立預測性模型。


(3)SQL Server


Microsoft的SQL Server集成了數據挖掘組件—Analysis Servers,藉助SQL Server的數據庫管理功能,可以無縫集成在SQL Server數據庫中。SQL Server 2008提供了決策樹算法、聚類分析算法、Naive Bayes算法、關聯規則算法、時序算法、神經網絡算法、線性迴歸算法等9種常用的數據挖掘算法。但是其預測建模的實現是基於SQL Server平臺的,平臺移植性相對較差。


(4)Python


Python是一種面向對象的解釋型計算機程序設計語言,它擁有高效的高級數據結構,並且能夠用簡單而又高效的方式進行面向對象編程。但是Python並不提供專門的數據挖掘環境,它提供衆多的擴展庫,例如,以下3個十分經典的科學計算擴展庫:NumPy、SciPy和Matplotlib,它們分別爲Python提供了快速數組處理、數值運算以及繪圖功能,Scikit-learn庫中包含很多分類器的實現以及聚類相關算法。正因爲有了這些擴展庫,Python才能成爲數據挖掘常用的語言,也是比較適合數據挖掘的語言。


(5)WEKA


WEKA(Waikato Environment for Knowledge Analysis)是一款知名度較高的開源機器學習和數據挖掘軟件。高級用戶可以通過Java編程和命令行來調用其分析組件。同時,WEKA也爲普通用戶提供了圖形化界面,稱爲WEKA Knowledge Flow Environ-ment和WEKA Explorer,可以實現預處理、分類、聚類、關聯規則、文本挖掘、可視化等功能。


(6)KNIME


KNIME(Konstanz Information Miner)是基於Java開發的,可以擴展使用WEKA中的挖掘算法。KNIME採用類似數據流(Data Flow)的方式來建立分析挖掘流程。挖掘流程由一系列功能節點組成,每個節點有輸入/輸出端口,用於接收數據或模型、導出結果。


(7)RapidMiner


RapidMiner也叫YALE(Yet Another Learning Environment),提供圖形化界面,採用類似Windows資源管理器中的樹狀結構來組織分析組件,樹上每個節點表示不同的運算符(Operator)。YALE提供了大量的運算符,包括數據處理、變換、探索、建模、評估等各個環節。YALE是用Java開發的,基於WEKA來構建,可以調用WEKA中的各種分析組件。RapidMiner有拓展的套件Radoop,可以和Hadoop集成起來,在hadoop集羣上運行任務。


(8)TipDM開源數據挖掘建模平臺


TipDM數據挖掘建模平臺是基於Python引擎、用於數據挖掘建模的開源平臺。它採用B/S結構,用戶不需要下載客戶端,可通過瀏覽器進行訪問。平臺支持數據挖掘流程所需的主要過程:數據探索(相關性分析、主成分分析、週期性分析等),數據預處理(特徵構造、記錄選擇、缺失值處理等),構建模型(聚類模型、分類模型、迴歸模型等),模型評價(R-Squared、混淆矩陣、ROC曲線等)。用戶可在沒有Python編程基礎的情況下,通過拖曳的方式進行操作,將數據輸入輸出、數據預處理、挖掘建模、模型評估等環節通過流程化的方式進行連接,以達到數據分析挖掘的目的。


本文摘編於《Python數據分析與挖掘實戰(第2版)》,經出版方授權發佈。

推薦語:暢銷書全新升級,第1版銷售超過10萬冊,被國內100餘所高等院校採用爲教材,同時被廣大數據科學工作者奉爲經典,是該領域公認的事實標準。

------------------ 送書 -------------------

內容簡介

1、如正文所介紹的那樣


活動規則


參與方式:在下方公衆號後臺回覆 “送書”關鍵字,記得是送書二字哈,即可參與本次的送書活動。

公佈時間2021年7月28號(週三)晚上20點

領取事宜:請小夥伴添加小助手微信: WebFighting,或者掃碼添加好友。添加小助手的每一個人都可以領取一份Python學習資料,更重要的是方便聯繫。

注意事項一定要留意微信消息,如果你是幸運兒就儘快在小程序中填寫收貨地址、書籍信息。一天之內沒有填寫收貨信息,送書名額就轉給其他人了噢,歡迎參加!


------------------- End -------------------

往期精彩文章推薦:

歡迎大家點贊,留言,轉發,轉載,感謝大家的相伴與支持

想加入Python學習羣請在後臺回覆【入羣

萬水千山總是情,點個【在看】行不行

/今日留言主題/

隨便說一兩句吧~~

本文分享自微信公衆號 - Python爬蟲與數據挖掘(crawler_python)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章