李曉城,張增杰,夏勇明,錢松榮
隨著現在生活節奏的加快,人們自身的健康飲食問題的關注越來越少,所以快餐文化可以越來越暢銷,這樣會給人們的健康狀況帶來負面影響。為了解決這個困境,我們依托發達的互聯網平臺,借助 web數據挖掘技術提出了在線餐飲系統的設計方案。
基于WEB 數據挖掘,就是利用數據挖掘技術,自動地從網絡文檔以及服務中發現和抽取信息的過程。我們提出基于 web數據挖掘的在線健康餐飲分析和推薦系統,可以跟蹤用戶的飲食習慣,推薦可以改善用戶健康狀況的飲食,降低發生疾病的風險。在文獻[1]中,提出了基于 web數據挖掘的電子商務解決方案,通過顧客和web數據來發現隱藏模式和商業策略,設計了基于數據挖掘技術的新框架來構建網頁推薦系統。這個推薦框架可以作為我們分析和推薦系統的基礎架構。
在我們的解決方案里,系統架構可以分為3部分:飲食數據獲取,數據挖掘和健康飲食推薦。首先,系統方案需要搭建一個C2C的電子商務平臺,用戶可以在線訂餐點菜,系統通過獲取用戶存在數據庫中的數據來跟蹤用戶的飲食記錄。當然,這樣的平臺也要支持用戶可以通過網頁在線直接輸入飲食數據。然后,我們使用數據挖掘算法像分類、關聯規則等來分析用戶飲食習慣的有用信息,實現健康狀況評定和飲食推薦等。
Web數據挖掘建立在對大量的網絡數據進行分析的基礎上,采用相應的數據挖掘算法,在具體的應用模型上進行數據的提取、數據篩選、數據轉換、數據挖掘和模式分析,最后做出歸納性的推理、預測客戶的個性化行為以及用戶習慣,從而幫助進行決策和管理,減少決策的風險。在文獻[2]中,web數據挖掘處理過程可以分成5個功能模塊:數據采集、數據預處理、數據挖掘、分析和評價、知識規則化等模塊。
通常從功能上講,數據采集模塊是從外部 web環境中有選擇的獲取數據,為后期的數據挖掘提供材料和資源。Web環境下可以提供的數據源包括:web內容數據、web結構數據、web使用記錄數據。這個模塊主要由數據搜索、數據選擇和數據收錄3個相對獨立的過程組成。

圖1 Web數據挖掘處理過程
Web中數據大體上都是不完整,不一致的臟數據,無法直接進行數據挖掘,或挖掘結果差強人意。為了提前數據挖掘的質量產生了數據預處理技術。數據預處理有多種方法:數據清理,數據集成,數據變換,數據歸約等。這些數據處理技術在數據挖掘之前使用,大大提高了數據挖掘模式的質量,降低實際挖掘所需要的時間。
數據挖掘就是從大量的、不完全的、有噪聲的、模糊的、隨機的實際應用數據中,提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識的過程。利用數據挖掘進行數據分析常用的方法主要有分類、回歸分析、聚類、關聯規則、特征、變化和偏差分析等,它們分別從不同的角度對數據進行挖掘[3]。
分類是找出數據庫中一組數據對象的共同特點并按照分類模式將其劃分為不同的類,其目的是通過分類模型,將數據庫中的數據項映射到某個給定的類別。
聚類分析是把一組數據按照相似性和差異性分為幾個類別,其目的是使得屬于同一類別的數據間的相似性盡可能大,不同類別中的數據間的相似性盡可能小。
關聯規則是描述數據庫中數據項之間所存在的關系的規則,即根據一個事務中某些項的出現可導出另一些項在同一事務中也出現,即隱藏在數據間的關聯或相互關系。
分析和評價過程就是要分析通過數據挖掘過程獲得知識模型的可信度和有效性,并且得出評價結論,給管理和用戶決策提供信息支持。
知識表達模塊依賴于通過數據挖掘工具在 web數據中得到的知識模型,并且最好能夠通過合適的方式表達出來,便于用戶接受和相互交流。
我們的健康飲食分析和推薦系統方案由3部分組成:飲食數據采集、數據挖掘過程和健康推薦等。系統這3部分的功能描述可以參見圖2。

圖2 系統功能描述
1)數據的采集
在系統的功能實現中,首先需要一個在線餐飲的電子商務網站平臺,作為系統服務的基礎。用戶可以通過網絡在系統的商務平臺上點菜,就像在餐飲商家門店里一樣;當然,用戶也可以通過網站的網頁把自己的飲食數據錄入網站數據庫中。系統可以從數據庫中獲取用戶飲食數據,來跟蹤用戶的飲食記錄。
2)數據的挖掘
系統使用數據挖掘的算法如分類、聚類,關聯規則等來從用戶數據中提取飲食習慣的有用信息。首先分析食品的營養結構,然后計算菜譜中含有多少脂肪、蛋白質、維生素等。接著利用分類算法處理這些組合數據,將用戶分為不同的健康等級,并給出相應的評價結果。
3)健康飲食的推薦
經過上一步數據挖掘的過程,我們可以提取出許多有用的信息。比如,營養結構中哪些是缺少的,哪些是過剩的,潛在的疾病等。然后,系統可以根據個人情況推薦健康的餐飲菜譜,生活小貼士等信息。推薦系統推薦的意見會完善個人的飲食結構,提高健康狀況。另一方面,我們會實時跟蹤用戶的個人偏好,利用關聯規則發現個人的口味,推薦相應的菜肴,可以提供更好的個性化服務。
健康餐飲分析和推薦系統可以有四部分組成:集成層、數據層、推薦驅動層和用戶接口。在文獻[1]詳細描述了電子商務推薦系統的基本框架,在此基礎上,我們構建了在線餐飲分析和推薦系統,系統結構如圖3所示。

圖3 健康飲食分析和推薦系統結構
(1)集成層是一系列數據挖掘的準備過程。例如:數據提取、數據清理、數據轉換、數據加載等。這個層利用Xquery/XSLT/ XML 機制實現數據倉儲,例如關系型或者XML本地數據庫。同時,使用log解析組件來解析和轉換網站服務器生成的 ASCII碼的文件成為標準的數據庫格式。這一層還用來維護用戶會話與web服務、web頁面之間的關聯,這對于通過用戶會話來分析用戶對 web服務的使用情況非常重要。
(2)數據層是用戶輸入、輸出的飲食數據的倉儲部件。同時,這一層還存放預處理的日志,電子商務會話、還有關于web服務執行信息等。
(3)推薦層的核心是數據挖掘引擎,負責從數據庫中加載大量的XML數據,執行SQL命令,還有數據挖掘算法等。這些算法能夠對在數據庫中的用戶菜譜記錄進行分類,并且發現用戶飲食組成結構和潛在疾病的關聯,然后根據這些相關性推薦不同的餐飲組合,改善其飲食狀況。
系統采用決策樹的分類算法來處理用戶飲食數據,然后給出健康狀況分析。決策樹的目標是創建一個模型,根據多種輸入變量來預測一個目標變量的值。我們可以用一個矢量來表示營養屬性集X=(X1,X2,X3…,Xk),其中Xi代表不同的營養屬性,比如脂肪、蛋白質、糖類、維生素、礦物質含量等。分類屬性用也用一個矢量表示C=(c1,c2,c3,…,cn),其中n個不同的類代表了不同的健康狀況。系統采用決策樹作為分類器來實現映射函數H:f(X)→C ,這些規則可以從科學營養結構的先驗知識中訓練得到。
對于系統推薦模型可以采用關聯規則學習方法。數據挖掘中的關聯規則原始定義和描述在文獻[4]中做了詳細論述。例如,在超市的銷售歷史數據中發現的關聯規則:{onions,potatoes}?{beef}顯示,如果顧客購買了洋蔥頭和土豆的組合,一般還會購買一些牛肉。根據這樣的理論,我們可以從用戶的餐飲歷史數據中找到用戶的個人喜好,然后根據不同用戶的不同口味偏好推薦不同的菜單,提高個性化服務水平。
1)用戶接口
用戶接口是個抽象的概念,用于連接用戶和web服務器。用戶可以通過接口來在線點菜,也可以直接輸入自己的飲食數據。同時,接口還可以反饋健康分析、個性化推薦信息給顧客。
在系統實現過程中,首先要實現一個在線點餐的電子商務平臺,作為用戶原始數據的來源。電子商務平臺應該實現如下功能,如圖4所示。
1)電子商務平臺
在構建系統之處,我們面臨的一個問題就是第一手的用戶數據從何而來。為了解決這個現實的問題,一個C2C的電子商務平臺,可以連接用戶和餐飲商家,同時也創造了獲得用戶餐飲數據的機會。
電子商務平臺應該實現讓顧客在線點菜的功能,然后平臺服務器發送顧客的訂單到餐飲商家,然后顧客就可以直接去商家消費。

圖4 系統實現方案
2)用戶接口
如果用戶不通過在線點餐,系統還要通過接口實現用戶數據的錄入;同時,接口還要實現健康狀況、推薦意見反饋等。
3)日志信息
服務器應該可以記錄顧客在瀏覽器里的操作的日志信息,然后可以作為進一步的數據挖掘的數據源。
4)后臺數據處理
數據處理引擎是整個平臺不可獲取的一部分。首先,后臺數據處理要通過數據庫和日志信息收集用戶的飲食數據,然后通過特定的數據挖掘算法來分析這些第一手數據,最后給出分析結果和推薦建議。
在本文中,我們提出了基于數據挖掘的健康飲食分析和推薦系統。從功能上講,系統可以劃分為3部分:用戶餐飲數據采集、數據挖掘處理、健康餐飲推薦等。首先,系統方案需要搭建一個C2C的電子商務平臺,用戶可以在線訂餐點菜,就像在實體店中一樣,通過獲取用戶存在數據庫中的數據來跟蹤用戶的飲食記錄。當然,這樣的平臺也要支持用戶可以通過網頁在線直接輸入飲食數據。然后,我們使用數據挖掘算法像分類、關聯規則等來分析用戶飲食習慣的有用信息,實現健康狀況評定和飲食推薦等。
本文提出的方案是健康飲食分析和推薦系統的第一步,后面還需要在系統實施驗證方面做更多的工作。
[1]Sun Jinhua,Xie Yanqi.A Web Data Mining Framework for E-commerce Recommender Systems[C].International Conference on Computational Intelligence and Software Engineering,11-13 Dec.2009,pp.1-4.
[2]Xinlin Zhang,Xiangdong Yin.Design of an Information Intelligent System based on Web Data Mining[C].International Conference on Computer Science and Information Technology 2008,pp.88-91.
[3]D J H,Mannila H and Smyth P.Principles of Data Mining[M],MIT Press,2000.
[4]Agrawal R,Imielinski T,Swami A.Mining Association Rules between Sets of Items in Large Databases[C].SIGMOD Conference 1993,pp.207-216.
[5]Xinlin Zhang,Xiangdong Yin.Design of an Information Intelligent System based on Web Data Mining[C].International Conference on Computer Science and Information Technology 2008,pp.88-91.
[6]Chen ting,Niu xiao,Yang weiping.The Application of Web Data Mining Technique in Competitive Intelligence System of Enterprise based on XML[C].Third International Symposium on Intelligent Information Technology Application,2009,pp.396 -399.