




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
構(gòu)建模型1時(shí)序模式目錄關(guān)聯(lián)規(guī)則2智能推薦3小結(jié)4就餐飲企業(yè)而言,經(jīng)常會(huì)碰到這樣的問題:客戶在餐廳點(diǎn)餐時(shí),面對(duì)菜單中大量的菜品信息,往往無法迅速找到滿意的菜品,既增加了點(diǎn)菜的時(shí)間,也降低了客戶的就餐體驗(yàn)。實(shí)際上,菜品的合理搭配是有規(guī)律可循的:顧客的飲食習(xí)慣、菜品的葷素和口味,有些菜品之間是相互關(guān)聯(lián)的,而有些菜品之間是對(duì)立或競(jìng)爭(zhēng)關(guān)系(負(fù)關(guān)聯(lián))。這些規(guī)律都隱藏在大量的歷史菜單數(shù)據(jù)中,如果能夠通過數(shù)據(jù)挖掘發(fā)現(xiàn)客戶點(diǎn)餐的規(guī)則,就可以快速識(shí)別客戶的口味,當(dāng)他下了某個(gè)菜品的訂單時(shí)推薦相關(guān)聯(lián)的菜品,引導(dǎo)客戶消費(fèi),提高顧客的就餐體驗(yàn)和餐飲企業(yè)的業(yè)績(jī)水平。關(guān)聯(lián)規(guī)則關(guān)聯(lián)規(guī)則分析也成為購物籃分析,最早是為了發(fā)現(xiàn)超市銷售數(shù)據(jù)庫中不同的商品之間的關(guān)聯(lián)關(guān)系。例如一個(gè)超市的經(jīng)理想要更多地了解顧客的購物習(xí)慣,如“哪組商品可能會(huì)在一次購物中同時(shí)購買?”或者“某顧客購買了個(gè)人電腦,那該顧客三個(gè)月后購買數(shù)碼相機(jī)的概率有多大?”他可能會(huì)發(fā)現(xiàn)如果購買了面包的顧客同時(shí)非常有可能會(huì)購買牛奶,這就導(dǎo)出了一條關(guān)聯(lián)規(guī)則“面包=>牛奶”,其中面包稱為規(guī)則的前項(xiàng),而牛奶稱為后項(xiàng)。通過對(duì)面包降低售價(jià)進(jìn)行促銷,而適當(dāng)提高牛奶的售價(jià),關(guān)聯(lián)銷售出的牛奶就有可能增加超市整體的利潤(rùn)。關(guān)聯(lián)規(guī)則分析是數(shù)據(jù)挖掘中最活躍的研究方法之一,目的是在一個(gè)數(shù)據(jù)集中找出各項(xiàng)之間的關(guān)聯(lián)關(guān)系,而這種關(guān)系并沒有在數(shù)據(jù)中直接表示出來。關(guān)聯(lián)規(guī)則常用關(guān)聯(lián)算法如下表:常用關(guān)聯(lián)規(guī)則算法算法名稱算法描述Apriori關(guān)聯(lián)規(guī)則最常用也是最經(jīng)典的挖掘頻繁項(xiàng)集的算法,其核心思想是通過連接產(chǎn)生候選項(xiàng)及其支持度然后通過剪枝生成頻繁項(xiàng)集。FP-Tree針對(duì)Apriori算法的固有的多次掃面事務(wù)數(shù)據(jù)集的缺陷,提出的不產(chǎn)生候選頻繁項(xiàng)集的方法。Apriori和FP-Tree都是尋找頻繁項(xiàng)集的算法。Eclat算法Eclat算法是一種深度優(yōu)先算法,采用垂直數(shù)據(jù)表示形式,在概念格理論的基礎(chǔ)上利用基于前綴的等價(jià)關(guān)系將搜索空間劃分為較小的子空間。灰色關(guān)聯(lián)法分析和確定各因素之間的影響程度或是若干個(gè)子因素(子序列)對(duì)主因素(母序列)的貢獻(xiàn)度而進(jìn)行的一種分析方法。本節(jié)重點(diǎn)詳細(xì)介紹Apriori算法。以超市銷售數(shù)據(jù)為例,提取關(guān)聯(lián)規(guī)則的最大困難在于當(dāng)存在很多商品時(shí),可能的商品的組合(規(guī)則的前項(xiàng)與后項(xiàng))的數(shù)目會(huì)達(dá)到一種令人望而卻步的程度。因而各種關(guān)聯(lián)規(guī)則分析的算法會(huì)從不同方面入手,減小可能的搜索空間的大小,以及減小掃描數(shù)據(jù)的次數(shù)。Apriori算法是最經(jīng)典的挖掘頻繁項(xiàng)集的算法,第一次實(shí)現(xiàn)了在大數(shù)據(jù)集上可行的關(guān)聯(lián)規(guī)則提取,其核心思想是通過連接產(chǎn)生候選項(xiàng)與其支持度然后通過剪枝生成頻繁項(xiàng)集。Apriori算法介紹(1)關(guān)聯(lián)規(guī)則的一般形式項(xiàng)集A、B同時(shí)發(fā)生的概率稱為關(guān)聯(lián)規(guī)則的支持度:項(xiàng)集A發(fā)生,則項(xiàng)集B也同時(shí)發(fā)生的概率為關(guān)聯(lián)規(guī)則的置信度:Apriori算法實(shí)現(xiàn)1、關(guān)聯(lián)規(guī)則和頻繁項(xiàng)集(2)最小支持度和最小置信度最小支持度是用戶或?qū)<叶x的衡量支持度的一個(gè)閾值,表示項(xiàng)目集在統(tǒng)計(jì)意義上的最低重要性;最小置信度是用戶或?qū)<叶x的衡量置信度的一個(gè)閾值,表示關(guān)聯(lián)規(guī)則的最低可靠性。同時(shí)滿足最小支持度閾值和最小置信度閾值的規(guī)則稱作強(qiáng)規(guī)則。(3)項(xiàng)集項(xiàng)集是項(xiàng)的集合。包含k個(gè)項(xiàng)的項(xiàng)集稱為k項(xiàng)集,如集合{牛奶,麥片,糖}是一個(gè)3項(xiàng)集。項(xiàng)集的出現(xiàn)頻率是所有包含項(xiàng)集的事務(wù)計(jì)數(shù),又稱作絕對(duì)支持度或支持度計(jì)數(shù)。如果項(xiàng)集I的相對(duì)支持度滿足預(yù)定義的最小支持度閾值,則I是頻繁項(xiàng)集。頻繁k項(xiàng)集通常記作。Apriori算法實(shí)現(xiàn)(4)支持度計(jì)數(shù)項(xiàng)集A的支持度計(jì)數(shù)是事務(wù)數(shù)據(jù)集中包含項(xiàng)集A的事務(wù)個(gè)數(shù)。已知項(xiàng)集的支持度計(jì)數(shù),則規(guī)則的支持度和置信度很容易從所有事務(wù)計(jì)數(shù)、項(xiàng)集A和項(xiàng)集的支持度計(jì)數(shù)推出:
其中
表示總事務(wù)個(gè)數(shù),
表示計(jì)數(shù)。Apriori算法實(shí)現(xiàn)也就是說,一旦得到所有事務(wù)個(gè)數(shù),A、B和的支持度計(jì)數(shù),就可以導(dǎo)出對(duì)應(yīng)的關(guān)聯(lián)規(guī)則和,并可以檢查該規(guī)則是否是強(qiáng)規(guī)則?;诓似酚唵螖?shù)據(jù),使用Apriori算法對(duì)菜品進(jìn)行關(guān)聯(lián)規(guī)則分析,得到關(guān)聯(lián)規(guī)則結(jié)果如表所示。Apriori算法實(shí)現(xiàn)
supportconfidencee---a0.31.000000e---c0.31.000000c---e---a0.31.000000a---e---c0.31.000000a---b0.50.714286c---a0.50.714286a---c0.50.714286b---a0.50.625000b---c0.50.625000b---c---a0.30.600000a---c---b0.30.600000a---b---c0.30.600000a---c---e0.30.6000002.Apriori算法:使用候選產(chǎn)生頻繁項(xiàng)集Apriori算法的主要思想是找出存在于事務(wù)數(shù)據(jù)集中的最大的頻繁項(xiàng)集,在利用得到的最大頻繁項(xiàng)集與預(yù)先設(shè)定的最小置信度閾值生成強(qiáng)關(guān)聯(lián)規(guī)則。(1)Apriori的性質(zhì)頻繁項(xiàng)集的所有非空子集也必須是頻繁項(xiàng)集。根據(jù)該性質(zhì)可以得出:向不是頻繁項(xiàng)集I的項(xiàng)集中添加事務(wù)A,新的項(xiàng)集一定也不是頻繁項(xiàng)集。Apriori算法實(shí)現(xiàn)Apriori算法的實(shí)現(xiàn)的兩個(gè)過程過程一:找出所有的頻繁項(xiàng)集。在這個(gè)過程中連接步和剪枝步互相融合,最終得到最大頻繁項(xiàng)集。連接步連接步的目的是找到K項(xiàng)集。剪枝步剪枝步緊接著連接步,在產(chǎn)生候選項(xiàng)的過程中起到減小搜索空間的目的。Apriori算法實(shí)現(xiàn)連接步:(1)對(duì)給定的最小支持度閾值,分別對(duì)1項(xiàng)候選集,剔除小于該閾值的的項(xiàng)集得到1項(xiàng)頻繁集;(2)下一步由自身連接產(chǎn)生2項(xiàng)候選集,保留中滿足約束條件的項(xiàng)集得到2項(xiàng)頻繁集,記為;(3)再下一步由與連接產(chǎn)生3項(xiàng)候選集,保留中滿足約束條件的項(xiàng)集得到3項(xiàng)頻繁集,記為。這樣循環(huán)下去,得到最大頻繁項(xiàng)集。Apriori算法實(shí)現(xiàn)剪枝步:剪枝步緊接著連接步,在產(chǎn)生候選項(xiàng)的過程中起到減小搜索空間的目的。由于是與連接產(chǎn)生的,根據(jù)Apriori的性質(zhì)頻繁項(xiàng)集的所有非空子集也必須是頻繁項(xiàng)集,所以不滿足該性質(zhì)的項(xiàng)集將不會(huì)存在于,該過程就是剪枝。Apriori算法實(shí)現(xiàn)Apriori算法的實(shí)現(xiàn)的兩個(gè)過程過程一:找出所有的頻繁項(xiàng)集。過程二:由頻繁項(xiàng)集產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則由過程一可知未超過預(yù)定的最小支持度閾值的項(xiàng)集已被剔除,如果剩下這些規(guī)則又滿足了預(yù)定的最小置信度閾值,那么就挖掘出了強(qiáng)關(guān)聯(lián)規(guī)則。Apriori算法實(shí)現(xiàn)下面將結(jié)合餐飲行業(yè)的實(shí)例來講解Apriori關(guān)聯(lián)規(guī)則算法挖掘的實(shí)現(xiàn)過程。數(shù)據(jù)庫中部分點(diǎn)餐數(shù)據(jù)下表:Apriori算法案例序列時(shí)間訂單號(hào)菜品id菜品名稱12014/8/2110118491健康麥香包22014/8/211018693香煎蔥油餅32014/8/211018705翡翠蒸香茜餃42014/8/211028842菜心粒咸骨粥52014/8/211027794養(yǎng)顏紅棗糕62014/8/211038842金絲燕麥包72014/8/211038693三絲炒河粉……………首先將上表中的事務(wù)數(shù)據(jù)(一種特殊類型的記錄數(shù)據(jù))整理成關(guān)聯(lián)規(guī)則模型所需的數(shù)據(jù)結(jié)構(gòu)。從中抽取10個(gè)點(diǎn)餐訂單作為事務(wù)數(shù)據(jù)集,設(shè)支持度為0.2(支持度計(jì)數(shù)為2),為方便起見將菜品{18491,8842,8693,7794,8705}分別簡(jiǎn)記為{a,b,c,d,e}),如:Apriori算法案例訂單號(hào)菜品id菜品id118491,8693,8705a,c,e28842,7794b,d38842,8693b,c418491,8842,8693,7794a,b,c,d518491,8842a,b68842,8693b,c718491,8842a,b818491,8842,8693,8705a,b,c,e918491,8842,8693a,b,c1018491,8693a,c,e設(shè)支持度為0.2,即支持度計(jì)數(shù)為2,算法過程如下圖:Apriori算法案例過程一:找最大k項(xiàng)頻繁集Apriori算法案例算法簡(jiǎn)單掃描所有的事務(wù),事務(wù)中的每一項(xiàng)都是候選1項(xiàng)集的集合的成員,計(jì)算每一項(xiàng)的支持度。比如對(duì)中各項(xiàng)集的支持度與預(yù)先設(shè)定的最小支持度閾值作比較,保留大于或等于該閾值的項(xiàng),得1項(xiàng)頻繁集;掃面所有事務(wù),與連接得候選2項(xiàng)集,并計(jì)算每一項(xiàng)的支持度。如接下來是剪枝步,由于的每個(gè)子集(即)都是頻繁集,所以沒有項(xiàng)集從中剔除;Apriori算法案例對(duì)中各項(xiàng)集的支持度與預(yù)先設(shè)定的最小支持度閾值作比較,保留大于或等于該閾值的項(xiàng),得2項(xiàng)頻繁集;掃描所有事務(wù),與連接得候選3項(xiàng)集,并計(jì)算每一項(xiàng)的支持度,如:
接下來是剪枝步,與連接的所有項(xiàng)集為:{a,b,c},{a,b,d},{a,b,e},{a,c,d},{a,c,e},{b,c,d},{b,c,e}。根據(jù)Apriori算法,頻繁集的所有非空子集也必須是頻繁集,因?yàn)閧b,d},{b,e},{c,d}不包含在b項(xiàng)頻繁集中,即不是頻繁集,應(yīng)剔除,最后的中的項(xiàng)集只有{a,b,c}和{a,c,e};Apriori算法案例對(duì)中各項(xiàng)集的支持度與預(yù)先設(shè)定的最小支持度閾值作比較,保留大于或等于該閾值的項(xiàng),得3項(xiàng)頻繁集;與連接得候選4項(xiàng)集,易得剪枝后為空集。最后得到最大3項(xiàng)頻繁集{a,b,c}和{a,c,e}。由以上過程可知都是頻繁項(xiàng)集,是最大頻繁項(xiàng)集。過程二:由頻繁集產(chǎn)生關(guān)聯(lián)規(guī)則Apriori算法案例根據(jù)公式:嘗試產(chǎn)生關(guān)聯(lián)規(guī)則。Python程序輸出的關(guān)聯(lián)規(guī)則如下:Apriori算法案例就第一條輸出結(jié)果進(jìn)行解釋:客戶同時(shí)點(diǎn)菜品e和a的概率是50%,點(diǎn)了菜品a,再點(diǎn)菜品b的概率是100%。知道了這些,就可以對(duì)顧客進(jìn)行智能推薦,增加銷量同時(shí)滿足客戶需求。Rule(Support,Confidence)e->a(30%,100%)e->c(30%,100%)c,e->a(30%,100%)a,e->c(30%,100%)a->b(50%,71.4286%)c->a(50%,71.4286%)a->c(50%,71.4286%)c->b(50%,71.4286%)b->a(50%,62.5%)b->c(50%,62.5%)b,c->a(30%,60%)a,c->b(30%,60%)a,b->c(30%,60%)a,c->e(30%,60%)1時(shí)序模式目錄關(guān)聯(lián)規(guī)則2智能推薦3小結(jié)4就餐飲企業(yè)而言,經(jīng)常會(huì)碰到這樣的問題:由于餐飲行業(yè)是生產(chǎn)和銷售同時(shí)進(jìn)行的,因此銷售預(yù)測(cè)對(duì)于餐飲企業(yè)十分必要。如何基于菜品歷史銷售數(shù)據(jù),做好餐飲銷售預(yù)測(cè)?以便減少菜品脫銷現(xiàn)象和避免因備料不足而造成的生產(chǎn)延誤,從而減少菜品生產(chǎn)等待時(shí)間,提供給客戶更優(yōu)質(zhì)的服務(wù),同時(shí)可以減少安全庫存量,做到生產(chǎn)準(zhǔn)時(shí)制,降低物流成本。
餐飲銷售預(yù)測(cè)可以看作是基于時(shí)間序列的短期數(shù)據(jù)預(yù)測(cè),預(yù)測(cè)對(duì)象為具體菜品銷售量。時(shí)序模式常用按時(shí)間順序排列的一組隨機(jī)變量來表示一個(gè)隨機(jī)事件的時(shí)間序列,簡(jiǎn)記為;
用或表示該隨機(jī)序列的個(gè)有序觀察值,稱之為序列長(zhǎng)度為n的觀察值序列。本節(jié)應(yīng)用時(shí)間序列分析的目的就是給定一個(gè)已被觀測(cè)了的時(shí)間序列,預(yù)測(cè)該序列的未來值。時(shí)序模式常用的時(shí)間序列模型見下表:時(shí)間序列模型模型名稱描述平滑法平滑法常用于趨勢(shì)分析和預(yù)測(cè),利用修勻技術(shù),削弱短期隨機(jī)波動(dòng)對(duì)序列的影響,使序列平滑化。根據(jù)所用平滑技術(shù)的不同,可具體分為移動(dòng)平均法和指數(shù)平滑法。趨勢(shì)擬合法趨勢(shì)擬合法把時(shí)間作為自變量,相應(yīng)的序列觀察值作為因變量,建立回歸模型。根據(jù)序列的特征,可具體分為線性擬合和曲線擬合。組合模型時(shí)間序列的變化主要受到長(zhǎng)期趨勢(shì)()、季節(jié)變動(dòng)()、周期變動(dòng)()和不規(guī)則變動(dòng)()這四個(gè)因素的影響。根據(jù)序列的特點(diǎn),可以構(gòu)建加法模型和乘法模型。組合模型加法模型:乘法模型:常用的時(shí)間序列模型見下表:時(shí)間序列模型模型名稱描述AR模型
以前期的序列值為自變量、隨機(jī)變量的取值為因變量建立線性回歸模型。MA模型隨機(jī)變量的取值與以前各期的序列值無關(guān),建立與前期的隨機(jī)擾動(dòng)
的線性回歸模型。ARMA模型
隨機(jī)變量的取值不僅與以前期的序列值有關(guān),還與前期的隨機(jī)擾動(dòng)有關(guān)。常用的時(shí)間序列模型見下表:時(shí)間序列模型模型名稱描述ARIMA模型許多非平穩(wěn)序列差分后會(huì)顯示出平穩(wěn)序列的性質(zhì),稱這個(gè)非平穩(wěn)序列為差分平穩(wěn)序列。對(duì)差分平穩(wěn)序列可以使用ARIMA模型進(jìn)行擬合。ARCH模型ARCH模型能準(zhǔn)確地模擬時(shí)間序列變量的波動(dòng)性的變化,適用于序列具有異方差性并且異方差函數(shù)短期自相關(guān)。GARCH模型及其衍生模型GARCH模型稱為廣義ARCH模型,是ARCH模型的拓展。相比于ARCH模型,GARCH模型及其衍生模型更能反映實(shí)際數(shù)據(jù)中的長(zhǎng)期記憶性、信息的非對(duì)稱性等性質(zhì)。本節(jié)將重點(diǎn)介紹AR模型、MA模型、ARMA模型和ARIMA模型。拿到一個(gè)觀察值序列后,首先要對(duì)它的純隨機(jī)性和平穩(wěn)性進(jìn)行檢驗(yàn),這兩個(gè)重要的檢驗(yàn)稱為序列的預(yù)處理。根據(jù)檢驗(yàn)結(jié)果可以將序列分為不同的類型,對(duì)不同類型的序列會(huì)采取不同的分析方法。對(duì)于純隨機(jī)序列,又叫白噪聲序列,就意味著序列的各項(xiàng)之間沒有任何相關(guān)關(guān)系,序列在進(jìn)行完全無序的隨機(jī)波動(dòng),可以終止對(duì)該序列的分析。對(duì)于平穩(wěn)非白噪聲序列,它的均值和方差是常數(shù),現(xiàn)已有一套非常成熟的平穩(wěn)序列的建模方法。通常是建立一個(gè)線性模型來擬合該序列的發(fā)展,借此提取該序列的有用信息。ARMA模型是最常用的平穩(wěn)序列擬合模型;對(duì)于非平穩(wěn)序列,由于它的均值和方差不穩(wěn)定,處理方法一般是將其轉(zhuǎn)變?yōu)槠椒€(wěn)序列,這樣就可以應(yīng)用有關(guān)平穩(wěn)時(shí)間序列的分析方法,如建立ARMA模型來進(jìn)行相應(yīng)得研究。如果一個(gè)時(shí)間序列經(jīng)差分運(yùn)算后具有平穩(wěn)性,成該序列為差分平穩(wěn)序列,可以使用ARIMA模型進(jìn)行分析。時(shí)間序列的預(yù)處理平穩(wěn)性檢驗(yàn)如果時(shí)間序列在某一常數(shù)附近波動(dòng)且波動(dòng)范圍有限,即有常數(shù)均值和常數(shù)方差,并且相距期的序列變量之間的影響程度是一樣的,則稱為平穩(wěn)序列。對(duì)序列的平穩(wěn)性的檢驗(yàn)有兩種檢驗(yàn)方法,一種是根據(jù)時(shí)序圖和自相關(guān)圖的特征做出判斷的圖檢驗(yàn),該方法操作簡(jiǎn)單、應(yīng)用廣泛,缺點(diǎn)是帶有主觀性;另一種是構(gòu)造檢驗(yàn)統(tǒng)計(jì)量進(jìn)行的方法,目前最常用的方法是單位根檢驗(yàn)。時(shí)間序列的預(yù)處理時(shí)序圖檢驗(yàn)根據(jù)平穩(wěn)時(shí)間序列的均值和方差都為常數(shù)的性質(zhì),平穩(wěn)序列的時(shí)序圖顯示該序列值始終在一個(gè)常數(shù)附近隨機(jī)波動(dòng),而且波動(dòng)的范圍有界;如果有明顯的趨勢(shì)性或者周期性那它通常不是平穩(wěn)序列。自相關(guān)圖檢驗(yàn)平穩(wěn)序列具有短期相關(guān)性,這個(gè)性質(zhì)表明對(duì)平穩(wěn)序列而言通常只有近期的序列值對(duì)現(xiàn)時(shí)值得影響比較明顯,間隔越遠(yuǎn)的過去值對(duì)現(xiàn)時(shí)值得影響越小。隨著延遲期數(shù)的增加,平穩(wěn)序列的自相關(guān)系數(shù)(延遲期)會(huì)比較快地衰減趨向于零,并在零附近隨機(jī)波動(dòng),而非平穩(wěn)序列的自相關(guān)系數(shù)衰減速度比較慢,這就是利用自相關(guān)圖進(jìn)行平穩(wěn)性檢驗(yàn)的標(biāo)準(zhǔn)。單位根檢驗(yàn)單位根檢驗(yàn)是指檢驗(yàn)序列中是否存在單位根,因?yàn)榇嬖趩挝桓褪欠瞧椒€(wěn)時(shí)間序列了。時(shí)間序列的預(yù)處理純隨機(jī)性檢驗(yàn)如果一個(gè)序列式純隨機(jī)序列,那么它的序列值之間應(yīng)該沒有任何關(guān)系,即滿足,這是一種理論上才會(huì)出現(xiàn)的理想狀態(tài),實(shí)際上純隨機(jī)序列的樣本自相關(guān)系數(shù)不會(huì)絕對(duì)為零,但是很接近零,并在零附近隨機(jī)波動(dòng)。純隨機(jī)性檢驗(yàn)也稱白噪聲檢驗(yàn),一般是構(gòu)造檢驗(yàn)統(tǒng)計(jì)量來檢驗(yàn)序列的純隨機(jī)性,常用的檢驗(yàn)統(tǒng)計(jì)量有Q統(tǒng)計(jì)量、LB統(tǒng)計(jì)量,由樣本各延遲期數(shù)的自相關(guān)系數(shù)可以計(jì)算得到檢驗(yàn)統(tǒng)計(jì)量,然后計(jì)算出對(duì)應(yīng)的值,如果值顯著大于顯著性水平,則表示該序列不能拒絕純隨機(jī)的原假設(shè),可以停止對(duì)該序列的分析。時(shí)間序列的預(yù)處理ARMA模型的全稱是自回歸移動(dòng)平均模型,它是目前最常用的擬合平穩(wěn)序列的模型。ARMA模型又可以細(xì)分為AR模型、MA模型和ARMA模型三大類。都可以看作是多元線性回歸模型。下面將分別介紹AR模型、MA模型和ARMA模型三大模型。平穩(wěn)時(shí)間序列分析AR模型具有如下結(jié)構(gòu)的模型稱為階自回歸模型,簡(jiǎn)記為:即在t時(shí)刻的隨機(jī)變量的取值是前期的多元線性回歸,認(rèn)為主要是受過去期的序列值的影響。誤差項(xiàng)是當(dāng)期的隨機(jī)干擾,為零均值白噪聲序列。平穩(wěn)模型的性質(zhì)見下表:平穩(wěn)時(shí)間序列分析統(tǒng)計(jì)量性質(zhì)均值常數(shù)均值方差常數(shù)方差自相關(guān)系數(shù)(ACF)拖尾偏自相關(guān)系數(shù)(PACF)
階截尾MA模型具有如下結(jié)構(gòu)的模型稱為階自回歸模型,簡(jiǎn)記為:即在t時(shí)刻的隨機(jī)變量的取值是前期的隨機(jī)擾動(dòng)的多元線性函數(shù),誤差項(xiàng)是當(dāng)期的隨機(jī)干擾,為零均值白噪聲序列,是序列的均值。認(rèn)為主要是受過去
期的誤差項(xiàng)的影響。平穩(wěn)時(shí)間序列分析平穩(wěn)時(shí)間序列分析統(tǒng)計(jì)量性質(zhì)均值常數(shù)均值方差常數(shù)方差自相關(guān)系數(shù)(ACF)
階截尾偏自相關(guān)系數(shù)(PACF)拖尾平穩(wěn)模型的如下表所示平穩(wěn)時(shí)間序列分析ARMA模型具有如下結(jié)構(gòu)的模型稱為自回歸移動(dòng)平均模型,簡(jiǎn)記為:即在t時(shí)刻的隨機(jī)變量的取值是前期和前期
的多元線性函數(shù),誤差項(xiàng)是當(dāng)期的隨機(jī)干擾,為零均值白噪聲序列。認(rèn)為主要是受過去期的序列值和過去q期的誤差項(xiàng)的共同影響。特別的,當(dāng)時(shí),是模型;當(dāng)時(shí),是模型。平穩(wěn)的性質(zhì)見下表:平穩(wěn)的性質(zhì)如下表所示。平穩(wěn)時(shí)間序列分析統(tǒng)計(jì)量性質(zhì)均值常數(shù)均值方差常數(shù)方差自相關(guān)系數(shù)(ACF)拖尾偏自相關(guān)系數(shù)(PACF)拖尾4. 平穩(wěn)時(shí)間序列建模平穩(wěn)時(shí)間序列分析某個(gè)時(shí)間序列經(jīng)過預(yù)處理,被判定為平穩(wěn)非白噪聲序列,就可以利用ARMA模型進(jìn)行建模。由AR模型、MA模型和ARMA模型的自相關(guān)系數(shù)和偏自相關(guān)系數(shù)的性質(zhì),選擇出合適的模型。AR、MA和ARMA模型自相關(guān)系數(shù)和偏自相關(guān)系數(shù)的性質(zhì)如下:模型自相關(guān)系數(shù)(ACF)偏自相關(guān)系數(shù)(PACF)拖尾階截尾階截尾拖尾
拖尾拖尾平穩(wěn)時(shí)間序列分析平穩(wěn)時(shí)間序列建模步驟如圖所示。平穩(wěn)時(shí)間序列分析平穩(wěn)時(shí)間序列建模步驟:計(jì)算ACF和PACF
先計(jì)算非平穩(wěn)白噪聲序列的自相關(guān)系數(shù)(ACF)和偏自相關(guān)系數(shù)(PACF)
ARMA模型識(shí)別
由AR模型、MA模型和ARMA模型的自相關(guān)系數(shù)和偏自相關(guān)系數(shù)的性質(zhì),選擇出合適的模型。
模型中參數(shù)的估計(jì)及檢驗(yàn)
模型估計(jì)模型優(yōu)化模型應(yīng)用
非平穩(wěn)時(shí)間序列分析前面介紹了對(duì)平穩(wěn)時(shí)間序列的分析方法。實(shí)際上,在自然界中絕大部分序列都是非平穩(wěn)的。因而對(duì)非平穩(wěn)序列的分析更普遍、更重要,創(chuàng)造出來的分析方法也更多。對(duì)非平穩(wěn)時(shí)間序列的分析方法可以分為確定性因素分解的時(shí)序分析和隨機(jī)時(shí)序分析兩大類。確定性因素分解的方法把所有序列的變化都?xì)w結(jié)為四個(gè)因素(長(zhǎng)期趨勢(shì)、季節(jié)變動(dòng)、循環(huán)變動(dòng)和隨機(jī)波動(dòng))的綜合影響??梢越⒓臃P秃统朔P偷取8鶕?jù)時(shí)間序列的不同特點(diǎn),隨機(jī)時(shí)序分析可以建立的模型有ARIMA模型、殘差自回歸模型、季節(jié)模型、異方差模型等。本節(jié)重點(diǎn)介紹ARIMA模型對(duì)非平穩(wěn)時(shí)間序列進(jìn)行建模。非平穩(wěn)時(shí)間序列分析1.差分運(yùn)算階差分相距一期的兩個(gè)序列值之間的減法運(yùn)算稱為1階差分運(yùn)算;步差分相距期的兩個(gè)序列值之間的減法運(yùn)算稱為步差分運(yùn)算。非平穩(wěn)時(shí)間序列分析2.ARIMA模型差分運(yùn)算具有強(qiáng)大的確定性信息提取能力,許多非平穩(wěn)序列差分后會(huì)顯示出平穩(wěn)序列的性質(zhì),這時(shí)稱這個(gè)非平穩(wěn)序列為差分平穩(wěn)序列。對(duì)差分平穩(wěn)序列可以使用ARMA模型進(jìn)行擬合。ARIMA模型的實(shí)質(zhì)就是差分運(yùn)算與ARMA模型的組合,掌握了ARMA模型的建模方法和步驟以后,對(duì)序列建立ARIMA模型是比較簡(jiǎn)單的。
非平穩(wěn)時(shí)間序列分析差分平穩(wěn)時(shí)間序列的ARIMA模型建模步驟如下:
非平穩(wěn)時(shí)間序列分析下面應(yīng)用以上的理論知識(shí),對(duì)2015/1/1到2015/2/6某餐廳的銷售數(shù)據(jù)進(jìn)行建模。部分?jǐn)?shù)據(jù)如下表:日期銷量2015/1/130232015/1/230392015/1/330562015/1/431382015/1/531882015/1/632242015/1/732262015/1/830292015/1/928592015/1/102870......非平穩(wěn)時(shí)間序列分析(1)檢驗(yàn)序列的平穩(wěn)性左上的時(shí)序圖顯示該序列具有明顯的單調(diào)遞增趨勢(shì),可以判斷為是非平穩(wěn)序列;右上的自相關(guān)圖顯示自相關(guān)系數(shù)長(zhǎng)期大于零,說明序列間具有很強(qiáng)的長(zhǎng)期相關(guān)性;結(jié)論:銷售序列是非平穩(wěn)序列非平穩(wěn)時(shí)間序列分析單位根檢驗(yàn)統(tǒng)計(jì)量對(duì)應(yīng)的p值顯著大于0.05。最終將該序列判斷為非平穩(wěn)序列(非平穩(wěn)序列一定不是白噪聲序列)。adfcValuep值1%5%10%1.8138-3.7112-2.9812-2.63010.9984非平穩(wěn)時(shí)間序列分析(2)對(duì)原始序列進(jìn)行一階差分,并進(jìn)行平穩(wěn)性和白噪聲檢驗(yàn)對(duì)一階差分后的序列再次做平穩(wěn)性判斷adfcValuep值1%5%10%-3.1561-3.6327-2.9485-2.61300.0227結(jié)果顯示,一階差分之后的序列的時(shí)序圖在均值附近比較平穩(wěn)的波動(dòng)、自相關(guān)圖有很強(qiáng)的短期相關(guān)性、單位根檢驗(yàn)p值小于0.05;所以一階差分之后的序列是平穩(wěn)序列。非平穩(wěn)時(shí)間序列分析對(duì)一階差分后的序列做白噪聲檢驗(yàn)輸出的p值遠(yuǎn)小于0.05,所以一階差分之后的序列是平穩(wěn)非白噪聲序列。statp值11.3040.007734
非平穩(wěn)時(shí)間序列分析(3)對(duì)一階差分之后的平穩(wěn)非白噪聲序列擬合ARMA模型下面進(jìn)行模型定階模型定階就是確定p和q。第一種是人為識(shí)別的方法:根據(jù)ARMA模型識(shí)別原則進(jìn)行模型定階。一階差分后自相關(guān)圖顯示出1階截尾,偏自相關(guān)圖(如上)顯示出拖尾性,所以可以考慮用MA(1)模型擬合1階差分后的序列,即對(duì)原始序列建立ARIMA(0,1,1)模型。非平穩(wěn)時(shí)間序列分析第二種方法:相對(duì)最優(yōu)模型識(shí)別。計(jì)算ARMA(p,q)當(dāng)p和q均小于等于5的所有組合的BIC信息量,取其中BIC信息量達(dá)到最小的模型階數(shù)。計(jì)算完成BIC矩陣是:432.068472422.510082426.088911426.595507423.628276426.073601NaNNaN426.774824427.395787430.709154NaN430.317524NaNNaN436.478109非平穩(wěn)時(shí)間序列分析p值為0、q值為1時(shí),最小BIC值為:422.510082。即ARIMA模型的p、q定階完成??梢杂肁R(1)模型擬合一階差分后的序列,即對(duì)原始序列建立ARIMA(1,1,0)模型。雖然兩種方法建立的模型是不一樣的,但是可以檢驗(yàn)兩個(gè)模型均通過了檢驗(yàn)。實(shí)際上對(duì)原始序列建立ARIMA(1,1,1)模型也是通過檢驗(yàn)的。說明了模型具有非唯一性,進(jìn)行模型選擇優(yōu)化是有必要的。非平穩(wěn)時(shí)間序列分析下面對(duì)合一階差分后的序列擬合AR(1)模型進(jìn)行分析。針對(duì)模型分析,可通過生成ARIMA模型報(bào)告。以餐廳銷售數(shù)據(jù)為例,對(duì)原始序列建立ARIMA(0,1,1)模型,生成模型報(bào)告,ParameterCoef.Std.Err.tconst49.95620.1392.4806ma.L1.D.銷量0.6710.16484.0712
非平穩(wěn)時(shí)間序列分析(4)ARIMA模型預(yù)測(cè)應(yīng)用ARIMA(0,1,1)對(duì)2015/1/1到2015/2/6某餐廳的銷售數(shù)據(jù)做為期5天的預(yù)測(cè),結(jié)果如下:需要說明的是,利用模型向前預(yù)測(cè)的時(shí)期越長(zhǎng),預(yù)測(cè)誤差將會(huì)越來越大,這是時(shí)間預(yù)測(cè)只能進(jìn)行短期預(yù)測(cè)的典型特點(diǎn)。
2015/2/72015/2/82015/2/92015/2/102015/2/11預(yù)測(cè)結(jié)果4874.04923.94973.95023.85073.8標(biāo)準(zhǔn)誤差73.1142.3187.5223.8254.50置信區(qū)間[4730.720914,5017.211762][4644.966690,5202.877481][4606.300668,5341.455000][4585.188128,5462.479036][4574.082720,5573.495940]常用Python時(shí)序模式算法Python實(shí)現(xiàn)時(shí)序模式的主要庫是StatsModels(當(dāng)然,如果Pandas能做的,就可以利用Pandas先做),算法主要是ARIMA模型,在使用該模型進(jìn)行建模時(shí),需要進(jìn)行一系列判別操作,主要包含平穩(wěn)性檢驗(yàn)、白噪聲檢驗(yàn)、是否差分、AIC和BIC指標(biāo)值、模型定階,最后再做預(yù)測(cè)。與其相關(guān)的函數(shù)如下表所示。常用Python時(shí)序模式算法函數(shù)名函數(shù)功能所屬工具箱acf()計(jì)算自相關(guān)系數(shù)statsmodels.tsa.stattoolsplot_acf()畫自相關(guān)系數(shù)圖statsmodels.graphics.tsaplotspacf()計(jì)算偏相關(guān)系數(shù)statsmodels.tsa.stattoolsplot_pacf()畫偏相關(guān)系數(shù)圖statsmodels.graphics.tsaplotsadfuller()對(duì)觀測(cè)值序列進(jìn)行單位根檢驗(yàn)statsmodels.tsa.stattoolsdiff()對(duì)觀測(cè)值序列進(jìn)行差分計(jì)算Pandas對(duì)象自帶的方法ARIMA()創(chuàng)建一個(gè)ARIMA時(shí)序模型statsmodels.tsa.arima_modelsummary()或summaty2給出一份ARIMA模型的報(bào)告ARIMA模型對(duì)象自帶的方法aic/bic/hqic計(jì)算ARIMA模型的AIC/BIC/HQIC指標(biāo)值A(chǔ)RIMA模型對(duì)象自帶的變量常用Python時(shí)序模式算法函數(shù)名函數(shù)功能所屬工具箱forecast()應(yīng)用構(gòu)建的時(shí)序模型進(jìn)行預(yù)測(cè)ARIMA模型對(duì)象自帶的方法acorr_ljungbox()Ljung-Box檢驗(yàn),檢驗(yàn)是否為白噪聲statsmodels.stats.diagnostic1.acf()功能:計(jì)算自相關(guān)系數(shù)使用格式:autocorr=acf(data,unbiased=False,nlags=40,qstat=False,fft=False,alpha=None)輸入?yún)?shù)data為觀測(cè)值序列(即為時(shí)間序列,可以是DataFrame或Series),返回參數(shù)autocorr為觀測(cè)值序列自相關(guān)函數(shù)。其余為可選參數(shù),如qstat=True時(shí)同時(shí)返回Q統(tǒng)計(jì)量和對(duì)應(yīng)p值。常用Python時(shí)序模式算法2.plot_acf()功能:畫自相關(guān)系數(shù)圖使用格式:p=plot_acf(data)返回一個(gè)Matplotlib對(duì)象,可以用.show()方法顯示圖像。3.pacf()/plot_pacf()功能:計(jì)算偏相關(guān)系數(shù)/畫偏相關(guān)系數(shù)圖使用格式:使用跟acf()/plot_acf()類似,不再贅述。常用Python時(shí)序模式算法4.adfuller()功能:計(jì)對(duì)觀測(cè)值序列進(jìn)行單位根檢驗(yàn)(ADFtest)使用格式:h=adffuller(Series,maxlag=None,regression='c',autolag='AIC',store=False,regresults=False)輸入?yún)?shù)Series為一維觀測(cè)值序列,返回值依次為adf、pvalue、usedlag、nobs、criticalvalues、icbest、regresults、resstore。5.diff()功能:對(duì)觀測(cè)值序列進(jìn)行差分計(jì)算使用格式:D.diff()D為Pandas的DataFrame或Series。常用Python時(shí)序模式算法6.arima功能:設(shè)置時(shí)序模式的建模參數(shù),創(chuàng)建ARIMA時(shí)序模型。使用格式:arima=ARIMA(data,(p,1,q)).fit()data參數(shù)為輸入的時(shí)間序列,p、q為對(duì)應(yīng)的階,d為差分次數(shù)。7.summary()/summary2()功能:生成已有模型的報(bào)告使用格式:arima.summary()/arima.summary2()其中arima為已經(jīng)建立好的ARIMA模型,返回一份格式化的模型報(bào)告,包含模型的系數(shù)、標(biāo)準(zhǔn)誤差、p值、AIC、BIC等詳細(xì)指標(biāo)。常用Python時(shí)序模式算法8.aic/bic/hqic功能:計(jì)算ARIMA模型的AIC、BIC、HQIC指標(biāo)值使用格式:arima.aic/arima.bic/arima.hqic其中arima為已經(jīng)建立好的ARIMA模型,返回值是Model時(shí)序模型得到的AIC、BIC、HQIC指標(biāo)值。9.forecast()功能:用得到的時(shí)序模型進(jìn)行預(yù)測(cè)使用格式:a,b,c=arima.forecast(num)輸入?yún)?shù)num為要預(yù)測(cè)的天數(shù),arima為已經(jīng)建立好的ARIMA模型。a為返回的預(yù)測(cè)值,b為預(yù)測(cè)的誤差,c為預(yù)測(cè)置信區(qū)間。常用Python時(shí)序模式算法10.acorr_ljungbox()功能:檢測(cè)是否為白噪聲序列使用格式:acorr_ljungbox(data,lags=1)輸入?yún)?shù)data為時(shí)間序列數(shù)據(jù),lags為滯后數(shù),返回統(tǒng)計(jì)量和p
值。1時(shí)序模式目錄關(guān)聯(lián)規(guī)則2智能推薦3小結(jié)4當(dāng)用戶沒有明確的需求時(shí),面對(duì)數(shù)不勝數(shù)的電影,將會(huì)不知所措,不知道選擇哪一部。此時(shí),用戶遇到了信息過載的問題,需要怎么樣才能為用戶選擇提供一些參考意見呢?電影遇到的這個(gè)問題,可以通過智能推薦解決。電影智能推薦就電影企業(yè)而言,經(jīng)常會(huì)碰到如下問題。常見的智能推薦算法有基于關(guān)聯(lián)規(guī)則的智能推薦和基于協(xié)同過濾的智能推薦兩種。其中,基于協(xié)同過濾的智能推薦可分為基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾?;谟脩舻膮f(xié)同過濾的基本思想相當(dāng)簡(jiǎn)單,基于用戶對(duì)物品的偏好找到相鄰鄰居用戶,然后將鄰居用戶喜歡的推薦給當(dāng)前用戶。計(jì)算上,就是將一個(gè)用戶對(duì)所有物品的偏好作為一個(gè)向量來計(jì)算用戶之間的相似度,找到K鄰居后,根據(jù)鄰居的相似度權(quán)重以及他們對(duì)物品的偏好,預(yù)測(cè)當(dāng)前用戶沒有偏好的未涉及物品,計(jì)算得到一個(gè)排序的物品列表作為推薦。圖給出了一個(gè)例子,對(duì)于用戶A,根據(jù)用戶的歷史偏好,這里只計(jì)算得到一個(gè)鄰居-用戶C,然后將用戶C喜歡的物品D推薦給用戶A。常見智能推薦算法基于物品的協(xié)同過濾的原理和基于用戶的協(xié)同過濾類似,只是在計(jì)算鄰居時(shí)采用物品本身,而不是從用戶的角度,即基于用戶對(duì)物品的偏好找到相似的物品,然后根據(jù)用戶的歷史偏好,推薦相似的物品給他。從計(jì)算的角度看,就是將所有用戶對(duì)某個(gè)物品的偏好作為一個(gè)向量來計(jì)算物品之間的相似度,得到物品的相似物品后,根據(jù)用戶歷史的偏好預(yù)測(cè)當(dāng)前用戶還沒有表示偏好的物品,計(jì)算得到一個(gè)排序的物品列表作為推薦。對(duì)于物品A,根據(jù)所有用戶的歷史偏好,喜歡物品A的用戶都喜歡物品C,得出物品A和物品C比較相似,而用戶C喜歡物品A,那么可以推斷出用戶C可能也喜歡物品C,如圖所示。常見智能推薦算法評(píng)價(jià)一個(gè)推薦系統(tǒng)的方法有很多,總體可分為3個(gè)方面,即離線實(shí)驗(yàn)、用戶調(diào)查和在線實(shí)驗(yàn)。由于用戶調(diào)查和在線實(shí)驗(yàn)的要求較高,目前大多數(shù)的推薦系統(tǒng)研究采用的是先通過離線實(shí)驗(yàn)驗(yàn)證當(dāng)前的推薦算法在離線指標(biāo)上是否優(yōu)于現(xiàn)有算法,然后通過用戶調(diào)查確定當(dāng)前算法的滿意度不低于現(xiàn)有算法。這兩項(xiàng)都通過后,最后才進(jìn)行在線測(cè)試查看測(cè)試者所關(guān)注的當(dāng)前算法的指標(biāo)是否優(yōu)于現(xiàn)有算法。智能推薦算法評(píng)價(jià)離線實(shí)驗(yàn)主要基于數(shù)據(jù)集,不需要實(shí)際的系統(tǒng)做支撐,因此測(cè)試成本更為低廉,流程也更為簡(jiǎn)便。離線實(shí)驗(yàn)的評(píng)價(jià)步驟如下。通過業(yè)務(wù)系統(tǒng)獲取用戶行為數(shù)據(jù),生成標(biāo)準(zhǔn)數(shù)據(jù)集。將數(shù)據(jù)集進(jìn)行劃分,劃分為訓(xùn)練集和測(cè)試集。在訓(xùn)練集上進(jìn)行推薦模型的訓(xùn)練,在測(cè)試集上進(jìn)行預(yù)測(cè)。通過離線評(píng)價(jià)指標(biāo)評(píng)價(jià)模型在測(cè)試集上的預(yù)測(cè)結(jié)果。離線實(shí)驗(yàn)的評(píng)價(jià)指標(biāo)可分為準(zhǔn)確性指標(biāo)和非準(zhǔn)確性指標(biāo)兩種。智能推薦算法評(píng)價(jià)準(zhǔn)確性指標(biāo)是評(píng)價(jià)推薦系統(tǒng)預(yù)測(cè)的準(zhǔn)確性的指標(biāo),是推薦系統(tǒng)中最重要的指標(biāo)。按照推薦的結(jié)果類型適用的準(zhǔn)確性指標(biāo)也不一樣。1.準(zhǔn)確性指標(biāo)智能推薦算法評(píng)價(jià)通常網(wǎng)站給用戶進(jìn)行推薦時(shí),提供的是一個(gè)個(gè)個(gè)性化的推薦列表,也叫做TopN推薦。TopN推薦最常用的準(zhǔn)確性指標(biāo)是準(zhǔn)確率、召回率和
值。準(zhǔn)確率表示推薦列表中用戶喜歡的物品所占的比例。單個(gè)用戶u的推薦準(zhǔn)確率定義如式所示。
在式中,表示用戶u的推薦列表,表示測(cè)試集中用戶u喜歡的物品。整個(gè)推薦系統(tǒng)的準(zhǔn)確率定義如式所示。智能推薦算法評(píng)價(jià)(1)推薦列表在式中,n表示測(cè)試集中用戶的數(shù)量,U表示測(cè)試集中的用戶集合。召回率表示測(cè)試集中用戶喜歡的物品出現(xiàn)在推薦列表中的比例。單個(gè)用戶u的推薦召回率定義如式所示。整個(gè)推薦系統(tǒng)的召回率定義如式所示。
值(F1score)是綜合了準(zhǔn)確率(p)和召回率(R)的評(píng)價(jià)方法,F(xiàn)1值取值越高表明推薦算法越有效,值定義如式所示。
智能推薦算法評(píng)價(jià)評(píng)分預(yù)測(cè)為預(yù)測(cè)一個(gè)用戶對(duì)推薦的物品的評(píng)分。評(píng)分預(yù)測(cè)的預(yù)測(cè)準(zhǔn)確度通過均方根誤差(RMSE)和平均絕對(duì)誤差(MAE)進(jìn)行評(píng)價(jià)。對(duì)于測(cè)試集T中的用戶u和物品i,定義用戶u對(duì)物品i的實(shí)際評(píng)分為,推薦算法的預(yù)測(cè)評(píng)分為,則RMSE的定義如式所示。
MAE使用絕對(duì)值計(jì)算,定義如式所示。智能推薦算法評(píng)價(jià)(2)評(píng)分預(yù)測(cè)除了推薦準(zhǔn)確性指標(biāo)外,還有許多其他指標(biāo)能評(píng)價(jià)一個(gè)推薦算法的性能,如多樣性、新穎性、驚喜度和覆蓋率等。智能推薦算法評(píng)價(jià)2.非準(zhǔn)確性指標(biāo)用戶的興趣是廣泛而多樣的,所以推薦列表需要盡可能多的覆蓋到用戶的興趣領(lǐng)域。多樣性越高的推薦系統(tǒng),用戶訪問時(shí)找到喜好的物品的概率就更高。推薦列表中物品兩兩之間的不相似性即為推薦列表的多樣性,將物品i和j之間的相似度定義為,則用戶u的推薦列表的多樣性定義如式所示。推薦系統(tǒng)的整體多樣性可以定義為全部用戶的推薦列表多樣性的平均值,如式所示。智能推薦算法評(píng)價(jià)(1)多樣性當(dāng)推薦系統(tǒng)推薦給用戶的物品是他們未曾聽說過的物品,那么這次推薦對(duì)于用戶來說就是一次新穎的推薦。評(píng)價(jià)新穎度的一個(gè)簡(jiǎn)單的方法是使用推薦結(jié)果的平均流行度。因?yàn)橥扑]物品的流行度越低,物品越不熱門,就越可能會(huì)讓用戶覺得新穎。若推薦結(jié)果中物品的平均流行度較低,那么推薦結(jié)果就可能擁有較高的新穎性。智能推薦算法評(píng)價(jià)(2)新穎性定義物品i的流行度為p(i),則用戶u的推薦列表的新穎性定義如式所示。
推薦系統(tǒng)的整體新穎性可以定義為全部用戶n的推薦列表新穎性的平均值,如式所示。
智能推薦算法評(píng)價(jià)驚喜度與新穎性的區(qū)別在于,新穎性指的是推薦給用戶的物品是他們沒有聽說過的物品,而驚喜度是指推薦給用戶的物品與用戶歷史記錄中感興趣的物品不相似,但是用戶卻又覺得滿意。目前尚未有一個(gè)公認(rèn)的驚喜度指標(biāo)的定義方式,此處只給出一種定性的度量方式。智能推薦算法評(píng)價(jià)(3)驚喜度覆蓋率用于描述一個(gè)推薦系統(tǒng)對(duì)于物品長(zhǎng)尾的挖掘能力。覆蓋率最常見的定義為推薦系統(tǒng)推薦出的物品列表占總物品集合的比例。定義用戶u的推薦列表為,則推薦系統(tǒng)的覆蓋率定義如式所示,其中n表示全部用戶數(shù)。智能推薦算法評(píng)價(jià)(4)覆蓋率基于用戶的協(xié)同過濾基于物品的協(xié)同過濾Python智能推薦算法實(shí)現(xiàn)Python中智能推薦算法的實(shí)現(xiàn)主要介紹基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾兩種。(1)算法過程實(shí)現(xiàn)基于用戶的協(xié)同過濾算法第一個(gè)重要的步驟就是計(jì)算用戶之間的相似度。而計(jì)算相似度,建立相關(guān)系數(shù)矩陣目前主要分為以下幾種方法。皮爾遜相關(guān)系數(shù)皮爾遜相關(guān)系數(shù)一般用于計(jì)算兩個(gè)定距變量間聯(lián)系的緊密程度,它的取值在[-1,1]區(qū)間內(nèi)。皮爾森相關(guān)系數(shù)等于兩個(gè)變量的協(xié)方差除于兩個(gè)變量的標(biāo)準(zhǔn)差,計(jì)算公式如式所示。由于皮爾遜相關(guān)系數(shù)描述的是兩組數(shù)據(jù)變化移動(dòng)的趨勢(shì),所以在基于用戶的協(xié)同過濾系統(tǒng)中,經(jīng)常使用。描述用戶購買或評(píng)分變化的趨勢(shì),若趨勢(shì)相近則皮爾遜系數(shù)趨近于1,即相似的用戶。Python智能推薦算法實(shí)現(xiàn)1.基于用戶的協(xié)同過濾基于歐幾里德距離的相似度余弦相似度歐幾里德距離計(jì)算相似度是所有相似度計(jì)算里面最簡(jiǎn)單、最易理解的方法。它以經(jīng)過人們一致評(píng)價(jià)的物品為坐標(biāo)軸,然后將參與評(píng)價(jià)的人繪制到坐標(biāo)系上,并計(jì)算他們彼此之間的直線距離。計(jì)算得到的歐幾里德距離是一個(gè)大于0的數(shù),為了使其更能體現(xiàn)用戶之間的相似度,可以把它規(guī)約到(0,1]區(qū)間內(nèi),最終得到的計(jì)算公式如式所示。只要至少有一個(gè)共同評(píng)分項(xiàng),就能用歐幾里德距離計(jì)算相似度;如果沒有共同評(píng)分項(xiàng),那么歐幾里德距離也就失去了作用,這也意味著這兩個(gè)用戶根本不相似。Python智能推薦算法實(shí)現(xiàn)余弦相似度余弦相似度用向量空間中兩個(gè)向量夾角的余弦值作為衡量?jī)蓚€(gè)個(gè)體間差異的大小,如圖所示。余弦相似度更加注重兩個(gè)向量在方向上的差異,而非距離或長(zhǎng)度上,計(jì)算公式如式所示。Python智能推薦算法實(shí)現(xiàn)由圖可以看出,距離度量衡量的是空間各點(diǎn)間的絕對(duì)距離,跟各個(gè)點(diǎn)所在的位置坐標(biāo)(即個(gè)體特征維度的數(shù)值)直接相關(guān);而余弦相似度衡量的是空間向量的夾角,更加的是體現(xiàn)在方向上的差異,而不是位置。如果保持X點(diǎn)的位置不變,Y點(diǎn)朝原方向遠(yuǎn)離坐標(biāo)軸原點(diǎn),那么這個(gè)時(shí)候余弦相似度
是保持不變的,因?yàn)閵A角不變,而X、Y兩點(diǎn)的距離顯然在發(fā)生改變,這就是歐氏距離和余弦相似度的不同之處。Python智能推薦算法實(shí)現(xiàn)預(yù)測(cè)評(píng)分基于用戶的協(xié)同過濾算法,另一個(gè)重要的步驟就是計(jì)算用戶u對(duì)未評(píng)分商品的預(yù)測(cè)分值。首先根據(jù)上一步中的相似度計(jì)算,尋找用戶u的鄰居集,其中N表示鄰居集,U表示用戶集。然后,結(jié)合用戶評(píng)分?jǐn)?shù)據(jù)集,預(yù)測(cè)用戶u對(duì)項(xiàng)i的評(píng)分,計(jì)算公式如式所示。其中,
表示用戶u和用戶u’的相似度。最后,基于對(duì)未評(píng)分商品的預(yù)測(cè)分值排序,得到推薦商品列表。Python智能推薦算法實(shí)現(xiàn)通過個(gè)性化的電影推薦的例子演示基于用戶的協(xié)同過濾算法在Python中的實(shí)現(xiàn)。現(xiàn)在影視已經(jīng)成為大眾喜愛的休閑娛樂的方式之一,合理的個(gè)性化電影推薦一方面能夠促進(jìn)電影行業(yè)的發(fā)展,另一方面也可以讓大眾數(shù)量眾多的電影中迅速得到自己想要的電影,從而做到兩全齊美。甚至更近一步,可以明確市場(chǎng)走向,對(duì)后續(xù)電影的類型導(dǎo)向等起到重要作用。Python智能推薦算法實(shí)現(xiàn)(2)基于用戶的個(gè)性化的電影推薦(1)算法過程根據(jù)協(xié)同過濾的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 平?jīng)雎殬I(yè)技術(shù)學(xué)院《影視美術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 衡陽師范學(xué)院南岳學(xué)院《食品分析(含儀器分析)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南陽職業(yè)學(xué)院《熱力學(xué)與統(tǒng)計(jì)物理》2023-2024學(xué)年第一學(xué)期期末試卷
- 勞務(wù)分包擔(dān)保合同
- 委托技術(shù)服務(wù)合同
- 委托設(shè)備維修合同
- 廢舊物資回收承包合同
- 《對(duì)不良誘惑說不》學(xué)會(huì)拒絕課件-3
- 20253月合同明確的樓宇自控系統(tǒng)第三方接入標(biāo)準(zhǔn)
- 店房租賃合同范本
- 2022-2023學(xué)年上海市徐匯區(qū)世界外國(guó)語中學(xué)八年級(jí)(下)期中物理試卷
- 控制器參數(shù)確定方法
- 2023年陜西西安經(jīng)開區(qū)管委會(huì)招聘160人(共500題含答案解析)筆試歷年難、易錯(cuò)考點(diǎn)試題含答案附詳解
- 2023屆廣東省普通高中數(shù)學(xué)學(xué)業(yè)水平考試試卷及答案
- 釣魚中各種氨基酸誘食劑說明書及使用方法
- 幼升小上實(shí)機(jī)考題匯總
- 化工原理課程設(shè)計(jì)水吸收氨氣填料塔設(shè)計(jì)
- Excel水力計(jì)算展示-棱柱體渠道水面線計(jì)算演示
- 2013年廣東省中考語文試題及答案
- UPS蓄電池安裝施工方案(完整版無需過多修改)
- 數(shù)學(xué)建模案例分析-線性代數(shù)建模案例(20例)65959
評(píng)論
0/150
提交評(píng)論