![Apriori算法實驗報告及程序之歐陽與創(chuàng)編_第1頁](http://file4.renrendoc.com/view/987a7ca342b34a29bdfe276e7dcfae89/987a7ca342b34a29bdfe276e7dcfae891.gif)
![Apriori算法實驗報告及程序之歐陽與創(chuàng)編_第2頁](http://file4.renrendoc.com/view/987a7ca342b34a29bdfe276e7dcfae89/987a7ca342b34a29bdfe276e7dcfae892.gif)
![Apriori算法實驗報告及程序之歐陽與創(chuàng)編_第3頁](http://file4.renrendoc.com/view/987a7ca342b34a29bdfe276e7dcfae89/987a7ca342b34a29bdfe276e7dcfae893.gif)
![Apriori算法實驗報告及程序之歐陽與創(chuàng)編_第4頁](http://file4.renrendoc.com/view/987a7ca342b34a29bdfe276e7dcfae89/987a7ca342b34a29bdfe276e7dcfae894.gif)
![Apriori算法實驗報告及程序之歐陽與創(chuàng)編_第5頁](http://file4.renrendoc.com/view/987a7ca342b34a29bdfe276e7dcfae89/987a7ca342b34a29bdfe276e7dcfae895.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08歐陽與創(chuàng)編 歐陽與創(chuàng)編 2021.03.08Apriori算法實驗扳告時間:2021.03.08創(chuàng)作:歐陽與學號:姓名:專醛:計第機應(yīng)用技木救師:1Apriori實驗]]實背;^?現(xiàn)在,數(shù)據(jù)挖掘作為從數(shù)據(jù)中獲取信息的有效方法,越來越受到人們的重視。關(guān)聯(lián)規(guī)則挖掘首先是用來發(fā)現(xiàn)購物籃數(shù)據(jù)事務(wù)中各項之間的有趣聯(lián)系。從那以后,關(guān)聯(lián)規(guī)則就成為數(shù)據(jù)挖掘的重要研究方向,它是要找出隱藏在數(shù)據(jù)間的相互關(guān)系。H前關(guān)聯(lián)規(guī)則挖掘的研究工作主要包括:Apriori算法的擴展、數(shù)量關(guān)聯(lián)規(guī)則挖掘、關(guān)聯(lián)規(guī)則增量式更新、無須生成候選項口集的關(guān)聯(lián)規(guī)則挖掘、最大頻繁項U集挖掘、約束性關(guān)聯(lián)規(guī)則挖掘以及并行及分布關(guān)聯(lián)規(guī)則挖掘算法等。關(guān)聯(lián)規(guī)則的挖掘問題就是在事務(wù)數(shù)據(jù)庫D中找出具有用戶給定的滿足一定條件的最小支持度Minsup和最小置信度Minconf的關(guān)聯(lián)規(guī)則。1.1.1國內(nèi)外研究概況1993年,Agrawal等人首先提出關(guān)聯(lián)規(guī)則概念,關(guān)聯(lián)規(guī)則挖掘便迅速受到數(shù)據(jù)挖掘領(lǐng)域?qū)<业膹V泛關(guān)注?迄今關(guān)聯(lián)規(guī)則挖掘技術(shù)得到了較為深入的發(fā)展。Apriori算法是關(guān)聯(lián)規(guī)則挖掘經(jīng)典算法。針對該算法的缺點,許多學者提出了改進算法,主要有基于哈希優(yōu)化和基于事務(wù)壓縮等。1.1.2發(fā)展趨勢關(guān)聯(lián)規(guī)則挖掘作為數(shù)據(jù)挖掘的重要研究內(nèi)容之一,主要研究事務(wù)數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫和其他信息存儲中的大量數(shù)據(jù)項之間隱藏的、有趣的規(guī)律。關(guān)聯(lián)規(guī)則挖掘最初僅限于事務(wù)數(shù)據(jù)庫的布爾型關(guān)聯(lián)規(guī)則,近年來廣泛應(yīng)用于關(guān)系數(shù)據(jù)庫,因此,積極開展在關(guān)系數(shù)據(jù)庫中挖掘關(guān)聯(lián)規(guī)則的相關(guān)研究具有重要的意義。近年來,已經(jīng)有很多基于Apriori算法的改進和優(yōu)化。研究者還對數(shù)據(jù)挖掘的理論進行了有益的探索,將概念格和粗糙集應(yīng)用于關(guān)聯(lián)規(guī)則挖掘中,獲得了顯著的效果。到LI前為止,關(guān)聯(lián)規(guī)則的挖掘已經(jīng)取得了令人矚I」的成績,包括:單機環(huán)境下的關(guān)聯(lián)規(guī)則挖掘算法;多值屬性關(guān)聯(lián)規(guī)則挖掘;關(guān)聯(lián)規(guī)則更新算法:基于約束條件的關(guān)聯(lián)規(guī)則挖掘;關(guān)聯(lián)規(guī)則并行及分布挖掘算法等。1.2實驗內(nèi)容與要求12.1實驗內(nèi)容編程實現(xiàn)Apriori算法:要求使用個項目隨機產(chǎn)生數(shù)據(jù)記錄并存入數(shù)據(jù)庫。從數(shù)據(jù)庫讀取記錄進行Apriori實驗,獲得頻繁集以及關(guān)聯(lián)規(guī)則,實現(xiàn)可視化。并用課堂上PPT的實例測試其正確性。12.2實驗要求1、 程序結(jié)構(gòu):包括前臺工具和數(shù)據(jù)庫;2、 設(shè)定項忖種類為10個,隨機產(chǎn)生事務(wù),生成數(shù)據(jù)庫;3、 正確性驗證(可用課堂上的例子);4、 算法效率的研究:在支持度固定數(shù)據(jù)量不同的時候測量運行時間;在數(shù)據(jù)量固定,支持度不同的時候測量運行時間;5、 注意界面的設(shè)計,輸入最小支持度和最小可信度,能夠輸出并顯示頻繁項目集以及關(guān)聯(lián)規(guī)則。1.2.3實驗?zāi)康?、 加強對Apriori算法的理解;2、 鍛煉分析問題、解決問題并動手實踐的能力。2Apriori算法分析與實驗環(huán)境2.1Apriori算法的描述Apriori算法是一種找頻繁項L1集的基本算法。其基本原理是逐層搜索的迭代:頻繁K項Lk集用于搜索頻繁(K+1)項集Lk+1,如此下去,直到不能找到維度更高的頻繁項集為止。這種方法依賴連接和剪枝這兩步來實現(xiàn)。算法的第一次遍歷僅僅計算每個項U的具體值的數(shù)量,以確定大型1項集。隨后的遍歷,第k次遍歷,包括兩個階段。首先,使用在第(k-l)次遍歷中找到的大項集Lk-l和產(chǎn)生候選項集Cko接著掃描數(shù)據(jù)庫,計算Ck中候選的支持度。用Hash樹可以有效地確定Ck中包含在一個給定的事務(wù)t中的候選。如果某項集滿足最小支持度,則稱它為頻繁項集。2.2Apriori算法的步步驟如下:1、設(shè)定最小支持度S和最小置信度C:2、Apriori算法使用候選項集。首先產(chǎn)生出候選的項的集合,即候選項集,若候選項集的支持度大于或等于最小支持度,則該候選項集為頻繁項集;kApriori算法的過程中,首先從數(shù)據(jù)庫讀入所有的事務(wù),每個項都被看作候選1-項集,得出各項的支持度,再使用頻繁1-項集集合來產(chǎn)生候選2-項集集合,因為先驗原理保證所有非頻繁的1-項集的超集都是非頻繁的;4、 再掃描數(shù)據(jù)庫,得出候選2-項集集合,再找出頻繁2-項集,并利用這些頻繁2-項集集合來產(chǎn)生候選3-項集;5、 重復掃描數(shù)據(jù)庫,與最小支持度比較,產(chǎn)生更高層次的頻繁項集,再從該集合里產(chǎn)生下一級候選項集,直到不再產(chǎn)生新的候選項集為止。2.3開發(fā)環(huán)境2.3.1軟件環(huán)境編程軟件:Jdk開發(fā)包+eclipse集成開發(fā)環(huán)境■Eclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。|就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)
Java發(fā)工具(JavaDevelopmentKit,JDK)。|建開發(fā)環(huán)境。幸運的是,Java發(fā)工具(JavaDevelopmentKit,JDK)。數(shù)據(jù)庫軟件:SQLServer2008SQLServer2008在Microsoft的數(shù)據(jù)平臺上發(fā)布,可以組織管理任何數(shù)據(jù)??梢詫⒔Y(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化文檔的數(shù)據(jù)直接存儲到數(shù)據(jù)庫中。可以對數(shù)據(jù)進行查詢、搜索、同步、報告和分析之類的操作。數(shù)據(jù)可以存儲在各種設(shè)備上,從數(shù)據(jù)中心最大的服務(wù)器一直到桌面計算機和移動設(shè)備,它都可以控制數(shù)據(jù)而不用管數(shù)據(jù)存儲在哪里。辦公軟件:Excel2010Excel是一款辦公軟件。它是微軟辦公套裝軟件office的重要的組成部分,它是集統(tǒng)計分析、數(shù)據(jù)處理和輔助決策等功能于一身,現(xiàn)在金融、統(tǒng)訃財經(jīng)、管理等眾多領(lǐng)域廣泛應(yīng)用。本實驗主要用來為固定數(shù)據(jù)量改變最小支持數(shù)以及固定最小支持數(shù)改變數(shù)據(jù)量兩種情況進行時間分析提供可視化圖表。2.3.2硬件環(huán)境裝有Windows7旗艦版電腦。2-4本章小結(jié)本章的內(nèi)容主要是為了引出本實驗的主要算法以及對算法的實現(xiàn)環(huán)境做了介紹。3算法的設(shè)計
3.1Apriori算迭螫體框架\Apriori開始\圖3?1Apriori實驗流程圖3?2主要的數(shù)據(jù)結(jié)構(gòu)與函數(shù)3.2.1數(shù)據(jù)結(jié)構(gòu)classTransaction{publicintpid;publicStringitemset;}該類表示表中的一條記錄。classDao{publicArrayList<Transaction>Query(Stringsql)1該類用于訪問數(shù)據(jù)庫操作。classKfppubliccharkfpstr[]=newchar[Apriori.ITEMSIZE];publicintindex=?1;publicintsuppoil=0;publicbooleanisfpnrue;)該類代表一個頻繁項th3.2.2主要的程序Java中最常用的集合類是List和MapoList的具體實現(xiàn)包括ArrayList和Vector,它們是可變大小的列表,比較適合構(gòu)建、存儲和操作任何類型對象的元素列表。List適用于按數(shù)值索引訪問元素的情形。HnshMnp:Map接口的常用實現(xiàn)類,系統(tǒng)vkey,value〉成一個整體進行處理,系統(tǒng)總是根據(jù)Hash算法來計算<key,value>的存儲位置,這樣可以保證能快速存、取Map的<key,value>對。ArrayList<Transaction>alTransactions:保存表中的所有記錄ArravList<Kfp>alKfpsl:臨時存儲頻繁項口的集合,存儲連接后的結(jié)果ArrayList<Kfp>SureFpset:保存頻繁k項集ArrayList<Kfp>SureFpsetPrio:保存頻繁k-1項集ArrayList<String>notFpList:保存一定不是頻繁項口的集合,用于剪枝HashMap<String,Integer>KfpSuppor:頻繁項LI集及其對應(yīng)的支持數(shù)HashMap<String,Double>guanlianguize:關(guān)聯(lián)規(guī)則及其置信度3.2.3連接與剪枝操作對于連接操作的兩個字符串(長度為k),它們必須有k?l個相同的字符才能做連接操作。例如:abc和abd可以連接成abed,abd和bed可以連接成abed,而abc和ade就不可以做連接操作。整個連接過程類似歸并排序中的歸并操作對于任一頻繁項H集的所有非空子集也必須是頻繁的,反之,如果某個候選的非空子集不是頻繁的,那么該候選集肯定不是頻繁的,將其剪枝。3.3本章小結(jié)本章主要介紹了算法設(shè)計的整體流程并且也對主要程序和操作作了簡要的說明。4數(shù)據(jù)庫的設(shè)計與數(shù)據(jù)的來源本實驗的數(shù)據(jù)均存儲于數(shù)據(jù)庫中。數(shù)據(jù)庫yuzm中共產(chǎn)生6張表。表test為測試用表,用于程序的正確性驗證。還有5張表存儲隨機產(chǎn)生的實驗數(shù)據(jù)。其中數(shù)據(jù)庫的結(jié)構(gòu)如下圖所示。yuzmEl□軸庫關(guān)殺囹曰口表?口漿統(tǒng)表E二dbo.datal+二dbo.data2(±)3dbo.data3?□]dbo.data4S)3dbo.data5?Hdbo.test0□觀圏?□同義詞圖4.1數(shù)據(jù)庫結(jié)構(gòu)4?1正確性驗證數(shù)據(jù)表test為PPT上的實例,用于正確性驗證。數(shù)據(jù)的item個數(shù)為5,其中的九行數(shù)據(jù)均由SQL語句產(chǎn)生,表的每一行都是一個“0”“1”的字符串,字符串長度等于商品種類,其中"0"表示該商品不存在,“1”表示該商品存在。表的全部數(shù)據(jù)如圖4.2。iditem?011001201010301100411010510100601100710100811101911100^AJLLNULL圖4.2表test4-2實驗數(shù)據(jù)5張表是通過算法隨機產(chǎn)生的具有不同數(shù)據(jù)量的數(shù)據(jù)集,假設(shè)商品種類為10種,表的每一行都是一個“(T“1”的字符串,字符串長度等于商品種類,其中“0”表示該商品不存在,“V表示該商品存在。其中表datal共隨機產(chǎn)生1萬行數(shù)據(jù),表data2產(chǎn)生5萬行數(shù)據(jù),表data3產(chǎn)生25萬行數(shù)據(jù),表data4產(chǎn)生50萬行數(shù)據(jù),表血協(xié)5產(chǎn)生75萬行數(shù)據(jù)。部分數(shù)據(jù)如圖4.3。
id item1390011110011140101111000014100111000001420101001111143000010110014411011100111451010000000146100111011114711000110001480000111111圖4.3實驗用表(部分)4.3本章小結(jié)本章主要對數(shù)據(jù)庫的設(shè)計與數(shù)據(jù)來源做出了說明。5實驗結(jié)果與性能分析5.1Apriori實驗界面其中可信度可自由設(shè)置,默認為0.7o而支持度記為最小支持度與數(shù)據(jù)量的比例。實驗數(shù)據(jù)可以下拉選擇6張表中的任意一張。如下圖所示:
圖5.1實驗界面5.2實驗的正確性驗證運行程序,我們選擇表test,即可進行正確性驗證,實驗結(jié)果如下圖:
圖5.2正確性驗證最終實驗結(jié)果與ppt的結(jié)果相吻合,表明程序編寫正確。5.3實驗性能分析為了對本程序的實驗進行性能分析,我們分別釆用固定數(shù)據(jù)量改變最小支持數(shù)以及固定最小支持數(shù)改變數(shù)據(jù)量兩種情況進行時間分析,其中最小置信度設(shè)為0.7不變。5?3?1固定最小支持度改變數(shù)據(jù)量設(shè)支持度為0.2,最小可信度為0.7o具體實驗數(shù)據(jù)量與執(zhí)行時間如下:表5.1數(shù)據(jù)量對性能的影響數(shù)據(jù)量(萬行)15255075時間(秒)48.2128.2366.9623.41032.3固定最小支持度改變數(shù)據(jù)量2011 5 25 50 75數(shù)據(jù)呈(萬行)O002011 5 25 50 75數(shù)據(jù)呈(萬行)O001OO0OOO0OO8642時間(秒〉圖5.3數(shù)據(jù)量對性能的影響5?3?2固定數(shù)據(jù)量改變最小支持度設(shè)實驗數(shù)據(jù)量固定改變最小支持度,具體如下所示:表5.2最小支持度對性能的影響最小支持度0.150.200.250.300.35時間(秒/1萬)175.64914.28.55.2時間(秒/5萬)294.1128.25&841.525.7時間(秒/25萬)531.3366.9246.5185.6154.0定數(shù)據(jù)量改變最小支持度60050040020010000.25D.35f-時間(秒/I萬)T-60050040020010000.25D.35f-時間(秒/I萬)T-時間(秒/5萬)T-時間(秒/25萬)最小支持度300圖5.4最小支持度對性能的影響5?3?3實驗結(jié)果分析山以上實驗我們可以看出,實驗時間會隨著數(shù)據(jù)量的增大而增大,并且隨著最小支持度的增大而減小。并且他們之間的變化類似于某種指數(shù)函數(shù)的變化趨勢。Apriori的時間主要消耗在4個方面:1、 利用K頻繁集連接產(chǎn)生K+1候選集時,判斷連接的條件時比較的次數(shù)太多。假設(shè)項集個數(shù)為m的頻繁集合Lk,判斷連接條件時比較的時間復雜度為O(K*m2)o而且本實驗的m都很大;2、 對Ck中任意的一個c的k個(k?l)子集是否都在Lk-1中。在平均情況下,對所有候選k項集需要掃描次數(shù)為ICkl*ILk-ll*k/2;3、 為了得到所有的候選頻集的支持度,需要掃描N次;4、 掃描一次數(shù)據(jù)庫需時間O(kITI)。ITI為交易數(shù)量,k交易長度5.4本章小結(jié)Apriori算法因自身需要多次掃描數(shù)據(jù)庫,并且經(jīng)過復雜的連接剪枝操作而產(chǎn)生大量候選集以及進行大量的模式匹配訃算的缺陷,使得其在I/O上的花費時間很多,從而導致算法的效率不是太高。6總結(jié)與體會通過本次實驗,讓我明口了什么是Apriori算法和數(shù)據(jù)之間的關(guān)聯(lián)性,Apriori算法是一種最有影響的挖掘布爾關(guān)聯(lián)規(guī)則頻繁項集的算法,為以后進步學習數(shù)據(jù)挖掘知識打下了良好的基礎(chǔ)。同時我也更加深刻理解了Apriori算法的原理及其實現(xiàn)的內(nèi)部細節(jié),同時通過實現(xiàn)這一經(jīng)典的數(shù)據(jù)挖掘算法,也讓我更深刻的體會到數(shù)據(jù)挖掘?qū)τ谥R發(fā)現(xiàn)的重要性,盡管實現(xiàn)了算法,但其中可能還有可以改進的地方,尤其是程序的運行效率方面。Apriori算法實驗不僅使得我對該算法的理解更加上升了一個層次,同時也使得我更加了解\java編程語言,使用更加得心應(yīng)手。importjava.awt.BorderLayout;importjava.awt.Font;importjava.awt.GridLayout;importjava.awt.Panel;importjava.awt.TextArea;importjava.awt.TextField;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Set;importjavax.swing.JButton;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextField;importorg.omg.CORBA.PUBLIC_MEMBER:publicclassAprioriextendsJFrameimplementsActionListener{//////////////////////////////////////////////////////publicstaticintITEMSIZE=10;public伽alintFRAMEWIDTH=800;publicfinalintFRAMEHEIGHT=600;///////////////////////////////////////////////////////JPanelup=null;JPanelup_up=null;TextFieldtextFieldName[]=null;JPanelup_down=null;JPanelup_down_left=null;JLabelconflabel二null;JLabelcl=null;JLabelc2=null;JLabelc3=null;JLabelc4=null;JLabelc5=null;JLabelc6=null;JLabelc7=null;JLabelc8=null;JTextFieldconf=null;JLabelsupportlabel=null;JTextFieldsupport二null;JPanelup_down_right=null;JComboBoxjComboBoxDateSize=null;//下拉框JButtonjButtonMine=null;JPaneldown二null;TextAreatextArea=null;intfpstep=l;intfpindex=0;Daodao=null;doubleMinSupport=0.20;doubleMinConfi=0.70;doubleDateSize=9.0;ArrayList<Transaction>alTransactions=null;ArrayList<Kfp>alKfps=null;ArrayList<String>notFpList=null;ArrayList<Kfp>SureFpset=null;ArrayList<Kfp>SureFpsetPrio=null;HashMap<String,Integer>KfpSupport=null:ArrayList<String>alsurekfpstr=null;HashMap<String,Double>guanlianguize=null;ArrayList<String>isaddarrStrings=null;int[][]AuxArr=null;publicstaticvoidmain(String[]args){AprioriA=newApriori();}publicApriori(){JPanelup=newJPanel(newGridLayout(2,1));JPanelup_up=newJPanel(newGridLayout(l,ITEMSIZE));//TextFieldtextFieldName[]=newTextField[ITEMSIZE];//for(inti=0;i<ITEMSIZE;i++)〃{//textFieldName[i]=newTextField();//up_up.add(textFieldName[i]);〃}cl=newJLabel(H數(shù)");up_up.add(cl);c2=newJLabel("據(jù)");up_up.add(c2);c3=newJLabel(H挖”);up_up.add(c3);c4=newJLabel("掘”);up_up.add(c4);c5=newJLabel(n實”);up_up.add(c5);c6=newJLabel("驗”);up_up.add(c6);c7=newJLabeI(n ”);up_up.add(c7);c8=newJLabel(HApriori”);up_up.add(c8);up_down=newJPanel(newGridLayout(l,2));up_down_left=newJPanel(newGridLayout(1,4));conflabel=newJLabel(H可信度:H);conf=newJTextField();conf.setText("0.7H);supportlabel=newJLabel(H支持度:”);support=newJTextFieId();support.setText(H0.2n);up_down_left.add(conflabel);up_down_left.add(conf);up_down_left.add(supportlabel);up_down_left.add(support);up_down_right=newJPanel(newGridLayout(1,2));jComboBoxDateSize=newJComboBox();//下拉框jComboBoxDateSize.addItem(HtestH);jComboBoxDateSize.addItem(Hdata1n);jComboBoxDateSize.addItem(Hdata2n);jComboBoxDateSize.addItem(Hdata3n);jComboBoxDateSize.addItem(Hdata4n);jComboBoxDateSize.addItem(Hdata5M);jComboBoxDateSize.addActionListener(this);jButtonMine=newJBiitton(”開始挖掘");jButtonMine.addActionListener(this);up_down_right.add(jComboBoxDateSize);up_down_right.add(jButtonMine);up_down.add(up_down_left);up_down.add(up_down_right);up.add(up_up);up.add(up_down);down=newJPanel(newBorderLayout());textArea=newTextArea();//textArea.setFont(newFont(Font.DIALOG,Font.ITALIC,20));textArea.setFont(newFont(Font.DIALOG,Font.PLAIN,20));down.add(textArea);this.setLayout(newBorderLayout());this.setSize(FRAMEWIDTH,FRAMEHEIGHT);this.setLocation(100,100);this.setSize(this.FRAMEWIDTH.this.FRAMEHEIGHT);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setTitle(HApriorin);//up.setSize(this.FRAMEWIDTH.100);this.add(up,BorderLayout.NORTH);//down.setLocation(0,100);//down.setSize(this.FRAMEWIDTH.this.FRAMEHEIGHT-100);this.add(down);this.setVisible(true);}publicvoidInitDate(Stringtable){fpstep=l;AuxAn-newint[ITEMSIZE+1][ITEMSIZE+1];alKfps=newArrayList<Kfp>();notFpList=newArrayList<String>();SureFpset=newArrayList<Kfp>();SureFpsetPrio=newArrayList<Kfp>();dao=newDao();KfpSupport=newHashMap<String,Integer>();alsurekfpsti-newArrayList<String>();guanlianguize=newHashMap<String,Double>();isaddarrStrings=newArrayList<String>();alTransactions=dao.Query(Hselect*fromn+table);this.DateSize=alTransactions.size();}publicvoidShowkFp(ArrayList<Kfp>SureFpset){intsteptemp=fpstep;textArea,append("頻繁"+(steptemp)+”項集\r\nH);//System.out.println();for(inti=O;i<SureFpset.size();i++){Kfpk=SureFpset.get(i);inttempindex=k.index;Stringstring=String.copyValueOf(k.kfpstr,0,++tempindex);intsupport=KfpSupport.get(string);textArea.append(string+n n+support+H M+support/DateSize+H\i-\nn);//System.out.println(string+M\r\nH);)}publicvoidShowkFp2(HashMap<String,Double>SureFpset){textArea,append(”關(guān)聯(lián)規(guī)則\r\n”);Set<String>keys=(Set<String>)SureFpset.keySet();for(StringkeyString:keys){textArea.append(keyString+H M+SureFpset.get(keyString)+H\r\nH);;})publicvoidDataMine(){intfpsteptemp=O;if(fpstep==1){for(inti=0;i<Apriori.ITEMSIZE;i++){Kfpkfp=newKfp();kfp.kfpstr[++kfp.index]=(char)fa'+i);kfp.support=0;kfp.isfp=false;alKfps.add(kfp);}DealSupport();SaveNotFpBySupport();SaveSureFpO;ShowkFp(alKfps);fpstep++:)while(!alKfps.isEmpty())alKfps.clear();for(inti=0;i<SureFpset.size();i++){Kfpkl=SureFpset.get(i);for(intj=i+1;j<SureFpset.size();j++){Kfpk2=SureFpset.get(j);KfpresultKfp=Joint(kl,k2);inttempindex=resultKfp.index;String string=String.copyValueOf(resultKfp.kfpstr, 0,++tempindex);if(string.charAt(O)==0)continue;SubSetsubSet=newSubSet();ArrayList<String>alStrings=subSet.displaySubSet1(string.toCharArrayO);intp=0;fbr(;p<alStrings.size();p++){?Stringstring2=alStrings.get(p);if(notFpList.contains(string2))break;}if(p!=alStrings.size())continue;if(!isaddarrStrings.contains(string)){isaddarrStrings.add(string);alKfps.add(resultKfp);)})SureFpsetPrio.clear();for(inti=0;i<SureFpset.size();i++)SureFpsetPno.add(SureFpset.get(i));Guanlianguize();SureFpset.clear();DeaISupport();SaveNotFpBySupport();//Cut();if(!alKfps.isEnipty()){SaveSureFpO;ShowkFp(SureFpset);}fpstep++;)}publicvoidGuanlianguize(){for(inti=0;i<SureFpsetPrio.size();i++){Kfpk=SureFpsetPrio.get(i);intlen=k.index;Stringstring二String.copyValiieOf(k?kfpstr,0,len+1);if(!alsurekfpstr.contains(string))alsurekfpstr.add(string);)SubSets=newSubSet();for(inti=O;i<alsurekfpstr.size();i++){Stringkfpstr=alsurekfpstr.get(i);char[]kfpchararr=kfpstr.toCharArray();ArrayList<String>aList=s.SubSet3(kfpchararr,kfpstr.length());for(intj=O;j<aList.size();j++){Stringguizetemp=HH;Stringkfpstrl=aList.get(j);char[]kfpchararrl=kfpstrl.toCharArray();intindexinkfp=0;intindexinchararrl=O;while(indexinkfp<kfpchararrlength&&indexinchararrlkfpchararrl.length){if(kfpchararrl[indexinchararr1]!=kfpchararrfindexinkfp]){guizetemp=guizetemp+kfpchararr[indexinkfp];indexinkfp++;}else{indexinchararr1++;indexinkfp++;)}while(indexinkfp<kfpchararr.length)guizetemp=guizetemp+kfpchararr[indexinkfp++];doublesupport1=(double)KfpSupport.get(kfpstr);doublesupport2=(double)KfpSupport.get(kfpstrI);if(support1/support2>MinConfi){Stringtemp=kfpstrl+n >H+guizetemp;guanlianguize.put(temp,supportl/suppoil2);))1ShowkFp2(guanlianguize);alsurekfpstr.clear();guanlia
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度物資訂購策劃管理協(xié)議
- 2025年企業(yè)員工購物券福利采購合同范本
- 魚塘綜合利用承包經(jīng)營合同2025
- 2025年度企業(yè)職業(yè)素養(yǎng)提升策略協(xié)議
- 2025年寫字樓租賃權(quán)益協(xié)議
- 2025年企業(yè)郵箱租賃合同樣本
- 2025年中期企業(yè)合作口頭借款協(xié)議書
- 2025年股權(quán)投資與合作策劃協(xié)議樣本
- 2025年雙邊商業(yè)合作協(xié)議
- 2025年兄弟共有財產(chǎn)分配轉(zhuǎn)讓協(xié)議書
- 中國銀行(香港)有限公司招聘筆試真題2023
- 15萬噸水廠安裝工程施工組織設(shè)計方案
- 超級蘆竹種植項目可行性研究報告-具有高經(jīng)濟價值和廣泛應(yīng)用前景
- 自動體外除顫器項目創(chuàng)業(yè)計劃書
- 養(yǎng)老機構(gòu)績效考核及獎勵制度
- 2024年越南煤礦設(shè)備再制造行業(yè)現(xiàn)狀及前景分析2024-2030
- 長塘水庫工程環(huán)評報告書
- 病案管理質(zhì)量控制指標檢查要點
- DL-T5001-2014火力發(fā)電廠工程測量技術(shù)規(guī)程
- 平行四邊形的判定(27張)-完整課件
- 居民住宅小區(qū)電力配置規(guī)范
評論
0/150
提交評論