




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)挖掘?qū)嶒?yàn)報(bào)告目錄1 .關(guān)聯(lián)規(guī)則的基本概念和方法11.1 數(shù)據(jù)挖掘11.1.1 數(shù)據(jù)挖掘的概念11.1.2 數(shù)據(jù)挖掘的方法與技術(shù)11.2 關(guān)聯(lián)規(guī)則21.2.1 關(guān)聯(lián)規(guī)則的概念21.2.2 關(guān)聯(lián)規(guī)則的實(shí)現(xiàn)一一Apriori算法32 .用Matlab實(shí)現(xiàn)關(guān)聯(lián)規(guī)則52.1 Matlab概述52.2 基于Matlab的Apriori算法63 .用java實(shí)現(xiàn)關(guān)聯(lián)規(guī)則103.1 java界面描述103.2 java關(guān)鍵代碼描述134、實(shí)驗(yàn)總結(jié)184.1 實(shí)驗(yàn)的不足和改進(jìn)184.2 實(shí)驗(yàn)心得191.關(guān)聯(lián)規(guī)則的基本概念和方法1.1 數(shù)據(jù)挖掘1.1.1 數(shù)據(jù)挖掘的概念計(jì)算機(jī)技術(shù)和通信技術(shù)的迅猛發(fā)展將人類社會(huì)
2、帶入到了信息時(shí)代。在最近十幾年里,數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)急劇增大。數(shù)據(jù)挖掘就是信息技術(shù)自然進(jìn)化的結(jié)果。數(shù)據(jù)挖掘可以從大量的、不完全的、有噪聲的、模糊的、隨機(jī)的實(shí)際應(yīng)用數(shù)據(jù)中,提取隱含在其中的,人們事先不知道的但又是潛在有用的信息和知識(shí)的過(guò)程。許多人將數(shù)據(jù)挖掘視為另一個(gè)流行詞匯數(shù)據(jù)中的知識(shí)發(fā)現(xiàn)(KDD)的同義詞,而另一些人只是把數(shù)據(jù)挖掘視為知識(shí)發(fā)現(xiàn)過(guò)程的一個(gè)基本步驟。知識(shí)發(fā)現(xiàn)過(guò)程如下: 數(shù)據(jù)清理(消除噪聲和刪除不一致的數(shù)據(jù)) 數(shù)據(jù)集成(多種數(shù)據(jù)源可以組合在一起) 數(shù)據(jù)轉(zhuǎn)換(從數(shù)據(jù)庫(kù)中提取和分析任務(wù)相關(guān)的數(shù)據(jù)) 數(shù)據(jù)變換(從匯總或聚集操作,把數(shù)據(jù)變換和統(tǒng)一成適合挖掘的形式) 數(shù)據(jù)挖掘(基本步驟,使用智
3、能方法提取數(shù)據(jù)模式) 模式評(píng)估(根據(jù)某種興趣度度量,識(shí)別代表知識(shí)的真正有趣的模式) 知識(shí)表示(使用可視化和知識(shí)表示技術(shù),向用戶提供挖掘的知識(shí))。1.1.2 數(shù)據(jù)挖掘的方法與技術(shù)數(shù)據(jù)挖掘吸納了諸如數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)技術(shù)、統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)、高性能計(jì)算、模式識(shí)別、神經(jīng)網(wǎng)絡(luò)、數(shù)據(jù)可視化、信息檢索、圖像和信號(hào)處理以及空間數(shù)據(jù)分析技術(shù)的集成等許多應(yīng)用領(lǐng)域的大量技術(shù)。數(shù)據(jù)挖掘主要包括以下方法。神經(jīng)網(wǎng)絡(luò)方法:神經(jīng)網(wǎng)絡(luò)由于本身良好的魯棒性、自組織自適應(yīng)性、并行處理、分布存儲(chǔ)和高度容錯(cuò)等特性非常適合解決數(shù)據(jù)挖掘的問(wèn)題,因此近年來(lái)越來(lái)越受到人們的關(guān)注。典型的神經(jīng)網(wǎng)絡(luò)模型主要分3大類:以感知機(jī)、bp反向傳播模型、函數(shù)型
4、網(wǎng)絡(luò)為代表的,用于分類、預(yù)測(cè)和模式識(shí)別的前饋式神經(jīng)網(wǎng)絡(luò)模型;以hopfield的離散模型和連續(xù)模型為代表的,分別用于聯(lián)想記憶和優(yōu)化計(jì)算的反饋式神經(jīng)網(wǎng)絡(luò)模型;以art模型、koholon模型為代表的,用于聚類的自組織映射方法。神經(jīng)網(wǎng)絡(luò)方法的缺點(diǎn)是“黑箱"性,人們難以理解網(wǎng)絡(luò)的學(xué)習(xí)和決策過(guò)程。遺傳算法:遺傳算法是一種基于生物自然選擇與遺傳機(jī)理的隨機(jī)搜索算法,是一種仿生全局優(yōu)化方法。遺傳算法具有的隱含并行性、易于和其它模型結(jié)合等性質(zhì)使得它在數(shù)據(jù)挖掘中被加以應(yīng)用。sunil已成功地開(kāi)發(fā)了一個(gè)基于遺傳算法的數(shù)據(jù)挖掘工具,利用該工具對(duì)兩個(gè)飛機(jī)失事的真實(shí)數(shù)據(jù)庫(kù)進(jìn)行了數(shù)據(jù)挖掘?qū)嶒?yàn),結(jié)果表明遺傳算法是
5、進(jìn)行數(shù)據(jù)挖掘的有效方法之一。遺傳算法的應(yīng)用還體現(xiàn)在與神經(jīng)網(wǎng)絡(luò)、粗糙集等技術(shù)的結(jié)合上。如利用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),在不增加錯(cuò)誤率的前提下,刪除多余的連接和隱層單元;用遺傳算法和bp算法結(jié)合訓(xùn)練神經(jīng)網(wǎng)絡(luò),然后從網(wǎng)絡(luò)提取規(guī)則等。但遺傳算法的算法較復(fù)雜,收斂于局部極小的較早收斂問(wèn)題尚未解決。決策樹(shù)方法:決策樹(shù)是一種常用于預(yù)測(cè)模型的算法,它通過(guò)將大量數(shù)據(jù)有目的分類,從中找到一些有價(jià)值的,潛在的信息。它的主要優(yōu)點(diǎn)是描述簡(jiǎn)單,分類速度快,特別適合大規(guī)模的數(shù)據(jù)處理。粗糙集方法:粗糙集理論是一種研究不精確、不確定知識(shí)的數(shù)學(xué)工具。粗糙集方法有幾個(gè)優(yōu)點(diǎn):不需要給出額外信息;簡(jiǎn)化輸入信息的表達(dá)空間;算法簡(jiǎn)單,易于
6、操作。粗糙集處理的對(duì)象是類似二維關(guān)系表的信息表。目前成熟的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)和新發(fā)展起來(lái)的數(shù)據(jù)倉(cāng)庫(kù)管理系統(tǒng),為粗糙集的數(shù)據(jù)挖掘奠定了堅(jiān)實(shí)的基礎(chǔ)。但粗糙集的數(shù)學(xué)基礎(chǔ)是集合論,難以直接處理連續(xù)的屬性。而現(xiàn)實(shí)信息表中連續(xù)屬性是普遍存在的。因此連續(xù)屬性的離散化是制約粗糙集理論實(shí)用化的難點(diǎn)。覆蓋正例排斥反例方法:它是利用覆蓋所有正例、排斥所有反例的思想來(lái)尋找規(guī)則。首先在正例集合中任選一個(gè)種子,到反例集合中逐個(gè)比較。與字段取值構(gòu)成的選擇子相容則舍去,相反則保留。按此思想循環(huán)所有正例種子,將得到正例的規(guī)則(選擇子的合取式)。比較典型的算法有michalski的aq11方法、洪家榮改進(jìn)的aq15方法以及他的a
7、e5方法。統(tǒng)計(jì)分析方法:在數(shù)據(jù)庫(kù)字段項(xiàng)之間存在兩種關(guān)系:函數(shù)關(guān)系(能用函數(shù)公式表示的確定性關(guān)系)和相關(guān)關(guān)系(不能用函數(shù)公式表示,但仍是相關(guān)確定性關(guān)系),對(duì)它們的分析可采用統(tǒng)計(jì)學(xué)方法,即利用統(tǒng)計(jì)學(xué)原理對(duì)數(shù)據(jù)庫(kù)中的信息進(jìn)行分析??蛇M(jìn)行常用統(tǒng)計(jì)(求大量數(shù)據(jù)中的最大值、最小值、總和、平均值等)、回歸分析(用回歸方程來(lái)表示變量間的數(shù)量關(guān)系)、相關(guān)分析(用相關(guān)系數(shù)來(lái)度量變量間的相關(guān)程度)、差異分析(從樣本統(tǒng)計(jì)量的值得出差異來(lái)確定總體參數(shù)之間是否存在差異)等。模糊集方法:即利用模糊集合理論對(duì)實(shí)際問(wèn)題進(jìn)行模糊評(píng)判、模糊決策、模糊模式識(shí)別和模糊聚類分析。系統(tǒng)的復(fù)雜性越高,模糊性越強(qiáng),一般模糊集合理論是用隸屬度來(lái)
8、刻畫(huà)模糊事物的亦此亦彼性的。李德毅等人在傳統(tǒng)模糊理論和概率統(tǒng)計(jì)的基礎(chǔ)上,提出了定性定量不確定性車t換模型-云模型,并形成了云理論。還有接下來(lái)重點(diǎn)介紹的關(guān)聯(lián)規(guī)則方法。1.2 關(guān)聯(lián)規(guī)則1.2.1 關(guān)聯(lián)規(guī)則的概念關(guān)聯(lián)規(guī)則的一個(gè)典型例子是購(gòu)物籃分析。它是由著名的全國(guó)五百?gòu)?qiáng)沃爾瑪發(fā)現(xiàn)的,沃爾瑪有著世界最大的數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng),為了能夠準(zhǔn)確了解顧客在其門店的購(gòu)買習(xí)慣,沃爾瑪對(duì)其顧客的購(gòu)物行為進(jìn)行購(gòu)物籃分析,想知道顧客經(jīng)常一起購(gòu)買的商品有哪些。沃爾瑪數(shù)據(jù)倉(cāng)庫(kù)里集中了其各門店的詳細(xì)原始交易數(shù)據(jù)。在這些原始交易數(shù)據(jù)的基礎(chǔ)上,沃爾瑪利用數(shù)據(jù)挖掘方法對(duì)這些數(shù)據(jù)進(jìn)行分析和挖掘。一個(gè)意外的發(fā)現(xiàn)是:"跟尿布一起購(gòu)買最
9、多的商品竟是啤酒!經(jīng)過(guò)大量實(shí)際調(diào)查和分析,揭示了一個(gè)隱藏在“尿布與啤酒”背后的美國(guó)人的一種行為模式:在美國(guó),一些年輕的父親下班后經(jīng)常要到超市去買嬰兒尿布,而他們中有30%40%的人同時(shí)也為自己買一些啤酒。產(chǎn)生這一現(xiàn)象的原因是:美國(guó)的太太們常叮囑她們的丈夫下班后為小孩買尿布,而丈夫們?cè)谫I尿布后又隨手帶回了他們喜歡的啤酒。關(guān)聯(lián)規(guī)則由此進(jìn)入人們的視野。關(guān)聯(lián)規(guī)則挖掘被定義為假設(shè)I是項(xiàng)的集合。給定一個(gè)交易數(shù)據(jù)庫(kù)D,其中每個(gè)事務(wù)(Transaction)t是I的非空子集,即每一個(gè)交易都與一個(gè)唯一的標(biāo)識(shí)符TID(TransactionID)對(duì)應(yīng)。關(guān)聯(lián)規(guī)則在D中的支持度(support)是D中事務(wù)同時(shí)包含X、
10、Y的百分比,即概率;置信度(confidence)是包含X的事務(wù)中同時(shí)又包含Y的百分比,即條件概率。下面舉個(gè)例子來(lái)更好地說(shuō)明關(guān)聯(lián)規(guī)則。給定AllElectronics關(guān)系數(shù)據(jù)庫(kù),一個(gè)數(shù)據(jù)挖掘系統(tǒng)可能發(fā)現(xiàn)如下形式的關(guān)聯(lián)規(guī)則Age(X,"20.29")入income(X,"20,000.29,000")?=>buys(X,“CD-Player”)Support=20%,Confident=60%其中X是變量,代表顧客,該關(guān)聯(lián)規(guī)則表示所研究的AllElectronics數(shù)據(jù)庫(kù)中,顧客有20%在20-29歲,年收入在20,000-29,000之間,并且購(gòu)買
11、CD機(jī);這個(gè)年齡和收入組的顧客購(gòu)買CD機(jī)的可能性有60%。1.2.2 關(guān)聯(lián)規(guī)則的實(shí)現(xiàn)一一Apriori算法算法描述Apriori算法在發(fā)現(xiàn)關(guān)聯(lián)規(guī)則領(lǐng)域具有很大影響力。算法命名源于算法使用了頻繁項(xiàng)集性質(zhì)的先驗(yàn)(prior)知識(shí)。在具體實(shí)驗(yàn)時(shí),Apriori算法將發(fā)現(xiàn)關(guān)聯(lián)規(guī)則的過(guò)程分為兩個(gè)步驟:第一步通過(guò)迭代,檢索出事務(wù)數(shù)據(jù)庫(kù)中的所有頻繁項(xiàng)集,即支持度不低于用戶設(shè)定的閾值的項(xiàng)集;第二步利用頻繁項(xiàng)集構(gòu)造出滿足用戶最小信任度的規(guī)則。其中,挖掘或識(shí)別出所有頻繁項(xiàng)集是該算法的核心,占整個(gè)計(jì)算量的大部分。Apriori算法使用一種稱作逐層搜索的迭代方法,K項(xiàng)集用于搜索(K+1)項(xiàng)集。首先,通過(guò)
12、掃描數(shù)據(jù)庫(kù),累積每個(gè)項(xiàng)的計(jì)數(shù),并收集滿足最小支持度的項(xiàng),找出頻繁1項(xiàng)集的集合。該集合記作L1。然后,L1用于尋找頻繁2項(xiàng)集的集合L2,L2用于尋找L3,如此下去,直到不能再找到頻繁K項(xiàng)集。為提高頻繁項(xiàng)集逐層產(chǎn)生的效率,一種稱作Apriori的重要性質(zhì)用于壓縮搜索空間。Apriori性質(zhì):頻繁項(xiàng)集的所有非空子集也必須是頻繁的。如何在算法中使用Apriori性質(zhì)?主要有兩步過(guò)程組成:連接步和剪枝步。(1)連接步:為找Lk,通過(guò)將L(k-i)與自身連接產(chǎn)生候選K項(xiàng)集的集合。該候選項(xiàng)集合記作Ck。設(shè)l1和l2是Lk-1中的項(xiàng)集。記號(hào)hj表示li中的第j項(xiàng)。執(zhí)行Lg)連接L(k-i),如果它們的前(K-
13、2)項(xiàng)相同的話,其中Lg)的元素是可連接的。(2)剪枝步:為壓縮Ck,可以用Apriori的性質(zhì):任何非頻繁的(K-1)項(xiàng)集都不是頻繁K項(xiàng)集的子集。因此,如果候選K項(xiàng)集的(K-1)項(xiàng)子集不在Lg)中,則該候選也不可能是頻繁的,從而可以從Ck中刪除。 算法舉例Apriori算法的偽代碼Input:DB,min_supOutput:result=所有頻繁項(xiàng)集的他們的支持度方法:Result:=;K:=1;Ci:=所有的1-項(xiàng)集While(Ck)dobegin為每一個(gè)Ck中的項(xiàng)集生成一個(gè)計(jì)數(shù)器;For(i=1;i<DB;i+)begin對(duì)第i個(gè)記錄T支持的每一個(gè)Ck中的項(xiàng)集,其計(jì)
14、數(shù)器加1;endLk:=Ck中滿足大于min_sup的全體項(xiàng)集;Lk支持度保留;Result:=Result?LKCk+i:=所有的(k+1)-項(xiàng)集中滿足其k-子集都在Lk里的全體;k=k+1;enddo下面舉個(gè)例子來(lái)說(shuō)明Apriori算法。設(shè)某個(gè)數(shù)據(jù)庫(kù)中有9個(gè)事務(wù)。即|D|=9。使用圖1.2解釋Apriori算法發(fā)現(xiàn)D中的頻繁項(xiàng)集表1.1某超市的銷售項(xiàng)目的事務(wù)記錄TIDItemsT10011,12,13T200I2J4T300I2J3T40011,14T500I1J3T60012,13T700I1J3T800I1J2J3J5T90011,12,13(1) 在算法的第一次迭代時(shí),每個(gè)項(xiàng)都是候選
15、1項(xiàng)集的集合C1的成員。算法簡(jiǎn)單地掃描所有的事務(wù),對(duì)每個(gè)項(xiàng)的出現(xiàn)次數(shù)計(jì)數(shù)。(2) 假設(shè)最小支持度計(jì)數(shù)為2,即,min_sup=2??梢钥隙l繁1項(xiàng)集的集合L1。(3) 為了發(fā)現(xiàn)頻繁2項(xiàng)集的集合L2,算法使用L1和L1的連接C2。注意,在剪枝步中,沒(méi)有候選從C2中刪除,因?yàn)檫@些候選的每個(gè)子集也是頻繁的。(4) 掃描數(shù)據(jù)庫(kù)D中的事務(wù),累方tC2中每個(gè)候選相集的支持計(jì)數(shù),如圖1.2的第二行中間的表所示。(5) 然后確定頻繁2項(xiàng)集的集合L2,它由C2中滿足最小支持度的候選2項(xiàng)集組成。(6) 候選3項(xiàng)集的集合C3的產(chǎn)生要用到Apriori的逐層搜索技術(shù),頻繁項(xiàng)集的所有子集都必須是頻繁的,給定一個(gè)候選k項(xiàng)
16、集,只需要檢查它們的(k-1)項(xiàng)集是否頻繁。如圖1.2中的第三行的第一個(gè)表所示。(7) 掃描D中事務(wù)以確定L3,它由C3中滿足最小支持的的候選3項(xiàng)集組成,如圖1.2中的第三行的第三個(gè)表所示。(8) 算法使用L3和L3連接產(chǎn)生候選4項(xiàng)集C40盡管會(huì)產(chǎn)生結(jié)果I1,I2,I3,I5,但是這個(gè)項(xiàng)集被剪去,因?yàn)樗淖蛹疘2,I3,I5不是頻繁白所以C4=空集,所以算法終止,找出所有的頻繁項(xiàng)集。由L性成,凝集J候選項(xiàng)集C3I1J2J3并對(duì)每個(gè)候選計(jì)數(shù)s候選項(xiàng)集0選出支持度>2的項(xiàng)集>頻繁項(xiàng)集L3I1J2J32I1J2J32I1J2J5I1J2J52I1J2J52圖6.2候選相集合頻繁項(xiàng)集的產(chǎn)生
17、,最小支持度為2掃描D,對(duì)于 每個(gè)候選集計(jì)數(shù)候選項(xiàng)集C1TIDItems116127136142152選出支持度 乂的項(xiàng)集頻繁項(xiàng)集LITIDItems116127136142152由L生成候選集伍候選項(xiàng)集a掃描D,并對(duì) 每個(gè)候選計(jì)數(shù)候選項(xiàng)集C2I1J2I1J24選出支持度 乂的項(xiàng)集113I1J34頻繁項(xiàng)集L2I1J4I1J41I1J24I1J34I1J5I1J522f3I2J34I1J524I2J4I2J42I2J34215I2J52I2J42I3J4I3J4012,15213,15I3J5141514,1502.用Matlab實(shí)現(xiàn)關(guān)聯(lián)規(guī)則2.1Matlab概述Matlab是由美國(guó)mathwo
18、rks公司發(fā)布的主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語(yǔ)言(如C、Fortran)的編輯模式,代表了當(dāng)今國(guó)際科學(xué)計(jì)算軟件的先進(jìn)水平。Matlab的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來(lái)解算問(wèn)題要比用C,FORTRAN等語(yǔ)言完成相同的事情簡(jiǎn)捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)
19、點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。由于Matlab使用矩陣作為其基本數(shù)據(jù)單位,所以使用Matlab進(jìn)彳AApriori算法的編輯有著先天的優(yōu)勢(shì),可以使代碼簡(jiǎn)潔易懂。下面就來(lái)介紹用Matlab編寫(xiě)的Apriori算法。2.2基于Matlab的Apriori算法采用的原始數(shù)據(jù)是上節(jié)表1.1的某超市的銷售項(xiàng)目的事務(wù)記錄。以下為基于Matlab的Apriori算法的源代碼以及相關(guān)解釋。sup=2;%假設(shè)支持度為2shw=11001;01010;01100;11010;10100;01100;10100;11101;11100;0表示。將%sh提事務(wù)矩陣,行表示一個(gè)事務(wù),列表示項(xiàng)目;若某一事務(wù)沒(méi)
20、有某項(xiàng),則該項(xiàng)目用上述表1.1的數(shù)據(jù)表示為事務(wù)矩陣,每個(gè)項(xiàng)目都用數(shù)字表示。shw=110010101001100110101010001100101001110111100m1,n1=size(shw);m1=9n1=5%尋找1項(xiàng)集col=(1:n1)'col=1234countsup=sum(shw,1)'count_sup=67622temp=find(count_sup>=sup);Iemp=2%求出所有彳It選項(xiàng)集 C1的支持度%查找候選項(xiàng)集C1中支持度2的項(xiàng)集,生成頻繁項(xiàng)集L1col=col(temp);count_col_sup=count_sup(temp)
21、;%產(chǎn)生2項(xiàng)集i=0;j=0;co2=nchoosek(col,2); %co2 =121314152324253435產(chǎn)生候選項(xiàng)集C2L1=colcount_col_sup;m2,n2=size(co2);count_co2_sup=zeros(m2,1);fori=1:m2forj=1:m1if(shw(j,co2(i,1)=1)&&(shw(j,co2(i,2)=1)count_co2_sup(i)=count_co2_sup(i)+1;endj=j+1;end查找候選項(xiàng)集C2支持度2的項(xiàng)集,生成頻繁項(xiàng)L2endtemp=find(count_co2_sup>=su
22、p);%co2=co2(temp,:);count_co2_sup=count_co2_sup(temp,:);L2=co2count_co2_sup;L2124134152234242252%尋找3項(xiàng)集A乖o2(:,1)co2(:,2);A121315232425mA,nA=size(A);B(1)=A(1);k=2;fori=1:mAforj=1:nAif(A(i,j)=B(1:end)%查找重復(fù)出現(xiàn)的商品號(hào)B(k)=A(i,j);k=k+1;%B=12354endj=j+1;endi=i+1;產(chǎn)生候選項(xiàng)集C3endco3=112311251124113511341154235234254
23、354co3=nchoosek(B,3);%m3,n3=size(co3);count_co3_sup=zeros(m3,1);fori=1:m3forj=1:m1if(shw(j,co3(i,1)=1)&&(shw(j,co3(i,2)=1)&&(shw(j,co3(i,3)=1)count_co3_sup(i)=count_co3_sup(i)+1;endj=j+1;endm3=m3+1;endtemp=find(count_co3_sup)>=sup);%查找候選項(xiàng)集C3支持度>2的項(xiàng)集,生成頻繁項(xiàng)L3co3=co3(temp,:);count
24、_co3_sup=count_co3_sup(temp,:);L3=co3count_co3_sup;l3=12321252%尋找4項(xiàng)集C=co3(:,1)'co3(:,2)'co3(:,3)'mC,nC=size(C);D(1)=C(1);K=2;fori=2:nCif(C(i)=D(1:end)%查找重復(fù)出現(xiàn)的商品號(hào)D(K尸C(i);K=K+1;endi=i+1;endco4=nchoosek(D,4);m4,n4=size(co4);count_co4_sup=zeros(m4,1);fori=1:m4forj=1:m1if(shw(j,co4(i,1)=1)&a
25、mp;&(shw(j,co4(i,2)=1)&&(shw(j,co4(i,3)=1)&&(shw(j,co4(i,4)=1)count_co4_sup(i)=count_co4_sup(i)+1;endj=j+1;endendtemp=find(count_co4_sup)>=sup);co4=co4(temp,:);count_co4_sup=count_co4_sup(temp,:);L4=co4count_co4_sup;C4=Emptymatrix:0-by-5上述基于Matlab的Apriori算法的結(jié)果與上節(jié)的圖6.2一致,由于C4是空
26、集,所以算法終止,共找到頻繁項(xiàng)集Li,L2,L303.用java實(shí)現(xiàn)關(guān)聯(lián)規(guī)則3.1java界面描述運(yùn)行程序Apriori,進(jìn)入關(guān)聯(lián)規(guī)則主界面,如圖3.1所示10圖3.1關(guān)聯(lián)規(guī)則主界面點(diǎn)擊“載入”選擇“g:/1.txt”,選擇“打開(kāi)”,載入到j(luò)ava界面中,如圖3.2所示圖3.2載入界面12載入完成后的界面,如圖3.3所示圖3.3載入完成界面輸入最小支持度閾值,如2,點(diǎn)擊“生成頻繁項(xiàng)集”,生成所有頻繁項(xiàng)集,如下圖3.4所示圖3.4頻繁項(xiàng)集14輸入最小可信度的值,如0.6,點(diǎn)擊生成關(guān)聯(lián)規(guī)則,結(jié)果如下圖3.5所示圖3.5關(guān)聯(lián)規(guī)則3.2java關(guān)鍵代碼描述1、刪除小于支持度的鍵publicvoidre
27、rnovelJotSupportKey(Hashtblelit)Stringstr=supportkgetText();intj=Integer1門st);Set5=ht.keySet();for(Iteratori=sAtertor();i.hdsFJext();)if(Integer(String)hriget(i.next()<j)i,renio;e();)2、創(chuàng)建并返回Li的結(jié)果集21publicStringcreateLl()Stringstr=for(inti=0;i<info,length;i-Hr)for(intj=C;j<infoi.length;j+)if
28、(Ihtl.containsKey(infolj)elsehtl<pirtlnfpljjfjj,Integer.parselnt(Strlng>ht1+1+)removeflotSupportkey(ht1);str="LI如下:”+eiT;5tp=str+print(htJ)+MnM;returnstr;3、創(chuàng)建并返回L2的結(jié)果集publicStringcreateL2()Stringstr=str=createLl();Sets-htl.keyset();for(Iteratoriter=s.iter<aror);iterJidsNext();)Objecto=
29、iter.next();千or(int1=O;i<info,length;i-*-*-)for(intj-e;j<infoi.length-1;if(o.equals(infoij)-f-Qi'(intk=j1;k<infoi.length;k-r-t-(if(Sthis+contain(ht2keyset(),Stringo,infoik|>null)Itemitem=h電mItein(String)infoik);ht2.putitem,elseObjectkey-this*findKey(ht2-keyset()>(String)o,infoikjn
30、ull);ht2.put(key,Integer(String)lit2,get(key)break;removeUctSupportKey(ht2);str=str+'"L2如下:"+"n"str=str+print(ht2)+"Xn"str-strt"'treturnstr;4、創(chuàng)建并返回L3的結(jié)果集publicstringcr)Stringstr=""str=rrealeL2();Sets=ht2-keySetf);fair(Iteratoriter=S.iterator();ite
31、r.hdElleAt()j>Itemo=(Item)iter,next();for(inti-0;i<info.length;1+t)(for(lotj=ft;j<infoi,length-1;j+)if(o,getA().equalsfinfoij>&&.a.getB(1.eqiiiAls(ln-roij+1)S&j+i<length)-for(intk=j+2ik<-Length;k+)if(1this.contdin(.keyset(),o.getA()o.getB()infoikD)Itentitent=neiuItefn(o
32、.getA(J,cgetB()finfoij+2);hZ3.put(iterri,"1");卜elseObjectke/this.findKey(ht3.keySet()jo.gEA(3o.getB(),info(i)k);?t3put(ky,Integer(String)h亡三.Setkey)+1+",1);>)break;rmovellotSuipportKey(/?t3);str-str+”LM如下,"n"str-str+print(hr3)+,"n''strstr+"n"jreturn
33、str;)5、在健集keyset里查找健值為a,b,c的健publicObjectfindKey(Se±keysetStringd:Stringb,Stringc>if(b=null)fortIt:er<itor1=keyset.iterator()j,1.hasHext();)Objectn=i,next(J-if(h,equals(returnir*;)if(c-nullSl&b!null)For(Iteralzorx-keyseTiteraTorC)_;i.Ihasllex"t();Objectiii-i.next();Itetnir-(Item)
34、n;if(it.getA().equals(ai)&笈in.gei:B().equals(b)returnn;elseif(c!=null)for(工七正Lnti=keyset-ItertorO;五】自三乂t():)objectri=i.(>TtIt=<Ttetn)”;if(it.gc*tAf).«c|ui1s(J>&&it.getB().equjl£(b>&&itg*5t(>.qtijls<c>>returnn;卜)returnnull;6、判斷在健集keyset里是否已經(jīng)包含了健值為
35、a,b,c的健publicbooleancontdin(SetkeysetStringa,Stringb,Stringc)if(c=-null)for(Iteratori=keyset.iterator(;i.hasfJext();)Itetnit=(Item)i.*1ext();if(it.getA(),equals(a)&<.getB().equals(b)returntrue;elseif(c!=null)for(Iteratori=keyset.itertor();i.hasnext();)Itemit=(Item)i.next();if(it.getA().equ
36、als(a)&&it.getB().eqiidls(b)&git,get<().equdls(c)returntrue;returnfalse;7、創(chuàng)建關(guān)聯(lián)規(guī)則,返回關(guān)聯(lián)規(guī)則表publicStringcreteTrn5P.ule()Stringresult=Stringstr=L.getTextf);doubled-Double,vcriaeOf(str);Sets=tJ.keySet();intsubean=0;for(Iteratori=s.itertart)ji+hasiiext();)工ternnext-(Iteni)i+next();Stringa=nx
37、t.getA();Stringb=next.getB);Stringc=nexthgetC();StringfL-newStringa,b.c;ArryListsubSet=this.gtSubSet(L);for(Iteratorit=subSet.iterator();it.hasHext();)StringsetII=(String)it.next();if(sexh0!-null&&setNl-null)Objectkey=this.findKeyhtl.keyset(),setU0,setUl,setH2);subton=Integer.parseJr;T(Strin
38、g)ht1.get(key);elseif(setN0!-null&&setril1-null&&sM2=null)Objectkey=this.findKey(ht2.keySet()jsetIIGjsetN1>setH2);suibCon-Integer.parseint(String)ht2.get(key)>if(setJJG=null&&eettlfl!=null&&SetN2'=null)Objectkey=this.-FincKey(t.keySetO,setUQ,setU1>setll2&
39、gt;subCon=Integer(String).get(key);doubleLtoii=Bauble.pcjrseOLnjbie(String)t3.get(next);if(LCon/mubSiti)-d>=0!=null)StringNthis,geti>ius(oLLect(setiiL);if(setHQnull)setM0="1if(setl|1=unull)-1'"iif(setH2=null)setH2="";川result=result+setflfej+setll1十setll2+r,=->"+
40、il0+fi1+內(nèi)2+"s叩part(L)與support(d)的。值:"+L(on/subConT"n"returnresult;8、求a與L的差集,并返回差集publicStringgetflinusCollectStringfa*StringL)StringLL=L.clone();for(inti=G;i<L.length;i+)for(intj=0;j<a.leiigrli;j+)if(Li,equal5(aj)LLi=break;returnLL;9、獲取setN的子集。假設(shè)setN=a,b,c,則生成的子集為XXXpublicArrayListgetSubSet(Stringsetll)intleugth=setF1.1ength;inti;inta=1<<length;StringsubSet=newStringl<<lengthsetN.length;for(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 27403:2024 EN Cybersecurity – IoT security and privacy – Guidelines for IoT-domotics
- 2025年無(wú)機(jī)分離膜材料合作協(xié)議書(shū)
- 2025版安置房買賣合同范本:限價(jià)房交易政策范本
- 2025年度廠區(qū)門衛(wèi)智能化升級(jí)改造服務(wù)合同范本
- 2025年高壓清洗車合作協(xié)議書(shū)
- 社團(tuán)活動(dòng)反饋與改進(jìn)方案計(jì)劃
- 教學(xué)資源整合與優(yōu)化策略計(jì)劃
- 企業(yè)未來(lái)發(fā)展的創(chuàng)新思考計(jì)劃
- 財(cái)務(wù)企劃管理計(jì)劃
- 建立健全院內(nèi)溝通反饋機(jī)制的計(jì)劃
- 白酒業(yè)務(wù)員考勤管理制度
- 小班班本課程《吃飯這件小事》
- 危險(xiǎn)化學(xué)品事故應(yīng)急預(yù)案演練評(píng)估報(bào)告
- 部編人教版六年級(jí)道德與法治下冊(cè)全冊(cè)完整版課件
- 會(huì)議紀(jì)要督辦管理制度
- 電動(dòng)車輛動(dòng)力電池系統(tǒng)及應(yīng)用技術(shù) 第3版 課件全套 王震坡 第1-11章 動(dòng)力電池及其驅(qū)動(dòng)的電動(dòng)車輛- 動(dòng)力電池充電方法與基礎(chǔ)設(shè)施
- 2024云南中考數(shù)學(xué)二輪專題復(fù)習(xí) 題型五 二次函數(shù)性質(zhì)綜合題(課件)
- JB∕T 9006-2013 起重機(jī) 卷筒標(biāo)準(zhǔn)規(guī)范
- 家庭法律服務(wù)行業(yè)市場(chǎng)突圍建議書(shū)
- 高一數(shù)學(xué)同步優(yōu)品講練課件(人教A版2019必修第一冊(cè))3.2 函數(shù)的基本性質(zhì)(課時(shí)3 函數(shù)的奇偶性)(課件)
- 太平洋保險(xiǎn)計(jì)劃書(shū)模板
評(píng)論
0/150
提交評(píng)論