本發(fā)明涉及基于單項(xiàng)缺失的負(fù)序列模式在商品推薦中的應(yīng)用,屬于負(fù)序列模式的應(yīng)用
技術(shù)領(lǐng)域:
。
背景技術(shù):
:隨著互聯(lián)網(wǎng)的迅猛發(fā)展,網(wǎng)絡(luò)購物從大型城市到中小型城市再到鄉(xiāng)村已經(jīng)逐漸代替了傳統(tǒng)的購物形式成為購物的主流形式。網(wǎng)絡(luò)購物是建立在互信互利的基礎(chǔ)之上的,克服地域與時間的障礙,為消費(fèi)者提供豐富的商品信息。消費(fèi)者可以通過瀏覽多家商鋪,多個網(wǎng)站,甚至可以海淘獲取更有價格競爭力的,個性化的,定制化的商品。這樣給消費(fèi)者帶來了更大的購物便利,更多的商品選擇,購物中占有巨大的優(yōu)勢。因此,近幾年網(wǎng)絡(luò)購物呈爆發(fā)式增長,每年都以幾何數(shù)級增長,與此同時很多大型的電子商務(wù)網(wǎng)站,如Amazon、阿里巴巴旗下的淘寶和天貓商城、京東等都積累了大量的客戶交易數(shù)據(jù)。如何充分利用這些數(shù)據(jù)對客戶購買行為進(jìn)行有效的分析、組織利用,如何了解到客戶盡可能多的愛好和價值取向,以優(yōu)化網(wǎng)站設(shè)計,為客戶提供個性化服務(wù),成為電子商務(wù)發(fā)展迫切要解決的問題。與傳統(tǒng)的經(jīng)營方式相比,網(wǎng)絡(luò)購物的產(chǎn)品信息量大,數(shù)量、種類豐富,選擇范圍廣。在傳統(tǒng)購物環(huán)境下,消費(fèi)者獲取商品信息的來源主要靠生活積累,搜集過程較長,得到的信息比較片面。在網(wǎng)絡(luò)購物環(huán)境下,消費(fèi)者就可以集中時間搜集、查找大量的有關(guān)商品的信息。網(wǎng)上商品種類豐富,有些商品消費(fèi)者想要購買而傳統(tǒng)商鋪不容易找到,就可以通過網(wǎng)絡(luò)商店方便的查詢購買,補(bǔ)充了傳統(tǒng)商店某些產(chǎn)品的短缺。但是目前的電子商務(wù)商家通常不能直觀的去了解客戶,獲取的相關(guān)的數(shù)據(jù)有限(比如用戶的注冊信息,購買記錄等)。通過對大量的客戶購買記錄進(jìn)行分析和挖掘,發(fā)現(xiàn)客戶的頻繁訪問序列模式,針對不同的客戶屬性和網(wǎng)上購物步驟,采用不同的商品推薦形式,適時的向客戶推薦恰當(dāng)?shù)纳唐?,并?yōu)化電子商務(wù)網(wǎng)站商品的擺放位置,可以有效的增加客戶的交易機(jī)會,將網(wǎng)站瀏覽者轉(zhuǎn)變?yōu)橘徺I者,提高交叉銷售能力,提高客戶的忠誠度,以及提高購物網(wǎng)站的服務(wù)質(zhì)量和經(jīng)濟(jì)效益。序列模式不但可以分析客戶交易商品之間的關(guān)系規(guī)律,還可以分析交易之間的關(guān)系規(guī)律。使得售貨方不但能夠根據(jù)客戶交易商品的情況給客戶具有針對性的推薦,而且能夠根據(jù)當(dāng)前的商品買賣情況來預(yù)測以后的商品買賣情況,從而能夠更好的安排商品的擺放。它的主要目的是研究商品購買的先后關(guān)系,找出其中的規(guī)律,即不僅需要知道商品是否被購買,而且需要確定該商品與其它商品購買的先后順序,例如,在線購買DVD的一個典型的順序是購買“星球大戰(zhàn)”,之后很有可能繼續(xù)購買“帝國反擊戰(zhàn)”,再是購買“杰達(dá)武士歸來”。因此序列模式能夠發(fā)現(xiàn)數(shù)據(jù)庫中某一段時間內(nèi)的頻繁序列,即在這個時間段內(nèi)哪些商品會被客戶購買的比較多,多或少的標(biāo)準(zhǔn)是由最小支持度來決定的。每個序列是按照交易的時間排列的一個集合,可以設(shè)置最小支持度來挖掘滿足不同頻繁程度的序列。但在應(yīng)用序列模式分析客戶購買行為,解決個性化商品推薦問題時,他們僅考慮了已發(fā)生的事件,也稱為正序列模式(PositiveSequentialPattern,PSP)挖掘。但是隨著研究的深入,研究人員發(fā)現(xiàn)不發(fā)生事件中隱含著大量的有用信息,而這些信息在單純的正序列模式挖掘中是根本得不到的。于是研究人員又將不發(fā)生事件考慮在內(nèi),提出了負(fù)序列模式挖掘。負(fù)序列模式(NegativeSequentialPattern,NSP)挖掘不僅考慮了已經(jīng)發(fā)生的事件,還關(guān)注于未發(fā)生事件,它能夠更深入地分析和理解數(shù)據(jù)中的潛在含義。例如,a代表面包,b代表咖啡,c代表茶,表示一個客戶購買序列模式,該模式說明在某一段時間內(nèi),該客戶在購買了商品a后,在沒有購買商品b的情況下,購買了商品c而不是其它的商品。如今負(fù)序列模式的價值越來越被人們認(rèn)可,在智能檢測系統(tǒng)以及許多信息應(yīng)用領(lǐng)域發(fā)揮著不可替代的作用,尤其是將客戶的購買行為分析應(yīng)用于商品推薦上,更是對商品成功交易了以及交易金額起到了巨大的推動作用。電子商務(wù)平臺中的網(wǎng)站用戶購買訂單數(shù)據(jù)為挖掘的數(shù)據(jù)源。以5個客戶在2個月內(nèi)的交易為例,如表1是由客戶ID和交易時間為關(guān)鍵字所排序的事務(wù)數(shù)據(jù)庫。一個事務(wù)數(shù)據(jù)庫,一個事務(wù)代表一筆交易,一個單項(xiàng)代表交易的商品,單項(xiàng)屬性中的字母記錄的是商品ID。表1進(jìn)行數(shù)據(jù)預(yù)處理,將表1的事務(wù)數(shù)據(jù)庫整理成表2的序列數(shù)據(jù)庫。表2客戶ID客戶購買序列1<{c}{i}>2<{a,b}{c}{a,d,f,g}>3<{c,e,g,h}>4<{c}{c,d,g,h}{i}>5<{i}>一個客戶在某個時間段內(nèi)所有的交易記錄構(gòu)成一個有序的序列,序列用<>表示。在序列中,項(xiàng)/項(xiàng)集是有順序的,每個項(xiàng)都代表交易的一種商品,而元素則是指該客戶在某一個具體的時間點(diǎn)一次性購買的所有商品,用{}或()表示,該客戶可能在不同的時間段購買同一件產(chǎn)品,即一個項(xiàng)可能在一個序列的不同元素中發(fā)生。如表2中ID為2的客戶購買序列為<{a,b}{c}{a,d,f,g}>,該客戶分別在第一次和第三次購物時購買了商品a,其中{a,b},{c},{a,d,f,g}這三個項(xiàng)目集可稱為序列的元素,a,b,c,d,f,g則稱為項(xiàng),如果一個元素中只有一個項(xiàng),則括號可以省略,如該序列中的元素{c}可直接寫c。然而,現(xiàn)存的負(fù)序列模式挖掘算法比較少,例如,NSPM,PNSP,Neg-GSP,e-NSP等等。這些算法中的約束條件大多數(shù)是為了實(shí)現(xiàn)負(fù)序列模式挖掘和提高算法效率而提出的。事實(shí)上,這些約束條件比較嚴(yán)格從而使很多有意義的序列模式無法被挖掘。它們在實(shí)際應(yīng)用中并不是必須的。例如,負(fù)元素約束,它要求負(fù)候選的最小負(fù)單位是元素,既允許整個元素(ab)為負(fù),表示為而不允許元素(ab)中有負(fù)項(xiàng),即是不允許的,這是非常嚴(yán)格,它無法真正的表示顧客在一次購物中買到的商品,和可能買但沒有買的商品;格式約束,它要求序列中的負(fù)元素不能連續(xù)出現(xiàn),既是不能出現(xiàn)的,而在現(xiàn)實(shí)生活中這種序列是經(jīng)常發(fā)生的,它可以表示顧客的兩次購物記錄,第一次顧客在購買了商品b的同時沒有購買a,第二次顧客在購買了商品c的同時沒有購買b。但是我們目前沒有找到任何有關(guān)于放寬這些約束條件的負(fù)模式挖掘方法的研究。這是因?yàn)榉艑捈s束后會帶來很多具有挑戰(zhàn)性的問題,例如,產(chǎn)生數(shù)量巨大的負(fù)候選,如何給出更為復(fù)雜的負(fù)包含定義以及高計算花費(fèi)等。技術(shù)實(shí)現(xiàn)要素:發(fā)明概述本發(fā)明針對現(xiàn)存算法中約束條件過于嚴(yán)格致使在挖掘過程中丟失很多有意義的負(fù)序列模式,且無法真實(shí)的表示顧客的購買行為這些問題,提出了基于單項(xiàng)缺失的負(fù)序列模式挖掘算法NegI-NSP。它不但允許負(fù)候選的最小負(fù)單位為項(xiàng)(而不是元素),例如,允許元素(ab)中有負(fù)項(xiàng),可以表示為或而且允許序列中存在連續(xù)的負(fù)元素,例如,序列是被允許的。這樣不但能夠反應(yīng)出顧客購買行為中商品購買的先后順序,還能反映出每次購物中顧客的真實(shí)購買行為。NegI-NSP算法的主要思想是:首先,通過現(xiàn)存的正序列模式挖掘算法挖掘出正序列模式;然后,利用轉(zhuǎn)化策論生成負(fù)候選序列集,并利用已知的正序列模式的支持度計算負(fù)候選的支持度;最后,通過最小支持度(由用戶指定)篩選得到最終的負(fù)序列模式。通過該算法挖掘得到的更為真實(shí)的能夠反映顧客購買行為的負(fù)序列模式,從而可以更全面的分析客戶購買行為,使得售貨方能夠根據(jù)當(dāng)前的商品銷售情況來預(yù)測以后的商品銷售,也可以很好的看出再一次購物中顧客購買或不購買商品的規(guī)律,從而合理安排商品擺放,提高商品銷售量。發(fā)明詳述本發(fā)明的技術(shù)方案如下:基于單項(xiàng)缺失的負(fù)序列模式在商品推薦中的應(yīng)用,包括步驟如下:(1)定義一個數(shù)據(jù)序列包含一個負(fù)序列顧客原本要購買但沒有購買的商品為負(fù)項(xiàng),也稱為不發(fā)生行為;顧客的一次購物記錄為元素;包含至少一個負(fù)項(xiàng)的元素為負(fù)元素;顧客在一段時間內(nèi)的購物記錄稱之為數(shù)據(jù)序列,包含至少一個負(fù)元素的序列稱之為負(fù)序列;MPSE是指一個顧客在一次購物記錄中的最大正子元素;例如,一個負(fù)元素其中和代表顧客這次購物沒有購買的商品,而b和d代表顧客這次購物購買了的商品。它的最大正子元素表示為特別的,負(fù)單項(xiàng)元素不包含正項(xiàng),我們用空表示,例如負(fù)元素它的最大正子元素表示為1-negMPSE是指負(fù)元素si的子元素,該子元素包括MPSE(si)和一個負(fù)項(xiàng)e,一個單項(xiàng)負(fù)元素的1-negMPSE是它本身;MPSE(si)是指負(fù)元素si的最大正子元素;MPS(ns)是指一個由顧客購買的商品組成的負(fù)序列ns的最大正子序列,其由ns中包含的所有正項(xiàng)按照原順序組成;例如:一個負(fù)序列代表沒有購買的商品,而bcd代表購買了的商品。它的最大正子序列為MPS(ns)=<cd>,特別的,一個正序列的最大正子序列是它本身;NSI-MSE是指負(fù)序列ns的子序列,該子序列包括單項(xiàng)負(fù)元素si以及MPSE(si+1);定義數(shù)據(jù)序列ds=<d1d2...dt>包含負(fù)序列ns=<s1s2...sm>;就要充分考慮到ns中的每個負(fù)項(xiàng)si不允許在ds中出現(xiàn)的區(qū)間,而這一區(qū)間是由si將MPS(ns)分為左子序列和右子序列決定的,既左子序列的首終止位置dfse和右子序列的終開始位置dlsb之間的區(qū)間。如果則負(fù)序列ns=<s1s2...sm>是有m個元素組成,其中包含n個負(fù)元素。(1)如果m>2t+1,則ds不包含ns;(2)當(dāng)m=1,n=1時,如果則ds不包含ns;(3)對于且其中EidS-ns表示ns中的負(fù)元素的集合,EidS+ns表示ns中的正元素的集合,如果滿足(a)當(dāng)i=1時,且(s1,id(s1))∈EidS-ns,(s2,id(s2))∈EidS+ns,((lsb=1)或(lsb>1),如果特別的,element_length(s1)=1(element_length(s1)表示s1的長度),則則ds包含ns;(b)當(dāng)i=2時,且(s1,id(s1))∈EidS-ns且element_length(s1)=1,(s2,id(s2))∈EidS-ns,((lsb=1)或(lsb>1),如果和當(dāng)(s1,id(s1))∈EidS-ns且element_length(s1)>1,或(s1,id(s1))∈EidS+ns,(s2,id(s2))∈EidS-ns,((lsb=1)或(lsb>1)時,如果特別的,如果element_length(s2)>1,則則ds包含ns;(c)當(dāng)i=m時,(sm-1,id(sm-1))∈EidS+ns或(sm-1,id(sm-1))∈EidS-ns,element_length(sm-1)>1,(sm,id(sm))∈EidS-ns,((fse=t)或(0<fse<t),如果特別的element_length(sm)>1,則當(dāng)(sm-1,id(sm-1))∈EidS-ns∧element_length(sm-1)=1,(sm,id(sm))∈EidS-ns,(0<fse<t),如果則ds包含ns;(d)當(dāng)2<i<m時,(si-1,id(si-1))∈EidS+ns或(si-1,id(si-1))∈EidS-ns,element_length(si-1)>1,(si,id(si))∈EidS-ns,((si+1,id(si+1))∈EidS+ns或element_length(si)>1),(fse>0∧lsb=fse+1)或(fse>0∧lsb>fse+1),如果如果element_length(si)>1,則當(dāng)(si-1,id(si-1))∈EidS-ns且element_length(si-1)=1,(si,id(si))∈EidS-ns,(fse>0且lsb>fse+1),如果則ds包含ns;其中fse=FSE(MPS(<s1s2...si-1>),ds),lsb=LSB(MPS(<si...sm>),ds);(2)利用NegI-NSP算法對客戶的購物行為進(jìn)行分析,具體步驟包括:A、使用正序列挖掘算法GSP挖掘得到所有的正序列模式,即在某一段時間內(nèi),客戶頻繁購買的商品;B、基于步驟A挖掘得到的正序列模式,生成相應(yīng)的負(fù)候選序列(negativesequentialcandidates,NSC),所述負(fù)候選序列用于判斷在某一段時間內(nèi),哪些商品客戶購買的多,哪些商品客戶沒有購買;C、利用負(fù)候選序列對應(yīng)的正序列模式的支持度來計算負(fù)侯選序列的支持度;D、從步驟B生成的負(fù)侯選序列中篩選出符合最小支持度要求的負(fù)序列模式,即:從步驟B生成的負(fù)侯選序列中篩選出大于用戶設(shè)定的最小支持度的負(fù)序列模式,利用這些篩選后的負(fù)序列模式對客戶的購買行為進(jìn)行分析。商家根據(jù)分析結(jié)果具有針對性的給客戶推薦商品,根據(jù)客戶購買習(xí)慣安排商品的擺放位置和數(shù)量。根據(jù)本發(fā)明優(yōu)選的,所述步驟B,基于步驟A挖掘得到的正序列模式,生成相應(yīng)的負(fù)候選序列,具體步驟包括:對于包含k個元素的正序列模式,其負(fù)侯選序列是通過改變正序列模式中任意m個負(fù)元素得到的;m為整數(shù)且1≤m≤k,當(dāng)正序列模式中沒有連續(xù)的長度為1的元素時,則m的最大值為k。例如:基于<(abc)cd>正序列模式生成相應(yīng)的負(fù)候選序列,a、b、c、d是指某種商品,包括:m=1,m=2,為了基于正序列模式生成無冗余的負(fù)侯選序列以及結(jié)合現(xiàn)實(shí)中顧客的真實(shí)購物行為,我們用一種高效的方法來生成負(fù)侯選序列,其基本思想是改變正序列模式中任意項(xiàng)為負(fù)項(xiàng),如果正序列模式中存在連續(xù)的單項(xiàng)元素,則不能同時將連續(xù)的負(fù)單項(xiàng)元素改變?yōu)樨?fù)元素,且任意多項(xiàng)元素中的項(xiàng)不能全改變?yōu)樨?fù)項(xiàng)。根據(jù)本發(fā)明優(yōu)選的,所述步驟C,利用相關(guān)的正序列模式的支持度來計算負(fù)侯選序列的支持度,具體步驟包括:①定義一個負(fù)侯選序列;例如,1-neglMSns是指負(fù)序列ns的子序列,并且該子序列是由MPS(ns)以及一個負(fù)項(xiàng)組成;1-neglMSSns是指負(fù)序列ns中所有1-neglMSns組成的序列集合;例如,p(1-neglMS)是指序列1-neglMS中的正元素不變,將負(fù)元素轉(zhuǎn)換為相應(yīng)的正元素;例如:②一個含有m個元素并且其中含有n個負(fù)元素的負(fù)序列ns,對于1≤i≤n,在序列數(shù)據(jù)庫D中,負(fù)序列ns的支持度sup(ns)由式(i)、式(ii)計算得出:負(fù)序列ns的支持度sup(ns)的計算方法如式(i)所示:sup(ns)=|{MPS(ns)}-∪ni=1{p(1-neglMSi)}|(i)采用式(i)獲得所有包含負(fù)序列ns的數(shù)據(jù)序列的sid,{MPS(ns)}是指所有包含MPS(ns)的數(shù)據(jù)序列的sid,∪ni=1{p(1-neglMSi)}是指所有{p(1-neglMSi)}組成的sid集合的并集;當(dāng)負(fù)序列ns為時,負(fù)序列ns的支持度sup(ns)的計算方法如式(ii)所示:假設(shè),序列<(ac)>的支持度是10,支持序列<(abc)>的sid(包含序列<(abc)>的客戶ID)的集合是{10,20,30},支持序列<(ac)d>的sid的集合是{20,30,40},則本發(fā)明的實(shí)現(xiàn)算法NegI-NSP的算法偽代碼如下:輸入:D:客戶購買序列數(shù)據(jù)庫;ms:為最小支持度;輸出:NSP:用于分析客戶購買行為的負(fù)序列模式的集合;所述步驟(1)是用現(xiàn)存的正序列模式挖掘算法從顧客購買行為序列數(shù)據(jù)庫中挖掘出所有的正序列模式;所有的正序列模式以及它的支持度和sid的集合都被存儲到哈希表PSPHash,其中,所述步驟(2)是正序列模式的哈希碼作為關(guān)鍵碼;所述步驟(4)是對于每一個正序列模式,通過上述“負(fù)侯選序列的生成”方法來生成負(fù)侯選序列NSC;步驟(5)至步驟(20),通過公式(i)和(ii)計算出NSC中的每一個nsc的支持度;步驟(21)至步驟(23)是判斷出滿足最小支持度的負(fù)序列模式NSP;步驟(5)至步驟(8),通過公式公式(ii)計算出只含有一個單項(xiàng)負(fù)元素的nsc的支持度,對于包含多項(xiàng)負(fù)元素或元素個數(shù)大于1的nsc的支持度,通過公式(i)計算出如步驟(9)至步驟(20);對于后者,最關(guān)鍵的是如何計算cHash.size();步驟(12)至步驟(18)是計算cHash.size()的核心思想;將包含p(1-neglMSi)的sid集合存儲到{p(1-neglMSi)}集合中,然后計算{p(1-neglMSi)}的并集,再計算出集合中含有的sid的個數(shù);步驟(19)行計算出nsc的支持度;如果nsc.support≥ms(nsc)那么nsc被加入到NSP中,如步驟(21)至步驟(23);返回結(jié)果,如步驟(26),再用適當(dāng)?shù)暮Y選方法將能用于決策的序列模式篩選出來,利用這些篩選后的序列模式來分析客戶的購買行為,幫助商家進(jìn)行有針對性的推薦商品,和按需擺放商品。本發(fā)明的有益效果為:本發(fā)明應(yīng)用在進(jìn)行客戶購買行為分析的過程中,可以充分表示顧客的真實(shí)購買行為,從而發(fā)現(xiàn)顧客真實(shí)的頻繁購買或不購買商品的行為。這樣顧客在購買商品時,利用本發(fā)明可以向其推薦一些其他客戶購買頻率比較大的連帶購買的產(chǎn)品,從而增加顧客的交易機(jī)會,將網(wǎng)站瀏覽者轉(zhuǎn)變?yōu)橘徺I者,提高交叉銷售能力,提高客戶的忠誠度,從而提高網(wǎng)站的經(jīng)濟(jì)效益。具體實(shí)施方式下面結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步限定,但不限于此。實(shí)施例基于單項(xiàng)缺失的負(fù)序列模式在商品推薦中的應(yīng)用,包括步驟如下:(1)定義一個數(shù)據(jù)序列包含一個負(fù)序列顧客原本要購買但沒有購買的商品為負(fù)項(xiàng),也稱為不發(fā)生行為;顧客的一次購物記錄為元素;包含至少一個負(fù)項(xiàng)的元素為負(fù)元素;顧客在一段時間內(nèi)的購物記錄稱之為數(shù)據(jù)序列,包含至少一個負(fù)元素的序列稱之為負(fù)序列;MPSE是指一個顧客在一次購物記錄中的最大正子元素;例如,一個負(fù)元素其中和代表顧客這次購物沒有購買的商品,而b和d代表顧客這次購物購買了的商品。它的最大正子元素表示為特別的,負(fù)單項(xiàng)元素不包含正項(xiàng),我們用空表示,例如負(fù)元素它的最大正子元素表示為1-negMPSE是指負(fù)元素si的子元素,該子元素包括MPSE(si)和一個負(fù)項(xiàng)e,一個單項(xiàng)負(fù)元素的1-negMPSE是它本身;MPSE(si)是指負(fù)元素si的最大正子元素;MPS(ns)是指一個由顧客購買的商品組成的負(fù)序列ns的最大正子序列,其由ns中包含的所有正項(xiàng)按照原順序組成;例如:一個負(fù)序列代表沒有購買的商品,而bcd代表購買了的商品。它的最大正子序列為MPS(ns)=<cd>,特別的,一個正序列的最大正子序列是它本身;NSI-MSE是指負(fù)序列ns的子序列,該子序列包括單項(xiàng)負(fù)元素si以及MPSE(si+1);定義數(shù)據(jù)序列ds=<d1d2...dt>包含負(fù)序列ns=<s1s2...sm>;就要充分考慮到ns中的每個負(fù)項(xiàng)si不允許在ds中出現(xiàn)的區(qū)間,而這一區(qū)間是由si將MPS(ns)分為左子序列和右子序列決定的,既左子序列的首終止位置dfse和右子序列的終開始位置dlsb之間的區(qū)間。如果則負(fù)序列ns=<s1s2...sm>是有m個元素組成,其中包含n個負(fù)元素。(1)如果m>2t+1,則ds不包含ns;(2)當(dāng)m=1,n=1時,如果則ds不包含ns;(3)對于且其中EidS-ns表示ns中的負(fù)元素的集合,EidS+ns表示ns中的正元素的集合,如果滿足(a)當(dāng)i=1時,且(s1,id(s1))∈EidS-ns,(s2,id(s2))∈EidS+ns,((lsb=1)或(lsb>1),如果特別的,element_length(s1)=1(element_length(s1)表示s1的長度),則則ds包含ns;(b)當(dāng)i=2時,且(s1,id(s1))∈EidS-ns且element_length(s1)=1,(s2,id(s2))∈EidS-ns,((lsb=1)或(lsb>1),如果和當(dāng)(s1,id(s1))∈EidS-ns且element_length(s1)>1,或(s1,id(s1))∈EidS+ns,(s2,id(s2))∈EidS-ns,((lsb=1)或(lsb>1)時,如果特別的,如果element_length(s2)>1,則則ds包含ns;(c)當(dāng)i=m時,(sm-1,id(sm-1))∈EidS+ns或(sm-1,id(sm-1))∈EidS-ns,element_length(sm-1)>1,(sm,id(sm))∈EidS-ns,((fse=t)或(0<fse<t),如果特別的element_length(sm)>1,則當(dāng)(sm-1,id(sm-1))∈EidS-ns∧element_length(sm-1)=1,(sm,id(sm))∈EidS-ns,(0<fse<t),如果則ds包含ns;(d)當(dāng)2<i<m時,(si-1,id(si-1))∈EidS+ns或(si-1,id(si-1))∈EidS-ns,element_length(si-1)>1,(si,id(si))∈EidS-ns,((si+1,id(si+1))∈EidS+ns或element_length(si)>1),(fse>0∧lsb=fse+1)或(fse>0∧lsb>fse+1),如果如果element_length(si)>1,則當(dāng)(si-1,id(si-1))∈EidS-ns且element_length(si-1)=1,(si,id(si))∈EidS-ns,(fse>0且lsb>fse+1),如果則ds包含ns;其中fse=FSE(MPS(<s1s2...si-1>),ds),lsb=LSB(MPS(<si...sm>),ds);(2)利用NegI-NSP算法對客戶的購物行為進(jìn)行分析,具體步驟包括:A、使用正序列挖掘算法GSP挖掘得到所有的正序列模式,即在某一段時間內(nèi),客戶頻繁購買的商品;B、基于步驟A挖掘得到的正序列模式,生成相應(yīng)的負(fù)候選序列(negativesequentialcandidates,NSC),所述負(fù)候選序列用于判斷在某一段時間內(nèi),哪些商品客戶購買的多,哪些商品客戶沒有購買;具體步驟包括:對于包含k個元素的正序列模式,其負(fù)侯選序列是通過改變正序列模式中任意m個負(fù)元素得到的;m為整數(shù)且1≤m≤k,當(dāng)正序列模式中沒有連續(xù)的長度為1的元素時,則m的最大值為k。例如:基于<(abc)cd>正序列模式生成相應(yīng)的負(fù)候選序列,a、b、c、d是指某種商品,包括:m=1,m=2,為了基于正序列模式生成無冗余的負(fù)侯選序列以及結(jié)合現(xiàn)實(shí)中顧客的真實(shí)購物行為,我們用一種高效的方法來生成負(fù)侯選序列,其基本思想是改變正序列模式中任意項(xiàng)為負(fù)項(xiàng),如果正序列模式中存在連續(xù)的單項(xiàng)元素,則不能同時將連續(xù)的負(fù)單項(xiàng)元素改變?yōu)樨?fù)元素,且任意多項(xiàng)元素中的項(xiàng)不能全改變?yōu)樨?fù)項(xiàng)。C、利用負(fù)候選序列對應(yīng)的正序列模式的支持度來計算負(fù)侯選序列的支持度;具體步驟包括:①定義一個負(fù)侯選序列;例如,1-neglMSns是指負(fù)序列ns的子序列,并且該子序列是由MPS(ns)以及一個負(fù)項(xiàng)組成;1-neglMSSns是指負(fù)序列ns中所有1-neglMSns組成的序列集合;例如,p(1-neglMS)是指序列1-neglMS中的正元素不變,將負(fù)元素轉(zhuǎn)換為相應(yīng)的正元素;例如:②一個含有m個元素并且其中含有n個負(fù)元素的負(fù)序列ns,對于1≤i≤n,在序列數(shù)據(jù)庫D中,負(fù)序列ns的支持度sup(ns)由式(i)、式(ii)計算得出:負(fù)序列ns的支持度sup(ns)的計算方法如式(i)所示:sup(ns)=|{MPS(ns)}-∪ni=1{p(1-neglMSi)}|(i)采用式(i)獲得所有包含負(fù)序列ns的數(shù)據(jù)序列的sid,{MPS(ns)}是指所有包含MPS(ns)的數(shù)據(jù)序列的sid,∪ni=1{p(1-neglMSi)}是指所有{p(1-neglMSi)}組成的sid集合的并集;當(dāng)負(fù)序列ns為時,負(fù)序列ns的支持度sup(ns)的計算方法如式(ii)所示:假設(shè),序列<(ac)>的支持度是10,支持序列<(abc)>的sid(包含序列<(abc)>的客戶ID)的集合是{10,20,30},支持序列<(ac)d>的sid的集合是{20,30,40},則D、從步驟B生成的負(fù)侯選序列中篩選出符合最小支持度要求的負(fù)序列模式,即:從步驟B生成的負(fù)侯選序列中篩選出大于用戶設(shè)定的最小支持度的負(fù)序列模式,利用這些篩選后的負(fù)序列模式對客戶的購買行為進(jìn)行分析。商家根據(jù)分析結(jié)果具有針對性的給客戶推薦商品,根據(jù)客戶購買習(xí)慣安排商品的擺放位置和數(shù)量。本發(fā)明的實(shí)現(xiàn)算法NegI-NSP的算法偽代碼如下:輸入:D:客戶購買序列數(shù)據(jù)庫;ms:為最小支持度;輸出:NSP:用于分析客戶購買行為的負(fù)序列模式的集合;所述步驟(1)是用現(xiàn)存的正序列模式挖掘算法從顧客購買行為序列數(shù)據(jù)庫中挖掘出所有的正序列模式;所有的正序列模式以及它的支持度和sid的集合都被存儲到哈希表PSPHash,其中,所述步驟(2)是正序列模式的哈希碼作為關(guān)鍵碼;所述步驟(4)是對于每一個正序列模式,通過上述“負(fù)侯選序列的生成”方法來生成負(fù)侯選序列NSC;步驟(5)至步驟(20),通過公式(i)和(ii)計算出NSC中的每一個nsc的支持度;步驟(21)至步驟(23)是判斷出滿足最小支持度的負(fù)序列模式NSP;步驟(5)至步驟(8),通過公式公式(ii)計算出只含有一個單項(xiàng)負(fù)元素的nsc的支持度,對于包含多項(xiàng)負(fù)元素或元素個數(shù)大于1的nsc的支持度,通過公式(i)計算出如步驟(9)至步驟(20);對于后者,最關(guān)鍵的是如何計算cHash.size();步驟(12)至步驟(18)是計算cHash.size()的核心思想;將包含p(1-neglMSi)的sid集合存儲到{p(1-neglMSi)}集合中,然后計算{p(1-neglMSi)}的并集,再計算出集合中含有的sid的個數(shù);步驟(19)行計算出nsc的支持度;如果nsc.support≥ms(nsc)那么nsc被加入到NSP中,如步驟(21)至步驟(23);返回結(jié)果,如步驟(26),再用適當(dāng)?shù)暮Y選方法將能用于決策的序列模式篩選出來,利用這些篩選后的序列模式來分析客戶的購買行為,幫助商家進(jìn)行有針對性的推薦商品,和按需擺放商品。當(dāng)前第1頁1 2 3