




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