李開陽
(河南大學(xué)附屬中學(xué),河南開封,475000)
隨著人們生活水平的不斷提高和消費(fèi)意識(shí)的不斷改進(jìn),菜品的需求等級(jí)越來越高。為了便利人們并滿足其需求,本文利用數(shù)據(jù)倉庫和數(shù)據(jù)挖掘技術(shù)分析存放在數(shù)據(jù)庫中大量的菜譜信息并以此預(yù)測世界各地的菜品及其分屬的菜系。論文的研究在于通過對(duì)分屬不同菜系的菜品進(jìn)行以支持向量機(jī)(SVM)為主,以Python為輔的有效方法,并基于TFIDF加權(quán)技術(shù)進(jìn)行數(shù)據(jù)分析。從多方面構(gòu)建數(shù)據(jù)挖掘模型,直觀有效地反映出數(shù)據(jù)挖掘的分析結(jié)果?;谝延械臄?shù)據(jù)分析模型,并根據(jù)最終的詳細(xì)分析數(shù)據(jù),把菜品的成分與其分屬的菜系進(jìn)行有機(jī)結(jié)合。
這些被挖掘并整理過后的數(shù)據(jù)和模型,不僅可以為餐廳或餐飲APP等餐飲機(jī)構(gòu)提供有效信息,還可以增進(jìn)人們對(duì)餐飲文化的了解,豐富人們的知識(shí)。
近年來,大數(shù)據(jù)一度成為網(wǎng)絡(luò)熱詞,人工智能也不斷發(fā)展,二者的重要技術(shù)—數(shù)據(jù)挖掘,受到了更多人的關(guān)注。數(shù)據(jù)挖掘,就是從大量的,隨機(jī)的數(shù)據(jù)庫中,提取隱含在其中人們事先不知道,但又有潛在有用信息的過程。數(shù)據(jù)挖掘,它是一種多學(xué)科相互綜合、相互滲透的技術(shù),它以傳統(tǒng)的數(shù)據(jù)庫技術(shù)為基礎(chǔ),運(yùn)用多種手段分析數(shù)據(jù),對(duì)海量數(shù)據(jù)進(jìn)行知識(shí)發(fā)現(xiàn),并進(jìn)行恰當(dāng)?shù)目梢暬硎荆且环N高效的預(yù)測決策系統(tǒng)解決方案?;跀?shù)據(jù)挖掘技術(shù)的預(yù)測決策系統(tǒng),利用挖掘技術(shù),通過構(gòu)建預(yù)測決策模型,對(duì)生產(chǎn)和計(jì)劃的完成情況及相關(guān)環(huán)境數(shù)據(jù)進(jìn)行多角度、多層次的分析,幫助決策者及時(shí)掌握計(jì)劃的運(yùn)行情況和發(fā)展趨勢。
1.2.1 TF-IDF(特征向量分類)
IDF的主要思想是:如果包含詞條t的文檔越少,也就是n越小,IDF越大,則說明詞條t具有很好的類別區(qū)分能力。如果某一類文檔C中包含詞條t的文檔數(shù)為m,而其它類包含t的文檔總數(shù)為k,顯然所有包含t的文檔數(shù)n=m+k,當(dāng)m大的時(shí)候,n也大,按照IDF公式得到的IDF的值會(huì)小,就說明該詞條t類別區(qū)分能力不強(qiáng)。
1.2.2 SVM(支持向量機(jī))
原始SVM算法由Vladimir N. Vapnik和Alexey Ya發(fā)明。當(dāng)時(shí)這方面的研究尚不十分完善,且數(shù)學(xué)上比較艱澀,大多數(shù)人難以理解和接受。近年來,許多關(guān)于SVM方法的研究,包括算法本身的改進(jìn)和算法的實(shí)際應(yīng)用,都陸續(xù)被提了出來。隨著支持向量機(jī)的不斷發(fā)展,人們對(duì)支持向量機(jī)的研究也越來越細(xì)化,其要研究方向大致可分為:求解支持向量機(jī)問題,支持向量機(jī)多類分類問題,參數(shù)的選擇和優(yōu)化問題等。
本研究選取了kaggle數(shù)據(jù)挖掘競賽網(wǎng)下載的世界各地的不同菜系所包含的主要成分,并賦予每個(gè)菜系不同的編號(hào)。
研究中所有的菜系成分和可能影響因素皆來自Kaggle網(wǎng)站。這些數(shù)據(jù)均以微軟Excel表格形式存儲(chǔ)。
面對(duì)66萬的訓(xùn)練數(shù)據(jù)和15萬測試數(shù)據(jù),數(shù)據(jù)較為龐雜,但內(nèi)容較為全面。不同菜系已經(jīng)用”id”編號(hào)。于是,我們對(duì)數(shù)據(jù)經(jīng)行了細(xì)致的檢查,并未發(fā)現(xiàn)數(shù)據(jù)有缺失或遺漏現(xiàn)象,且系統(tǒng)較為完備。我們參考了關(guān)于SVM的一些論文,建立了SVM模型。
TF-IDF 的概念被公認(rèn)為信息檢索中最重要的發(fā)明。在搜索、文獻(xiàn)分類和其他相關(guān)領(lǐng)域有廣泛的應(yīng)用。
詞頻又叫TF-IDF,可以給重要的詞加上一個(gè)權(quán)重。我們經(jīng)常需要一個(gè)詞來概括并代表一篇文章的寫作意圖,而TF-IDF就可以對(duì)此進(jìn)行統(tǒng)計(jì),用以找出對(duì)于一份文件較為重要的詞匯。TF-IDF的主要思想是:如果某個(gè)詞或短語在一篇文章中出現(xiàn)的頻率TF高,并且在其他文章中很少出現(xiàn),則認(rèn)為此詞或者短語具有很好的類別區(qū)分能力適合用來分類。它能夠反映這篇文章的特性,某個(gè)詞對(duì)文章的重要性越高,它的TF-IDF值就越大。所以需要用TF-IDF來進(jìn)行信息檢索。
現(xiàn)在有一個(gè)給定的文件,如果用詞數(shù)來度量該文件中一個(gè)詞的重要程度,這顯然是不合理的,因?yàn)樵谝粋€(gè)較長的文件里相同的一個(gè)詞語很有可能比在短文件中出現(xiàn)的次數(shù)高,但這個(gè)詞本身可能對(duì)該文件并不重要。用這個(gè)給定的詞語在文件中出現(xiàn)的頻率,也就是詞頻,來進(jìn)行對(duì)詞數(shù)的歸一化,就可以防止它偏向長的文件。如圖1所示。
圖 1 TF—IDF 流程圖
在向量空間模型中,它經(jīng)常會(huì)和余弦相似度一同使用,用來判斷兩份文件之間是否相似。每種成分對(duì)該菜系的貢獻(xiàn)值由向量中每一個(gè)維度的大小來決定。根據(jù)余弦定理,可以求出特征向量之間的夾角(夾角在0度到90度之間)如圖2所示。
圖2 特征向量的計(jì)算
兩向量夾角的余弦等于1時(shí),也就是夾角為0,說明這兩種菜系的成分完全相同;當(dāng)夾角的余弦接近1時(shí),這兩種菜系的成分基本相同,也有可能完全一致,目標(biāo)菜系與該菜系基本相似,從而可以歸成一類;夾角的余弦越小,說明他們之間的成分差距越大。
優(yōu)點(diǎn):一是解決了分類器不好處理離散數(shù)據(jù)的問題;二是在一定程度上也起到了擴(kuò)充特征的作用。
缺點(diǎn):在文本特征表示上有些缺點(diǎn)就非常突出了。首先,它是一個(gè)詞袋模型,不考慮詞與詞之間的順序;其次,它假設(shè)詞與詞相互獨(dú)立(在大多數(shù)情況下,詞與詞是相互影響的);再次,它的獨(dú)立性不強(qiáng);最后,它得到的特征是離散稀疏的。
支持向量機(jī)簡稱SVM,是20世紀(jì)末期發(fā)明的一種分類算法。其原理類似于種西瓜,切西瓜,即對(duì)低維的數(shù)據(jù)升維,將數(shù)據(jù)映射到高維特征空間,之后對(duì)生成的多維物體在特征空間內(nèi)用超平面切割從而再獲得分類后的低維數(shù)據(jù),達(dá)到分類的效果。
圖3 SVM流程圖
升維是針對(duì)在低維不容易分類的元素,將其轉(zhuǎn)化成高維,再進(jìn)行分類。升維的效果有兩種,一是針對(duì)低維的數(shù)據(jù)可以直接用升維后的本質(zhì)差別將其分離。如圖4所示。二是可以拉大低維數(shù)據(jù)間的差距使之容易分類例如10與9低維差距并不大,可是假如升維成(10,100)和(9,81)差距值增大且差值所占比例也增大了,這也更容易分出類別。
圖4 低維數(shù)據(jù)映射分類
支持向量機(jī)的重點(diǎn)是高維分類,而高維分類的核心就是超平面。經(jīng)過升維后,計(jì)算機(jī)通過計(jì)算點(diǎn)間的距離,確定兩類間相鄰最近的兩點(diǎn),在兩點(diǎn)間算出超平面使之與兩點(diǎn)間距離相等,作其中垂線并進(jìn)行適當(dāng)升維,產(chǎn)生超平面。于是,數(shù)據(jù)就被輕松地分為了兩類。然而,有時(shí)由于存在異常數(shù)據(jù),SVM的精準(zhǔn)度會(huì)大打折扣,容易導(dǎo)致其過擬合。我們引入了松弛變量,將超平面模糊化,使其變?yōu)橐粋€(gè)允許計(jì)算機(jī)出錯(cuò)的范圍。為了提高精度,我們又引入了懲罰參數(shù),賦予每個(gè)結(jié)果一定權(quán)重,降低超平面附近結(jié)果以及異常數(shù)據(jù)的權(quán)重,從而提高精度。這個(gè)過程就叫做正則化。
圖5 超平面模糊化
圖6 正則化
優(yōu)點(diǎn):支持向量機(jī)對(duì)于大部分?jǐn)?shù)據(jù)具有極高的應(yīng)用價(jià)值,針對(duì)界限規(guī)則的數(shù)據(jù)它可以巧妙地運(yùn)用維度的改變,快速建立起較為規(guī)范的模型,運(yùn)用規(guī)范的超平面,快速分類。
缺點(diǎn):大多只用于二分類,多類會(huì)造成結(jié)果的不精確,因此較之于決策樹不具有普適性。且超平面的建立較為機(jī)械,無法進(jìn)行自動(dòng)規(guī)避,受異常數(shù)據(jù)干擾較大,魯棒性不強(qiáng)。
循環(huán)語句出現(xiàn)較早,是一種類似于決策樹的推測方法。在漫長的篩選中,像離心機(jī)一樣,元素間差異會(huì)不斷被擴(kuò)大,進(jìn)而篩選出最相似的元素,排除噪聲元素,并輸出結(jié)果,達(dá)到精確導(dǎo)入,精確分類,精確輸出的效果。
我們建立了三種模型,用測數(shù)據(jù)進(jìn)行了實(shí)驗(yàn),表1是部分結(jié)果。
通過基于python語言的循環(huán)語句,我們整理出了世界各地菜系中最常見的十種成分。經(jīng)過可視化處理后整理如圖8所示。
由圖8可看出,十種成分由多到少分別是鹽、洋蔥、橄欖油、大蒜、糖、蒜瓣、黃油、黑胡椒粉、面粉。這與世界范圍內(nèi)不同菜品的受歡迎程度是有很大關(guān)系的。
表1 部分預(yù)測結(jié)果
圖8 十種常見成分
本文使用了Kaggle網(wǎng)站的數(shù)據(jù),利用多個(gè)維度的數(shù)據(jù)對(duì)菜品的菜系進(jìn)行預(yù)測。
通過這一系列操作,我們發(fā)現(xiàn)在世界各地的諸多菜品之中,最常見的成分有十種,按常見程度從高到低排列為鹽,洋蔥,橄欖油,水,大蒜,糖,蒜瓣兒,黃油,黑胡椒,面粉。根據(jù)成分的含量多少,國別,地區(qū),將世界各地的菜品大致分成了十幾種菜系。
圖9 預(yù)測流程圖
一般的 TF-IDF 算法常??赡芷帘芜@些出現(xiàn)次數(shù)較少的文字。因此我們探索了一些改進(jìn)措施,例如 Mingmin Xu 等提出了一種基于 TF-IDF 的 改進(jìn)算法,命名為信道分配信息,該方法通過原始數(shù)據(jù)的統(tǒng)計(jì)特征來識(shí)別核心詞。羅欣等則基于 TF 改進(jìn)原始算法,該算法以詞頻差異為基礎(chǔ),用信息量來重新計(jì)算TF 值。
上述兩種改進(jìn)措施雖然能夠找到文本一些出現(xiàn)頻率較低的重要詞匯,并獲取該文本的特征向量,但它同時(shí)也增長了計(jì)算時(shí)間,使其變得復(fù)雜。再次查閱相關(guān)資料,我們還可以根據(jù)數(shù)據(jù)自身的特點(diǎn),然后將行業(yè)專有詞典運(yùn)用到原始的TF-IDF特性選擇的過程中,從而在獲取出現(xiàn)頻率較低的關(guān)鍵詞的同時(shí)避免了較大的時(shí)間復(fù)雜度,通過該算法獲取的特征空間結(jié)構(gòu)穩(wěn)定,能夠使其準(zhǔn)確性提高。
模型預(yù)計(jì)改進(jìn)方案:
經(jīng)過查閱資料,分析并對(duì)比,發(fā)現(xiàn)了一個(gè)較為有效的新模型—關(guān)聯(lián)規(guī)則分析模型。Apriori 算法是一種挖掘關(guān)聯(lián)規(guī)則的頻繁項(xiàng)集算法,其核心思想是通過候選集生成和情節(jié)的向下封閉檢測兩個(gè)階段來挖掘頻繁項(xiàng)集。其主要操作流程如圖10所示。
本文的研究工作有以下亮點(diǎn):
(1)基于TF-IDF加權(quán)技術(shù)構(gòu)建相對(duì)穩(wěn)定的支持向量機(jī)算法模型以達(dá)到比較準(zhǔn)確的預(yù)測菜品所分屬的菜系的目的。
(2)使用構(gòu)架好的數(shù)據(jù)模型分析了諸多菜品中最常出現(xiàn)的十種元素。但本文的研究尚存在一些不足,以后的研究中可以加入以下幾種方法:
①可以同時(shí)選取支持向量機(jī)算法模型、隨機(jī)森林算法模型以及邏輯斯蒂多元回歸預(yù)測法進(jìn)行多次預(yù)測,分別得出結(jié)論后投票決定最佳分類;
②在本文中,由于篇幅原因尚未對(duì)比三種模型的預(yù)測結(jié)果。在未來的工作中,可以把三種模型的預(yù)測結(jié)果整合并對(duì)比和分析其優(yōu)劣。留給人們更多的操作空間。
圖10 Apriori模型流程圖