關聯(lián)規(guī)則和序列模式實驗_第1頁
關聯(lián)規(guī)則和序列模式實驗_第2頁
關聯(lián)規(guī)則和序列模式實驗_第3頁
關聯(lián)規(guī)則和序列模式實驗_第4頁
關聯(lián)規(guī)則和序列模式實驗_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、一、實驗目的與要求掌握關聯(lián)規(guī)則和序列模式的基本原理,在此基礎上針對給定的數(shù)據(jù)集,基于C語言編程實現(xiàn)關聯(lián)規(guī)則挖掘算法和序列模式挖掘算法。二、實驗內(nèi)容1令supmin = 30%, 如頻繁1項集L1= I1:4, I2:5,I3:4, I4:4, I6:3,請寫出其他所有頻繁項集。Transaction-idItems boughtt1I1、I2、I3t2I1、I4t3I4、I5t4I1、I2、I4t5I1、I2、I6、I4、I3t6I2、I6、I3t7I2、I3、I62基于C語言編程實現(xiàn)Apriori算法;3. 基于Weka進行數(shù)據(jù)的準備、預處理及關聯(lián)規(guī)則與序列模式的挖掘三、實驗步驟(操作界面截

2、圖或程序清單)1. 令supmin = 30%, 如頻繁1項集L1= I1:4, I2:5,I3:4, I4:4, I6:3,請寫出其他所有頻繁項集。Transaction-idItems boughtt1I1、I2、I3t2I1、I4t3I4、I5t4I1、I2、I4t5I1、I2、I6、I4、I3t6I2、I6、I3t7I2、I3、I6解:7*30%=2.1,則最小支持度等于3.頻繁2項集:(1)連接得:C2=I1,I2,I1,I3,I1,I4,I1,I6,I2,I3,I2,I4,I2,I6,I3,I4,I3,I6,I4,I6(2)刪除得:L2=I1,I2,I1,I4,I2,I3 ,I2,

3、I6,I3,I6頻繁3項集:(1)連接得:C3=I1,I2,I4,I2,I3,I6(2)刪除得:L3=I2,I3,I62. 基于C語言編程實現(xiàn)Apriori算法代碼如下:#include<stdio.h>typedef struct int item100; /數(shù)據(jù)項 D_Node; /數(shù)據(jù)庫Dtypedef struct int item100; /數(shù)據(jù)項,用item0保存支持度 C_Node; /候選集typedef struct int item100; /數(shù)據(jù)項,用item0保存支持度 L_Node;/頻繁集C_Node C100100;L_Node L100100;D_N

4、ode D100;int min_supp; /最小支持度void InPut() int i,j,n,n1; printf("請輸入最小支持度:"); scanf("%d",&min_supp); printf("請輸入交易集的大小:"); scanf("%d",&D0.item0); n=D0.item0; for(i=1;i<=n;i+) /for1 printf("請輸入交易%d中記錄的個數(shù)(n):",i); scanf("%d",&n1

5、); Di.item0=n1; for(j=1;j<=n1;j+) /for2 printf("請輸入交易%d中記錄項,直接輸入數(shù)字:",i); scanf("%d",&Di.itemj); /for2 /for1 /end of InPutvoid C1() /功能:掃描數(shù)據(jù)集D生成1項候選集C1 /輸入:數(shù)據(jù)集D /輸出1項候選集C1 /初始條件 數(shù)據(jù)集D 非空 int i,j,k; int no=1,temp=0; C10.item0=0; /1 項集的個數(shù),在本算法中,用Cnk.item0來保存候選集Cn的第k項的支持度 if(D0

6、.item0!=0) C11.item1=D1.item1; for(i=1;i<=D0.item0;i+) /for1 for(j=1;j<=Di.item0;j+) /for2 temp=1; for(k=1;k<=no;k+) /for3 if(C1k.item1=Di.itemj) C1k.item0+; /支持度加1 temp=0; / /if /end for3 if(temp)/生成新的項集 C1+no.item1=Di.itemj; C1no.item0=1; /end for2 / end for1 C10.item0=no;/數(shù)據(jù)項的個數(shù) /end of

7、C1()void Cn( int n) /用頻繁集Ln-1為基礎,通過連接得到n項候選集Cn int i,j,k,p,q,s,t,num; int no=0,temp=0,count; Cn0.item0=0; /初始化/printf("in Cn(%d) n=%d/n",n,n);/printf("in Cn(%d) C%d0.item0=%d/n",n,n,Cn0.item0);num=Ln-10.item0; /num是Ln-1項集的數(shù)據(jù)個數(shù) for(i=1;i<=num;i+) for(j=i+1;j<=num;j+) /for2 t

8、emp=1; /測試是否滿足聯(lián)結條件 if(n>2)/if 1 for(k=1;k<n-1;k+) /for3 if(Ln-1i.itemk!=Ln-1j.itemk) temp=0; break; /if 1 /end for3 /end if1 if(temp=1)/滿足聯(lián)結條件 / printf("in if 2 no=%d/n",no); no+; for(p=1;p<=n-1;p+) Cnno.itemp=Ln-1i.itemp; Cnno.itemp=Ln-1j.itemp-1; Cnno.item0=0; for(q=1;q<=D0.i

9、tem0;q+) /for5 測試其支持度 count=0; /count用來記數(shù),當所測試的項存在時,count加1,當count=n時,則子集存在 for(s=1;Cnno.items!=0;s+) /for6 for(t=1;t<=Dq.item0;t+) /for7 if(Cnno.items=Dq.itemt) count+=1; break; /end for7 /end for 6 if(count=n) Cnno.item0+=1;/子集存在,第no項的支持度加1 /end for5 Cn0.item0+=1; /end if2 /end for2/end of Cn()

10、void L1() int i,j,k; j=0; L10.item0=0; /printf("C10.item0=%d/n",C10.item0); for(i=1;i<=C10.item0;i+) if(C1i.item0>=min_supp) j+=1; for(k=1;k<=1;k+) L1j.itemk=C1i.itemk; L1j.item0=C1i.item0; / printf("L1%d.item1=%d ",j,L1j.item1); 測試功能時加的 / printf(" -%d/n",L1j.i

11、tem0); /end for1 L10.item0=j;/end of L1()void Ln(int n) int i,j,k; Cn(n); j=0; Ln0.item0=0; / printf("in Ln(%d) C%d0.item0=%d/n",n,n,Cn0.item0); for(i=1;i<=Cn0.item0;i+) /for 1 if(Cni.item0>=min_supp) j+=1; for(k=1;k<=n;k+) Lnj.itemk=Cni.itemk; Lnj.item0=Cni.item0; /end if /end fo

12、r1 Ln0.item0=j; /保存數(shù)據(jù)的個數(shù)/end of Ln(int n) void OutPut(int n) int i,j,k; printf("頻繁項目集L%d如下:n",n); k=Ln0.item0; if(k!=0) for(i=1;i<=k;i+) printf(""); for(j=1;j<=n;j+) printf(" I%d ",Lni.itemj); printf("t支持度:%dn",Lni.item0); /for else printf("項目集為空n"); int ma

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論