頻繁項(xiàng)集挖掘算法的優(yōu)化方法
【專利說明】頻繁項(xiàng)集挖掘算法的優(yōu)化方法
[0001]
技術(shù)領(lǐng)域
[0002 ]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體地,涉及一種頻繁項(xiàng)集挖掘算法的優(yōu)化方法。
【背景技術(shù)】
[0003]頻繁項(xiàng)集挖掘算法用于挖掘經(jīng)常一起出現(xiàn)的item集合(稱為頻繁項(xiàng)集),通過挖掘出這些頻繁項(xiàng)集,當(dāng)在一個事務(wù)中出現(xiàn)頻繁項(xiàng)集的其中一個item,則可以把該頻繁項(xiàng)集的其他item作為推薦。
[0004]常見的頻繁項(xiàng)集挖掘算法有兩類,一類是Apr1r i算法,另一類是FPGrowth。FPGrowth是基于Apr1ri算法優(yōu)化而成。FPgrowth算法相對于Apr1ri,最大的突破是縮減了數(shù)據(jù)的迭代次數(shù)。Apr1ri在計(jì)算頻繁項(xiàng)集需要進(jìn)行K-1次計(jì)算,K為頻繁一項(xiàng)集的個數(shù),而Fpgrowth通過構(gòu)建fptree只需要遍歷2次數(shù)據(jù)就能完成頻繁項(xiàng)集的計(jì)算。
[0005]隨著信息化的發(fā)展,數(shù)據(jù)的爆發(fā)性增多,數(shù)據(jù)的復(fù)雜性大大增加。雖然通過hadoop,spark,F(xiàn)pgrowth等技術(shù)可以縮短頻繁項(xiàng)集的計(jì)算時間和數(shù)據(jù)的迭代次數(shù),但是不同來源的數(shù)據(jù),會造成頻繁項(xiàng)集的數(shù)量集的增大和無效頻繁項(xiàng)集的增多。項(xiàng)目中實(shí)際使用效果并不精準(zhǔn),往往推薦出錯誤的結(jié)果。而且無效數(shù)據(jù)量會增大頻繁項(xiàng)集的大小,使項(xiàng)目的性能和成本不能滿足需求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于,針對上述問題,提出一種頻繁項(xiàng)集挖掘算法的優(yōu)化方法,以實(shí)現(xiàn)縮小數(shù)據(jù)量大小,以及縮減數(shù)據(jù)計(jì)算過程和數(shù)據(jù)存儲的優(yōu)點(diǎn)。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
一種頻繁項(xiàng)集挖掘算法的優(yōu)化方法,包括:
接收數(shù)據(jù);
對于接收的數(shù)據(jù),使用前序遍歷,遍歷項(xiàng)集樹,從而對項(xiàng)集進(jìn)行排列;
對排列后的項(xiàng)集中相鄰的項(xiàng)集做父子集比較,并將比較結(jié)果為真子集與父集關(guān)系的項(xiàng)集合并;
其中項(xiàng)集為頻繁項(xiàng)集的簡稱。
[0008]優(yōu)選的,所述父子集比較,比較的內(nèi)容包括,項(xiàng)集的從屬關(guān)系和項(xiàng)集的支持度。
[0009]優(yōu)選的,所述項(xiàng)集的從屬關(guān)系比較具體為:
假設(shè),兩個項(xiàng)集分別為A項(xiàng)集和B項(xiàng)集,如果A項(xiàng)集里面的項(xiàng)都包含于B項(xiàng)集中,則認(rèn)為A項(xiàng)集屬于B項(xiàng)集,A項(xiàng)集是B項(xiàng)集的子集。
[0010]優(yōu)選的,所述項(xiàng)集的支持度比較具體為:
假設(shè),兩個項(xiàng)集分別為A項(xiàng)集和B項(xiàng)集,項(xiàng)集的支持度來源于數(shù)據(jù)中,簡單來說就是該項(xiàng)集里面的項(xiàng)在數(shù)據(jù)中同時出現(xiàn)的次數(shù),如果A項(xiàng)集的頻繁度和B項(xiàng)集的頻繁度相等并且A項(xiàng)集是B項(xiàng)集的子集,則A項(xiàng)集是B項(xiàng)集的真子集;如果A項(xiàng)集是B項(xiàng)集的子集,但是支持度不同,貝1JA項(xiàng)集是B項(xiàng)集的子集,但并不是真子集。
[0011 ]本發(fā)明的技術(shù)方案具有以下有益效果:
本發(fā)明的技術(shù)方案,與現(xiàn)有頻繁項(xiàng)集挖掘算法比較,提取真子集的作用,主要的優(yōu)點(diǎn)是通過提取真子集,縮小數(shù)據(jù)量的大小,縮減數(shù)據(jù)的計(jì)算過程和數(shù)據(jù)存儲的大小,并且通過有效的減少無效項(xiàng)集的計(jì)算,防止重復(fù)數(shù)據(jù)的反復(fù)計(jì)算。從而使用該算法做推薦時,避免推薦無效的商品,可以有效的增加用戶體驗(yàn)。真子集的使用是即節(jié)約成本,又提高性能和用戶體驗(yàn)。
[0012]下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
【附圖說明】
[0013]圖1為本發(fā)明實(shí)施例所述的頻繁項(xiàng)集挖掘算法的優(yōu)化方法的流程圖;
圖2為本發(fā)明實(shí)施例所述的頻繁項(xiàng)集的數(shù)據(jù)結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例所述的頻繁項(xiàng)集可以合并的數(shù)據(jù)結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例所述的頻繁項(xiàng)集可以部分合并的數(shù)據(jù)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0014]以下結(jié)合附圖對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0015]如圖1所示,一種頻繁項(xiàng)集挖掘算法的優(yōu)化方法,包括:
接收數(shù)據(jù);
對于接收的數(shù)據(jù),使用前序遍歷,遍歷項(xiàng)集樹,從而對項(xiàng)集進(jìn)行排列;
對排列后的項(xiàng)集中相鄰的項(xiàng)集做父子集比較,并將比較結(jié)果為真子集與父集關(guān)系的項(xiàng)集合并;
其中項(xiàng)集為頻繁項(xiàng)集的簡稱。
[0016]優(yōu)選的,父子集比較,比較的內(nèi)容包括,項(xiàng)集的從屬關(guān)系和項(xiàng)集的支持度。
[0017]優(yōu)選的,所述項(xiàng)集的從屬關(guān)系比較具體為:
假設(shè),兩個項(xiàng)集分別為A項(xiàng)集和B項(xiàng)集,如果A項(xiàng)集里面的項(xiàng)都包含于B項(xiàng)集中,則認(rèn)為A項(xiàng)集屬于B項(xiàng)集,A項(xiàng)集是B項(xiàng)集的子集。
[0018]優(yōu)選的,項(xiàng)集的支持度比較具體為:
假設(shè),兩個項(xiàng)集分別為A項(xiàng)集和B項(xiàng)集,項(xiàng)集的支持度來源于數(shù)據(jù)中,簡單來說就是該項(xiàng)集里面的項(xiàng)在數(shù)據(jù)中同時出現(xiàn)的次數(shù),如果A項(xiàng)集的頻繁度和B項(xiàng)集的頻繁度相等并且A項(xiàng)集是B項(xiàng)集的子集,則A項(xiàng)集是B項(xiàng)集的真子集;如果A項(xiàng)集是B項(xiàng)集的子集,但是支持度不同,貝1JA項(xiàng)集是B項(xiàng)集的子集,但并不是真子集。
[0019]如圖2所示:頻繁項(xiàng)集結(jié)果集中存在如圖2所示的三列數(shù)據(jù),第二列和第三列為第一列的子集,并且三列頻繁項(xiàng)集的支持度都為10。在此情況下,第一列,第二列和第三位來自于同一數(shù)據(jù)源,說明了第二列和第三列為第一列的真子集,不必分為三列計(jì)算,可以合并為同一列,如圖3所不。
[0020]如圖3所示:在頻繁項(xiàng)集的計(jì)算結(jié)果中,選擇下一列數(shù)據(jù)與當(dāng)前數(shù)據(jù)列數(shù)據(jù)比較支持度和父子集關(guān)系,如果下一列是當(dāng)前列的真子集,則將2列合為一列,再比較第三列,如果第三列仍和第一列是父子集關(guān)系,則將三列合為一列,依次比較下去;如果第三列和第一列不為父子關(guān)系,如圖4所示,則將第一列和第二列合并,從第三列依次往下比較。
[0021]真子集和父集合并為同一列,在數(shù)據(jù)量方面縮減了重復(fù)數(shù)據(jù)的發(fā)生,在頻繁項(xiàng)集使用過程中,減少了計(jì)算的次數(shù)。在數(shù)據(jù)準(zhǔn)確性方面,減少了來自于相同數(shù)據(jù)源的頻繁項(xiàng)集的重復(fù)使用,在數(shù)據(jù)準(zhǔn)確性上面起到了優(yōu)化的作用。
[0022]父子集比較:父子集比較分為2個部分。第一點(diǎn)是頻繁項(xiàng)集的從屬關(guān)系,項(xiàng)集是頻繁項(xiàng)的集合,如果A頻繁項(xiàng)集里面的項(xiàng)都包含于B頻繁項(xiàng)集中,則認(rèn)為A項(xiàng)集屬于B項(xiàng)集,A項(xiàng)集是B項(xiàng)集的子集。第二點(diǎn)比較支持度,頻繁項(xiàng)集的支持度來源于數(shù)據(jù)中,簡單來說就是該項(xiàng)集的里面的項(xiàng)在數(shù)據(jù)中同時出現(xiàn)的次數(shù)。如果A項(xiàng)集的頻繁度和B項(xiàng)集的頻繁度相等并且A項(xiàng)集是B項(xiàng)集的子集,則A項(xiàng)集是B項(xiàng)集的真子集;如果A項(xiàng)集是B項(xiàng)集的子集,但是支持度不同,則A項(xiàng)集是B項(xiàng)集的子集,但并不是真子集。
[0023]父子集比較選擇:在選擇頻繁項(xiàng)集做父子集比較時候,只需要選擇相鄰的2個集合做比較即可,在遍歷項(xiàng)集樹的使用前序遍歷,在可能存在父子關(guān)系的項(xiàng)集,會按照相鄰的關(guān)系排列在一起。
[0024]最后應(yīng)說明的是:以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,對于本領(lǐng)域的技術(shù)人員來說,其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種頻繁項(xiàng)集挖掘算法的優(yōu)化方法,其特征在于,包括: 接收數(shù)據(jù); 對于接收的數(shù)據(jù),使用前序遍歷,遍歷項(xiàng)集樹,從而對項(xiàng)集進(jìn)行排列; 對排列后的項(xiàng)集中相鄰的項(xiàng)集做父子集比較,并將比較結(jié)果為真子集與父集關(guān)系的項(xiàng)集合并; 其中項(xiàng)集為頻繁項(xiàng)集的簡稱。2.根據(jù)權(quán)利要求1所述的頻繁項(xiàng)集挖掘算法的優(yōu)化方法,其特征在于,所述父子集比較,比較的內(nèi)容包括,項(xiàng)集的從屬關(guān)系和項(xiàng)集的支持度。3.根據(jù)權(quán)利要求2所述的頻繁項(xiàng)集挖掘算法的優(yōu)化方法,其特征在于,所述項(xiàng)集的從屬關(guān)系比較具體為: 假設(shè),兩個項(xiàng)集分別為A項(xiàng)集和B項(xiàng)集,如果A項(xiàng)集里面的項(xiàng)都包含于B項(xiàng)集中,則認(rèn)為A項(xiàng)集屬于B項(xiàng)集,A項(xiàng)集是B項(xiàng)集的子集。4.根據(jù)權(quán)利要求3所述的頻繁項(xiàng)集挖掘算法的優(yōu)化方法,其特征在于,所述項(xiàng)集的支持度比較具體為: 假設(shè),兩個項(xiàng)集分別為A項(xiàng)集和B項(xiàng)集,項(xiàng)集的支持度來源于數(shù)據(jù)中,簡單來說就是該項(xiàng)集里面的項(xiàng)在數(shù)據(jù)中同時出現(xiàn)的次數(shù),如果A項(xiàng)集的頻繁度和B項(xiàng)集的頻繁度相等并且A項(xiàng)集是B項(xiàng)集的子集,則A項(xiàng)集是B項(xiàng)集的真子集;如果A項(xiàng)集是B項(xiàng)集的子集,但是支持度不同,貝1JA項(xiàng)集是B項(xiàng)集的子集,但并不是真子集。
【專利摘要】本發(fā)明公開了一種頻繁項(xiàng)集挖掘算法的優(yōu)化方法,包括:接收數(shù)據(jù);對于接收的數(shù)據(jù),使用前序遍歷,遍歷項(xiàng)集樹,從而對項(xiàng)集進(jìn)行排列;對排列后的項(xiàng)集中相鄰的項(xiàng)集做父子集比較,并將比較結(jié)果為真子集與父集關(guān)系的項(xiàng)集合并。與現(xiàn)有頻繁項(xiàng)集挖掘算法比較,提取真子集的作用,主要的優(yōu)點(diǎn)是通過提取真子集,縮小數(shù)據(jù)量的大小,縮減數(shù)據(jù)的計(jì)算過程和數(shù)據(jù)存儲的大小,并且通過有效的減少無效項(xiàng)集的計(jì)算,防止重復(fù)數(shù)據(jù)的反復(fù)計(jì)算。
【IPC分類】G06F17/30
【公開號】CN105447134
【申請?zhí)枴緾N201510806032
【發(fā)明人】李磊
【申請人】央視國際網(wǎng)絡(luò)無錫有限公司
【公開日】2016年3月30日
【申請日】2015年11月20日