天天看點

《Python資料分析與挖掘實戰》一1.4 資料挖掘模組化過程

本節書摘來自華章出版社《python資料分析與挖掘實戰》一書中的第1章,第1.4節,作者 張良均 王路 譚立雲 蘇劍林,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視

從本節開始,将以餐飲行業的資料挖掘應用為例來詳細介紹資料挖掘的模組化過程,如圖1-1所示。

針對具體的資料挖掘應用需求,首先要明确本次的挖掘目标是什麼?系統完成後能達到什麼樣的效果?是以,我們必須分析應用領域,包括應用中的各種知識和應用目标,了解相關領域的情況,熟悉背景知識,弄清使用者需求。要想充分發揮資料挖掘的價值,必須對目标有一個清晰明确的定義,即決定到底想幹什麼。

《Python資料分析與挖掘實戰》一1.4 資料挖掘模組化過程

針對餐飲行業的資料挖掘應用,可定義如下挖掘目标。

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

對餐飲客戶進行細分,了解不同客戶的貢獻度和消費特征,分析哪些客戶是最有價值的,哪些是最需要關注的,對不同價值的客戶采取不同的營銷政策,将有限的資源投放到最有價值的客戶身上,實作精準化營銷。

基于菜品曆史銷售情況,綜合考慮節假日、氣候和競争對手等影響因素,對菜品銷量進行趨勢預測,友善餐飲企業準備原材料。

基于餐飲大資料,優化新店選址,并對新店所在位置的潛在顧客口味偏好進行分析,以便及時進行菜式調整。

在明确了需要進行資料挖掘的目标後,接下來就需要從業務系統中抽取出一個與挖掘目标相關的樣本資料子集。抽取資料的标準,一是相關性,二是可靠性,三是有效性,而不是動用全部企業資料。通過對資料樣本的精選,不僅能減少資料處理量,節省系統資源,還可以使我們想要尋找的規律性更加凸顯出來。

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

衡量取樣資料品質的标準如下。

1)資料完整無缺,各類名額項齊全。

2)資料準确無誤,反映的都是正常(而不是異常)狀态下的水準。

對擷取的資料,可再從中進行抽樣操作。抽樣的方式是多種多樣的,常見的方式如下。

随機抽樣:在采用随機抽樣方式時,資料集中的每一組觀測值都有相同的被抽樣的機率。如按10%的比例對一個資料集進行随機抽樣,則每一組觀測值都有10%的機會被取到。

等距抽樣:如按5%的比例對一個有100組觀測值的資料集進行等距抽樣,則有100 / 5=20,等距抽樣方式是取第20、40、60、80和第100這5組觀測值。

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

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

分類抽樣:在前述幾種抽樣方式中,并不考慮抽取樣本的具體取值。分類抽樣則依據某種屬性的取值來選擇資料子集,如按客戶名稱分類、按位址區域分類等。分類抽樣的選取方式就是前面所述的幾種方式,隻是抽樣以類為機關。

基于上節定義的針對餐飲行業的挖掘目标,需從客戶關系管理系統、前廳管理系統、後廚管理系統、财務管理系統和物資管理系統中抽取用于模組化和分析的餐飲資料,主要内容如下。

1)餐飲企業資訊:名稱、位置、規模、聯系方式,以及部門、人員、角色等。

2)餐飲客戶資訊:姓名、聯系方式、消費時間、消費金額等。

3)餐飲企業菜品資訊:菜品名稱、菜品單價、菜品成本、所屬部門等。

4)菜品銷量資料:菜品名稱、銷售日期、銷售金額、銷售份數。

5)原材料供應商資料及商品資料:供應商姓名、聯系方式、商品名稱、客戶評價資訊。

6)促銷活動資料:促銷日期、促銷内容、促銷描述。

7)外部資料,如天氣、節假日、競争對手以及周邊商業氛圍等。

前面所叙述的資料取樣,多少是帶着人們對如何實作資料挖掘目标的先驗認識進行操作的。當我們拿到了一個樣本資料集後,它是否達到我們原來設想的要求;樣本中有沒有什麼明顯的規律和趨勢;有沒有出現從未設想過的資料狀态;屬性之間有什麼相關性;它們可區分成怎樣一些類别……,這都是要探索的内容。

對所抽取的樣本資料進行探索、稽核和必要的加工處理,是保證最終的挖掘模型的品質所必需的。可以說,挖掘模型的品質不會超過抽取樣本的品質。資料探索和預處理的目的是為了保證樣本資料的品質,進而為保證模型品質打下基礎。

針對1.4.2節采集的餐飲資料,資料探索主要包括:異常值分析、缺失值分析、相關分析和周期性分析等,有關介紹詳見第3章。

當采樣資料次元過大時,如何進行降維處理、缺失值處理等都是資料預處理要解決的問題。

由于采樣資料中常常包含許多含有噪聲、不完整,甚至不一緻的資料,對資料挖掘所涉及的資料對象必須進行預處理。那麼,如何對資料進行預處理以改善資料品質,并最終達到完善最終資料挖掘結果的目的呢?

針對采集的餐飲資料,資料預處理主要包括:資料篩選、資料變量轉換、缺失值處理、壞資料處理、資料标準化、主成分分析、屬性選擇、資料規約等,有關介紹詳見第3章。

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

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

以菜品銷量預測為例,模型建構是對菜品曆史銷量,是綜合考慮了節假日、氣候和競争對手等采樣資料軌迹的概括,它反映的是采樣資料内部結構的一般特征,并與該采樣資料的具體結構基本吻合。模型的具體化就是菜品銷量預測公式,公式可以産生與觀察值有相似結構的輸出,這就是預測值。

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

對分類與預測模型和聚類分析模型的評價方法是不同的,具體評價方法詳見第5章相關章節介紹。