




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一 數(shù)據(jù)預(yù)處理 一、實(shí)驗(yàn)?zāi)康?1、熟悉 VC+編程工具和完全數(shù)據(jù)立方體構(gòu)建、聯(lián)機(jī)分析處理算法。 2、瀏覽擬被處理的的數(shù)據(jù),發(fā)現(xiàn)各維屬性可能的噪聲、缺失值、不一致性等,針對(duì)存在的問(wèn)題擬出采用的數(shù)據(jù)清理、數(shù)據(jù)變換、數(shù)據(jù)集成的具體算法。3、用 VC+編程工具編寫程序,實(shí)現(xiàn)數(shù)據(jù)清理、數(shù)據(jù)變換、數(shù)據(jù)集成等功能。 4、調(diào)試整個(gè)程序獲得清潔的、一致的、集成的數(shù)據(jù),選擇適于全局優(yōu)化 的參數(shù)。 5、寫出實(shí)驗(yàn)報(bào)告。二、實(shí)驗(yàn)原理 1、 數(shù)據(jù)預(yù)處理現(xiàn)實(shí)世界中的數(shù)據(jù)庫(kù)極易受噪音數(shù)據(jù)、遺漏數(shù)據(jù)和不一致性數(shù)據(jù)的侵?jǐn)_,為提高數(shù)據(jù)質(zhì)量進(jìn)而提高挖掘結(jié)果的質(zhì)量,產(chǎn)生了大量數(shù)據(jù)預(yù)處理技術(shù)。數(shù)據(jù)預(yù)處理有多種方法:數(shù)據(jù)清理,數(shù)據(jù)集成
2、,數(shù)據(jù)變換,數(shù)據(jù)歸約等。這些數(shù)據(jù)處理技 術(shù)在數(shù)據(jù)挖掘之前使用,大大提高了數(shù)據(jù)挖掘模式的質(zhì)量,降低實(shí)際挖掘所需要 的時(shí)間。2、數(shù)據(jù)清理 數(shù)據(jù)清理例程通過(guò)填寫遺漏的值,平滑噪音數(shù)據(jù),識(shí)別、刪除離群點(diǎn),并解 決不一致來(lái)“清理”數(shù)據(jù)。 3、數(shù)據(jù)集成 數(shù)據(jù)集成將數(shù)據(jù)由多個(gè)源合并成一致的數(shù)據(jù)存儲(chǔ),如數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)立方 體。 4、數(shù)據(jù)變換 通過(guò)平滑聚集,數(shù)據(jù)概化,規(guī)范化等方式將數(shù)據(jù)轉(zhuǎn)換成適用于數(shù)據(jù)挖掘的形式。 5、數(shù)據(jù)歸約使用數(shù)據(jù)歸約可以得到數(shù)據(jù)集的壓縮表示,它小得多,但能產(chǎn)生同樣(或幾乎同樣的)分析結(jié)果。常用的數(shù)據(jù)歸約策略有數(shù)據(jù)聚集、維歸約、數(shù)據(jù)壓縮和數(shù) 字歸約等。三、實(shí)驗(yàn)內(nèi)容和步驟1、實(shí)驗(yàn)內(nèi)容1、用 V
3、C+編程工具編寫程序,實(shí)現(xiàn)數(shù)據(jù)清理、數(shù)據(jù)變換、數(shù)據(jù)集成等功能,并在實(shí)驗(yàn)報(bào)告中寫出主要的預(yù)處理過(guò)程和采用的方法。 2、產(chǎn)生清潔的、一致的、集成的數(shù)據(jù)。 3、在試驗(yàn)報(bào)告中寫明各主要程序片段的功能和作用。2、實(shí)驗(yàn)步驟 1)仔細(xì)研究和審查數(shù)據(jù),找出應(yīng)當(dāng)包含在你分析中的屬性或維,發(fā)現(xiàn)數(shù)據(jù) 中的一些錯(cuò)誤、不尋常的值、和某些事務(wù)記錄中的不一致性。2)進(jìn)行數(shù)據(jù)清理,對(duì)遺漏值、噪音數(shù)據(jù)、不一致的數(shù)據(jù)進(jìn)行處理。 例如: 1、日期中的缺失值可以根據(jù)統(tǒng)一的流水號(hào)來(lái)確定。 2、購(gòu)買的數(shù)量不能為負(fù)值。 3)進(jìn)行數(shù)據(jù)集成和數(shù)據(jù)變換和數(shù)據(jù)歸約,將多個(gè)數(shù)據(jù)源中的數(shù)據(jù)集成起來(lái), 減少或避免結(jié)果數(shù)據(jù)中的數(shù)據(jù)冗余或不一致性。并將數(shù)據(jù)
4、轉(zhuǎn)換成適合挖掘的形 式。 例如: 1、進(jìn)行完數(shù)據(jù)清理后發(fā)現(xiàn)購(gòu)買數(shù)量、銷售價(jià)格、總額是相互關(guān)聯(lián)的項(xiàng)可以 去掉總額。 2、三個(gè)流水表日期的格式不一樣應(yīng)統(tǒng)一成相同的日期格式。 3、門號(hào)和 pos 機(jī)號(hào)碼一樣,可以去掉一個(gè)。 4、附加:同一購(gòu)物籃的商品序號(hào)應(yīng)該是順序遞增的。四、實(shí)驗(yàn)結(jié)果源程序:#include #include #include #include using namespace std;class Salespublic:string serial;int market;int posno;string date;int sn;int id;float num;float price;
5、float total;void print()coutserial market posno date sn id num price totalendl;int main()ofstream outfile(fl.txt,ifstream:app);if (!outfile)coutopen error!endl;exit(1);char name50;ifstream infile;cout輸入要打開(kāi)的txt文件名:1019.txt,1020.txt,1021.txtendl;/int N=3;/for (int k=0;kN;k+)/cout輸入要打開(kāi)的第k+1個(gè)文件名name;in(
6、name,ios:in);/ifstream infile(1019.txt,ios:in);cin.clear();/*string contents;*/if (in()couterror open!endl;/ofstream outfile(fl.txt,ofstream:app);/ofstream outfile(fl.txt,ios:out);/if (!outfile)/coutopen error!salsal_size.serialsalsal_size.marketsalsal_size.posnosalsal_size.datesalsal_size.snsalsal_
7、size.idsalsal_size.numsalsal_size.pricesalsal_size.total;sal_size+;cout文檔name的長(zhǎng)度是:sal_sizeendl;/char Tc;/Tc=getchar();/coutTcendl;int I;for (int i=0; isal_size;i+)/sali.print();if (sali.num0)sali.num=-sali.num;sali.date.assign(sali.serial,0,8);outfilesali.serialtsali.markettsali.datetsali.sntsali.id
8、tsali.numtsali.priceendl;I=i;cout文檔fl.txt的長(zhǎng)度是:sal_sizetITTc;/TTc=getchar();coutTTcendl;in();/out();return 0;運(yùn)行結(jié)果: 實(shí)驗(yàn)二 數(shù)據(jù)立方體與聯(lián)機(jī)分析處理構(gòu)建 一、實(shí)驗(yàn)?zāi)康?1、熟悉 VC+編程工具和基本數(shù)據(jù)立方體構(gòu)建、聯(lián)機(jī)分析處理算法。 2、建立一致的高質(zhì)量的關(guān)系型數(shù)據(jù)庫(kù)。 3、在建立的數(shù)據(jù)庫(kù)基礎(chǔ)上建立基本數(shù)據(jù)立方體。 4、寫出實(shí)驗(yàn)報(bào)告。 二、實(shí)驗(yàn)原理 1、關(guān)系型數(shù)據(jù)庫(kù) 關(guān)系數(shù)據(jù)庫(kù),是創(chuàng)建在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù),借助于集合代數(shù)等數(shù)學(xué)概 念和方法來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)
9、構(gòu)、關(guān)系操作集合、關(guān) 系完整性約束三部分組成。 2、數(shù)據(jù)立方體 一種多維數(shù)據(jù)模型,允許以多維對(duì)數(shù)據(jù)建模和觀察。它由維和事實(shí)定義。 維是一個(gè)單位想要的透視或?qū)嶓w。每個(gè)維可以有一個(gè)與人相關(guān)聯(lián)的表,稱為維表,它進(jìn)一步描述維,如 item 維的維表包含屬性 Name、time、type 等。 事實(shí):多維數(shù)據(jù)模型圍繞諸如銷售這樣的主題組織,主題用事實(shí)表示, 事實(shí)是數(shù)值度量的。 3、OLAP 操作 上卷:沿著一個(gè)維的概念分層向上攀升或通過(guò)維歸約在數(shù)據(jù)立方體上進(jìn)行聚集。 下鉆:上卷的逆操作,可能過(guò)沿維的概念分層向下或引入附加的維來(lái)實(shí)現(xiàn)。 切片:在給定的數(shù)據(jù)立方體的一個(gè)維上進(jìn)行選擇,導(dǎo)致一個(gè)子立方體。就是數(shù)據(jù)
10、立方體的某一層數(shù)據(jù)。 切換:在兩個(gè)或多個(gè)維上選擇,定義子立方體。就是數(shù)據(jù)立方體某一層 數(shù)據(jù)中的某一塊。4、數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì) 選取待建模的商務(wù)處理:都有哪些商務(wù)過(guò)程,如訂單、發(fā)票、發(fā)貨、庫(kù) 存、記賬管理、銷售或一般分類賬。 選取商務(wù)處理的粒度:對(duì)于商務(wù)處理,該粒度是基本的,在事實(shí)表中是 數(shù)據(jù)的原子級(jí),如單個(gè)事務(wù)、一天的快照等。 選取用于每個(gè)事實(shí)表記錄的維:典型的維是時(shí)間、商品、顧客、供應(yīng)商、 倉(cāng)庫(kù)、事務(wù)類型和狀態(tài)。 選取將安放在每個(gè)事實(shí)表記錄中的度量:典型的度量是可加的數(shù)值量, 如 dollars_sold 和 units_sold。三、實(shí)驗(yàn)內(nèi)容和步驟 1、實(shí)驗(yàn)內(nèi)容(1)、用 VC+編程工具編寫程
11、序,建立關(guān)系型數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),建立數(shù)據(jù)立方體,并在實(shí)驗(yàn)報(bào)告中寫出主要的過(guò)程和采用的方法。 建立的數(shù)據(jù)立方體的維度為 3,分別是商品大類、商店編號(hào)和時(shí)間。 具體要求:1、建立三個(gè)存儲(chǔ)表格(txt 文件)分別存儲(chǔ) 1019、1020、1021 的數(shù)據(jù); 2、每個(gè) txt 文件橫向?yàn)樯唐反箢悾ㄉ唐?ID 前五位)10010 油、 10020 面制品、10030 米和粉、10088 糧油類贈(zèng)品; 3、每個(gè) txt 縱向?yàn)槿掌?13-19 這一個(gè)星期表中存儲(chǔ)的值為總銷 售額。 (2)、進(jìn)行簡(jiǎn)單的 OLAP 數(shù)據(jù)查詢 具體要求:能查出 2020 商店 10010 油類商品 13 日總的銷售額; 能計(jì)算出 2
12、020 商店 10030 米和粉總的銷售額; 能查詢出指定商店指定種類商品的銷售額;(附加題)2、實(shí)驗(yàn)步驟 (1)仔細(xì)研究和審查數(shù)據(jù),找出應(yīng)當(dāng)包含在你分析中的屬性或維去掉不需要 的數(shù)據(jù)。 (2)選擇合適的存儲(chǔ)結(jié)構(gòu),實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)訪問(wèn),并實(shí)現(xiàn)相應(yīng)的功能。(3)經(jīng)過(guò)數(shù)據(jù)預(yù)處理后的數(shù)值已經(jīng)補(bǔ)充了缺失值,并統(tǒng)一了格式。(4)讀取預(yù)處理數(shù)據(jù)的商品 ID、日期、計(jì)算出銷售額。四、實(shí)驗(yàn)結(jié)果源程序:#include#include#include#includeusing namespace std;class Sales_npublic:string serial;int market;char date1
13、0;int sn; int id;float num;float price;int main()char name150,name250;ifstream infile;cout輸入實(shí)驗(yàn)一中經(jīng)過(guò)預(yù)處理的數(shù)據(jù)文件:fl.txtname1;in(name1,ios:in); /*string contents;*/if(in()cout error open! endl;cout輸入實(shí)驗(yàn)二要保存的存有數(shù)據(jù)立方體的文件名:cube3.txtname2;ofstream outfile;out(name2,ios:out);if(!outfile)coutopen eror! salsal_size
14、.serial salsal_size.market salsal_size.date salsal_size.sn salsal_size.id salsal_size.num salsal_size.price;couti: iendl;for (int k=0;k3;k+) /此for循環(huán)默認(rèn)店號(hào)是從1019連續(xù)增加的3個(gè)整數(shù)int Km=1019+k;/coutKm: Kmendl;if (sali.market=Km)char p= sali.date7;if(sali.id/100=10010 )switch(p)case 3:totalk00+=sali.num*sali.pri
15、ce;break;case 4:totalk10+=sali.num*sali.price;break;case 5:totalk20+=sali.num*sali.price;break;case 6:totalk30+=sali.num*sali.price;break;case 7:totalk40+=sali.num*sali.price;break;case 8:totalk50+=sali.num*sali.price;break;case 9:totalk60+=sali.num*sali.price;break;if(sali.id/100=10020 )switch(p)ca
16、se 3:totalk01+=sali.num*sali.price;break;case 4:totalk11+=sali.num*sali.price;break;case 5:totalk21+=sali.num*sali.price;break;case 6:totalk31+=sali.num*sali.price;break;case 7:totalk41+=sali.num*sali.price;break;case 8:totalk51+=sali.num*sali.price;break;case 9:totalk61+=sali.num*sali.price;break;i
17、f(sali.id/100=10030)switch(p) case 3:totalk02+=sali.num*sali.price;break;case 4:totalk12+=sali.num*sali.price;break;case 5:totalk22+=sali.num*sali.price;break;case 6:totalk32+=sali.num*sali.price;break;case 7:totalk42+=sali.num*sali.price;break;case 8:totalk52+=sali.num*sali.price;break;case 9:total
18、k62+=sali.num*sali.price;break;else if(sali.id/100=10088)switch(p) case 3:totalk03+=sali.num*sali.price;break;case 4:totalk13+=sali.num*sali.price;break;case 5:totalk23+=sali.num*sali.price;break;case 6:totalk33+=sali.num*sali.price;break;case 7:totalk43+=sali.num*sali.price;break;case 8:totalk53+=s
19、ali.num*sali.price;break;case 9:totalk63+=sali.num*sali.price;break;if (sal_size5000)sal_size+;i=sal_size;elsesal_size=0;i=sal_size;/coutsal_size+=sal_sizeendl;/sal.clear();/?if (outfile)for (int kk=0;kk3;kk+)coutkkkkendl;cout銷售日期t10010油 10020面制品 10030米和粉 10088糧油類贈(zèng)品 endl;int j = 20030413;/?for (int
20、i=0;i7;+i)outfile totalkki0ttotalkki1ttotalkki2ttotalkki3tendl;coutj totalkki0ttotalkki1ttotalkki2ttotalkki3tendl;j+;/else/cerr無(wú)法打開(kāi)文件! totalm0 totalm1 totalm2totalm3;/m+;/if(in()/cout error open! endl;/float sum=0.0;/for(int i=0;i7;+i)/sum+=totali2;/cout2020號(hào)商鋪10010油類商品14日銷售額為:total10endl;/cout2020號(hào)
21、商鋪10030米和粉類商品銷售總額為:sum0) 算法在根據(jù)頻繁 k-1 項(xiàng)集生成頻繁 K 項(xiàng)集過(guò)程中要計(jì)算頻繁 K 項(xiàng)集中每個(gè) 元素的支持度,并計(jì)算 K 項(xiàng)集中每個(gè) k-1 項(xiàng)子集是否在 Fk-1中,上述兩條任何一 條不滿足,則刪去這個(gè) K 項(xiàng)集中的元素2、實(shí)驗(yàn)步驟 (1)打開(kāi)試驗(yàn)用數(shù)據(jù),讀取出同一流水號(hào)的商品 ID 并取前 5 位,生成以行為 單位生成事務(wù)數(shù)據(jù)集 transitions; (2)ind_frequent_1-itemsets 生成頻繁一項(xiàng)集 for(each transaction in transitions) for(eachitem intransaction) on
22、eItemSet; oneItemSet.count+;/對(duì) 1 項(xiàng)集進(jìn)行計(jì)數(shù) 3、apriori-gen (Lk-1) 候選集產(chǎn)生算法 For all itemset pLk-1 do For all itemset qLk-1 do If p.item1=q.item1, p.item2=q.item2, ,p.itemk-2=q.itemk-2, p.itemk-1!=q.itemk-1 then begin c=pq/p、q 合并后任意的 Lk-1子集 if has_infrequent_subset(c, Lk-1) then delete c /存在 c 不屬于 Lk-1剪枝 el
23、se add c to Ck End Return Ck 4、has_infrequent_subset(c, Lk-1)判斷候選集的元素 For all (k-1)-subsets of c do If Not(SLk-1) THEN return TRUE; Return FALSE;四、實(shí)驗(yàn)結(jié)果源程序:#include#include#include#includeusing namespace std;class Sales_npublic:string serial;int market;16char date10;int sn;int id;float num;float pric
24、e;int main()/打開(kāi)并創(chuàng)建txt 文件/char name150,name250;ifstream infile;cout選擇要打開(kāi)的文件:1019n.txt 1020n.txt 1021n.txtname1;in(name1,ios:in);/*string contents;*/if(in()cout error open! endl;cout要保存的文件名:name2;ofstream out);if(!outfile)coutopen eror! salsal_size.serial salsal_size.market salsal_size.date salsal_siz
25、e.snsalsal_size.id salsal_size.num salsal_size.price;sal_size+;/取統(tǒng)一流水的商品ID 前三位按升序無(wú)重復(fù)的保存起來(lái)/new100=sal0.id/10000;for (int i =1;isal_size;i+)if (sali.serial=sali-1.serial)new1mn=sali.id/10000; /流水號(hào)相同n+;/outfilesali.id/100t;else/排序/for(int k = 0;kn;k+)for(int j = 0;j new1mj+1)int t = new1mj;new1mj = new
26、1mj+1;new1mj+1 = t;for(int l= 0;l n;l+)if(new1ml-1!=new1ml)outfilenew1mlt;outfileendl;m+;n = 0;new1mn=sali.id/10000;n+;in();/關(guān)閉文件out();/關(guān)閉文件system( PAUSE );Apriori 算法挖掘頻繁項(xiàng)集support = 2#include 18#include #include #include #include #include #include #include #include using namespace std;const int mins
27、up=2; /設(shè)置最小支持度map items_count; /統(tǒng)計(jì)各個(gè)項(xiàng)集的數(shù)目vector mergeItem(vector vect1,vector vect2,int round); /合并生成新的候選項(xiàng)集int isExist(vector item,vectorvector items); /判斷項(xiàng)集item 是否已經(jīng)存在候選項(xiàng)集集合items 中,存在則返回vector mergeItem(vector vect1,vector vect2,int round) /判斷兩個(gè)項(xiàng)集是否可以合并(要求只有一項(xiàng)不同)成一個(gè)新的項(xiàng)集(做為候選集)/剪枝工作/int count=0; /統(tǒng)計(jì)
28、兩個(gè)vector 中相同的項(xiàng)的數(shù)目vector vect;map tempMap; /輔助判斷兩個(gè)vector 中重復(fù)的項(xiàng)for(vector:size_type st=0;stvect1.size();st+)tempMapvect1st+;vect.push_back(vect1st);for(int st=0;stvect2.size();st+)tempMapvect2st+;if(tempMapvect2st=2) /表示這兩項(xiàng)相同count+;elsevect.push_back(vect2st);if(count+1)!=round) /要求兩個(gè)項(xiàng)目集只有一個(gè)項(xiàng)目不相同,其他都相
29、同vect.clear();return vect;19int isExist(vector item,vectorvector items) /判斷項(xiàng)集item 是否已經(jīng)存在候選項(xiàng)集集合items 中,存在則返回int count; /統(tǒng)計(jì)相同的項(xiàng)的數(shù)目if(!items.empty()for(vectorvector :size_type ix=0;ix!=items.size();ix+)count=0;for(vector:size_type iy=0;iy!=itemsix.size();iy+)for(vector:size_type iz=0;iz!=item.size();iz
30、+)if(itemiz=itemsix.at(iy)count+;if(count=item.size() /表示存在return 1;return 0;int main()vectorvector datavec; /原始數(shù)據(jù)項(xiàng)集vectorvector candidatevec; /候選項(xiàng)集vectorvector frequentvec; /頻繁項(xiàng)集vectormap bitmap; /判斷某個(gè)項(xiàng)目在某一個(gè)事務(wù)中是否存在,存在則值為1,反之為0long trancount=0; /原始事務(wù)總數(shù)char name150;ifstream file;cout選擇要打開(kāi)的文件:new1.txt
31、 new2.txt new3.txtname1;(name1,ios:in); /打開(kāi)數(shù)據(jù)文件if(!file) /檢查文件是否打開(kāi)成功coutFail to open data file!endl;20return 1;elsestring temp;vector item; /項(xiàng)集的臨時(shí)vectorint begin,end;while(getline() /一行一行讀入數(shù)據(jù)trancount+;begin=0;temp.erase(0,temp.find_first_not_of(rtn ); /去除字符串首部的空格temp.erase(temp.find_last_not_of(rtn
32、)+1);while(end=temp.find(t,begin)!=string:npos) /每一個(gè)事務(wù)中的項(xiàng)是以t為分隔符的item.push_back(temp.substr(begin,end-begin); /將每一個(gè)項(xiàng)插入item 中begin=end+1;item.push_back(temp.substr(begin); /一個(gè)事務(wù)中的最后一項(xiàng)datavec.push_back(item); /將一個(gè)事務(wù)中的所有項(xiàng)當(dāng)成一個(gè)整體插入另一個(gè)大的vector中item.clear(); /清空itemcoutPress Enter to continue the processin
33、g; /pausegetchar();map item_map;for(vectorvector :size_type ix=0;ix!=datavec.size();+ix)for(vector:size_type iy=0;iy!=datavecix.size();+iy)items_countdatavecix.at(iy)+; /該項(xiàng)集的計(jì)數(shù)加item_mapdatavecix.at(iy)=1; /表示該項(xiàng)目在該事務(wù)中存在,值為1,否則默認(rèn)為0bitmap.push_back(item_map);item_map.clear(); /這里一定要清空一下map:const_iterat
34、or map_it=items_count.begin();cout候選項(xiàng)集1:endl;while(map_it!=items_count.end() /輸出候選1 項(xiàng)集coutfirstendl;map_it+;coutPress Enter to continue the processing; /pause21getchar();map_it=items_count.begin();cout頻繁1 項(xiàng)集(minsup=2):secondminsup) /支持度大于2cout.setf(ios:fixed);coutfirst 支持度:setprecision(6)secondfirst
35、);frequentvec.push_back(item); /插入候選項(xiàng)集的vector 中item.clear();map_it+;if(!frequentvec.empty() /判斷頻繁項(xiàng)集是否為空,為空則退出coutPress Enter to continue the processing; /pausegetchar();int round=1; /生成候選項(xiàng)集輪次int found; /是否包含有非頻繁的子集,為表示含有,有的話進(jìn)行剪枝string tempstr;vector tempvec;do/生成下一輪的候選項(xiàng)集vectorvector :size_type st=fr
36、equentvec.size();candidatevec.clear(); /清除上一輪的候選項(xiàng)集for(vectorvector :size_type st1=0;st1st;st1+)for(vectorvector :size_type st2=st1+1;st2st;st2+)found=0;item=mergeItem(frequentvecst1,frequentvecst2,round); /調(diào)用函數(shù)合并生成下一輪的候選項(xiàng)集if(!item.empty()&!isExist(item,candidatevec) /若經(jīng)過(guò)判斷處理后返回的vector 不為空且還不存在該項(xiàng)集,則作
37、為候選項(xiàng)集加入候選vector 中/實(shí)現(xiàn)剪枝/string teststr;int testint;tempvec=item;sort(tempvec.begin(),tempvec.end();while(next_permutation(tempvec.begin(),tempvec.end() /遍歷所有的組22合for(vector:size_type tempst=0;tempst!=tempvec.size();tempst+) /拼接出該字符串組合tempstr+=tempvectempst;for(map:const_iteratortempit=items_count.beg
38、in();tempit!=items_count.end();tempit+)if(tempit-secondfirst)!=string:npos) /表示包含有非頻繁子項(xiàng)集found=1;teststr=tempit-first;testint=tempit-second;break;tempstr.erase();if(found) /包含非頻繁子項(xiàng)集break;if(!found) /只有不包含有非頻繁子項(xiàng)集才加入候選項(xiàng)集中,否則剪枝掉candidatevec.push_back(item);found=0; /重置frequentvec.clear(); /清除上一輪的頻繁項(xiàng)集rou
39、nd+;cout候選round項(xiàng)集:endl;for(vectorvector :size_type ix=0;ix!=candidatevec.size();+ix) /輸出候選項(xiàng)集23cout;for(vector:size_type iy=0;iy!=candidatevecix.size();+iy)coutcandidatevecix.at(iy) ;coutendl;if(candidatevec.empty() /候選項(xiàng)集為空cout候選round項(xiàng)集為空!endl;int flag; /標(biāo)記某個(gè)項(xiàng)集在某條事務(wù)中是否出現(xiàn),出現(xiàn)為1,不出現(xiàn)為0int count; /統(tǒng)計(jì)某個(gè)想集在整個(gè)交易的事務(wù)集中出現(xiàn)的次數(shù)string tempstr; /臨時(shí)string,用于串接各個(gè)項(xiàng)成一個(gè)字符串int mark; /為避免執(zhí)行多余的字符串串接工作for(vectorvector :size_type sx=0;sx!=candidatevec.siz
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上饒衛(wèi)生健康職業(yè)學(xué)院《人類的生育與健康》2023-2024學(xué)年第二學(xué)期期末試卷
- 梧州醫(yī)學(xué)高等??茖W(xué)?!掇r(nóng)村小學(xué)復(fù)式教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 曲靖職業(yè)技術(shù)學(xué)院《文學(xué)翻譯(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北科技學(xué)院《女子乒乓球(I)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東協(xié)和學(xué)院《藥理學(xué)理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古鴻德文理學(xué)院《國(guó)際貿(mào)易實(shí)務(wù)模擬實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 延安大學(xué)西安創(chuàng)新學(xué)院《素描造型人體訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南女子職業(yè)學(xué)院《土木工程建?!?023-2024學(xué)年第二學(xué)期期末試卷
- 貴州輕工職業(yè)技術(shù)學(xué)院《高級(jí)遙感》2023-2024學(xué)年第二學(xué)期期末試卷
- 秦皇島工業(yè)職業(yè)技術(shù)學(xué)院《建筑裝飾材料與工程概預(yù)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 職業(yè)衛(wèi)生工程控制技術(shù)課件
- 4.1比的意義 導(dǎo)學(xué)案 2022-2023學(xué)年六年級(jí)數(shù)學(xué)上冊(cè)-人教版(含答案)
- 部編人教版九年級(jí)下冊(cè)初中歷史全冊(cè)同步練習(xí)(作業(yè)設(shè)計(jì))
- 孔子仁學(xué)思想
- 六年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)教案(II)
- 高中英語(yǔ)常用詞匯表(動(dòng)詞、名詞、形容詞和副詞)
- 下肢深靜脈血栓形成靜脈置管溶栓術(shù)后-用藥及出血觀察護(hù)理-PPT
- 16萬(wàn)噸_年液化氣綜合利用裝置廢酸環(huán)保綜合利用項(xiàng)目環(huán)境報(bào)告書(shū)
- T∕CAEPI 43-2022 電絮凝法污水處理技術(shù)規(guī)程
- 農(nóng)村商業(yè)銀行合規(guī)風(fēng)險(xiǎn)管理暫行辦法
- 油管、套管等規(guī)格對(duì)照表
評(píng)論
0/150
提交評(píng)論