• 沒有找到結果。

研究架構說明

在文檔中 中 華 大 學 (頁 36-48)

第三章 研究架構

3.2 研究架構說明

FP-Tree 之依據,而後各處理器依其分配到的資料去建構 FP-Tree,並在建構完畢 後,分別去針對其樹狀架構做各項目之評估,然後將評估結果傳送回控制處理 器,而控制處理器收到後便開始作平均負載之動作,之後將計算結果分送給各處 理器知悉,接著各處理器便依照分配之項目做資料傳遞的動作,此時,會依照 PFP-Tree 之群體溝通方式進行傳遞,最後,當資料傳遞完畢後,各處理器即依照 FP-growth 演算法之探勘方式去針對其被分配到之項目進行探勘,並將結果加以 記錄。研究流程如圖 3-1 所示。

圖 3-1、研究步驟流程圖

本論文架構之重點在於樹狀結構評估方法,以及其平衡方式,在不改變樹狀 架構的情況下,做到負載平衡以及減低傳輸量之目的,以下將分為 5 點作更詳盡 之描述:

3.2.1 Global Header Table 之建立:

此步驟為建構 FP-Tree 之根本,首先必須要將欲探勘之資料作平均切割,在

此不需要考慮資料是否有歪斜,之後的步驟中將會針對這一點作修正;當處理器 接收到切割的資料(Local Database)後,便進行第一次掃描資料的動作,在掃描後 便會得到所有的項目以及項目之次數,此為 Local header table,接著便將 Local header table 傳遞到控制處理器,由控制處理器去將所有的 Local header table 做整 合,如此便會得到 Global header table。

得到 Global header table 的資料後,控制處理器還會從各處理器得到該處理 器之資料筆數,並將各處理器之資料筆數加總後乘以設定之支持度,便會得到最 小支持度之次數,然後將 Global header table 中未達最小支持度之項目予以刪除,

如此,留下來的項目便皆為符合高頻之項目,接著控制處理器會將 Global header table 廣播給所有的處理器,此一步驟也到此完成。其中,控制處理器為一負責 控制流程及整合資訊用途之處理器,該處理器不處理樹狀結構之建立及探勘,只 負責整合資料、計算負載等工作。本步驟之示意圖如圖 3-2 所示。

圖 3-2、GLOBAL HEADER TABLE之建立

3.2.2 樹狀結構之建立:

此一步驟則是根據 FP-Tree 之建構規則去加以建立,唯一不同的是,此步驟 之 Header table 是以 Global header table 作為建樹之依據,因為 Global header table

為所有項目之集合,並且已經過最小支持度之刪減,留下的項目皆為高頻,因此 建構 FP-Tree 的時候只要依據這些高頻項目去做建構,就可以大幅度減少非必要 資料佔用記憶體空間的現象,使得空間及樹狀結構得以有效被利用。

在建構樹的過程中,會讀取第二次的 Local Database,一筆一筆地讀取,每 當讀取一筆交易資料後會將其項目依據 Global header table 去排序,排序完畢之 後會再去讀取一次 Global header table,以由上往下之方式建樹,每當新增一個節 點時就必須去判斷上一父節點是否與前一資料項目相同,若相同則只要在次數上 加總,若否,則需要去搜尋是否有兄弟節點(Node-link),若沒有搜尋到兄弟節點,

則需要在兄弟節點上新增葉節點,並且將相同項目之節點相互鏈結,以確保樹狀 結構之完整,並可加快建樹及探勘時搜尋之速度。

在資料庫掃描完畢的同時,樹狀結構也建構完成,其結構與 Global Header table 之關係,如圖 3-3 所示:

圖 3-3、樹狀架構圖

3.2.3 樹狀結構之評估與項目分配

由於在進行探勘時是以項目為主,也就是一個處理器將會被分配到某些項 目,且該處理器只需針對該項目做探勘即可,所以本論文針對處理器負載程度之 計算,即以其所負責探勘之項目為主要考量,因此,在建立完 FP-Tree 後,各處 理器便要將其所擁有之樹狀架構做初步評估,而評估之準則是項目位於樹狀結構 之深度與寬度,主要原因是在探勘的過程中,是不斷地利用遞迴方式來搜尋高頻 項目,期間會不斷建立條件樣式樹(Conditional pattern tree),每建立一個條件樣 式樹就需要多一些時間與空間,所以探勘的時間需求完全依照樹狀結構的節點數 多寡來決定,當樹狀結構的深度越深,也就是葉節點到樹根的節點數量越多時,

探勘所需時間就越多;而樹狀結構之廣度越大,則表示需要在樹狀結構搜尋的時 間越多,且越有可能會重覆讀取,這也表示了其條件樣式樹的建構將越複雜,需 要更多時間。因此,項目位於樹狀結構之深度與廣度便成為了評估一個處理器探 勘所需時間之重要因素。其紀錄之範例如圖 3-4 所示:

圖 3-4、樹狀架構深度與廣度之紀錄

由圖 3-4 可以看出,除了對於個數是直接加總之外,對於深度的計算是取平 均值,因為單一項目可能擁有許多樣式,在探勘時會針對這些樣式去做組合的動 作,組合出所謂的條件樣式樹,這個時候其項目之次數會再次受到支持度的檢 驗,所以有可能樣式會不受到探勘過程的考慮,因此為了避免這樣的情況對評估 結果有太大之影響,所以對深度採取平均值之計算,而總個數則因為在此階段尚 無法預估該樣式是否會被探勘過程計算,因此不做其他變動。

評估樹狀架構的工作,由各處理器同時進行,在其評估完畢之後,便將結果 傳會給控制處理器,此時控制處理器便將來自各處理器之資料加以彙整,然後得 到每個項目所需要探勘之時間,然後依照圖 3-5 所示之公式加以計算,便可以得 到欲探勘該項目所需之負載,此為該項目之整體負載程度,因此在下一步驟中的 負載平均便可以此評估分數做為標準,分配處理器之探勘項目。

圖 3-5、項目負載程度之評估公式

此評估公式乃是針對項目做個別之評估,其中 P 為參與處理項目之處理器 個數,S 為所有項目之集合,Ct 為葉節點個數,而 Dp 則為該樣式之深度。此公 式之作法是將該項目位於各處理器之深度做平均值之擷取,因而得出其項目於樹 狀結構中之平均深度;另外廣度計算則是取葉節點個數之最大與最小值做平均值 的擷取,因為評估負載之主要概念,來自樹狀結構於處理器間相互搬移後的情況 做評估,對於樹狀結構搬移後的確切狀況並無法在此步驟中做出詳細評估,因為 在搬移後,有可能位於 Processor 1(P1)之樣式搬移到 Processor 2(P2)時,在 P2 剛

好有與其樣式相同之結構,所以直接對於次數作加總即可,並不會影響到探勘時 間,故無須對總個數做任何改變,而另一種狀況則是 P2 完全沒有與 P1 搬移過 來的結構有任何重覆之情況,此時便需要在 P2 新增樣式,因而個數需要加總才 能維持正確之評估,而這兩種狀況在結構搬移時皆有可能會出現,在最糟的情況 下,可能搬移過去的樣式全部都需要被新增,而最好的情況則是完全沒有需要新 增樣式的情況,舉例來說,P1 的某一項目 G 所擁有 10 個樣式,若是搬移到 P2 須要全部被新增的話,P2 的葉節點個數則會增加 10 個;反之,也有可能不需要 作加總。所以在這樣的情況下,項目在結構搬移後的情況,可能會擁有最大值之 葉節點個數,而較好的情況則是保有最小值之葉節點個數,故取平均作為個數評 估之分數。因此,在此步驟尚無法準確預測何種情況會較常發生的狀態下,對個 數最大值與最小值取平均會是最保險的作法。

另外,對於此階段無法準確評估搬移後之狀況的主要原因,在於時間效率的 要求,由於本架構之負載評估計算完全交由控制處理器負責,因此,若要準確判 斷,則需要做更進一步之運算,而由單一處理器做此運算則容易導致計算時間過 長,使得真正要做搬移動作的處理器有太多等待之時間,而造成閒置之狀況,而 此步驟之計算時間是直接加總於演算法總運作時間上,所以當評估負載平衡時所 需要的時間越多,則對於整體探勘效率之影響越大,因此,才會對樹狀架構作此 較為簡單卻又不失其信賴程度之評估,以期能在不影響太多效能的前提下仍能對 負載之平均作良好的分配。

到此步驟項目之負載程度計算尚未完全結束,由於下一步驟所採用之 PFP-Tree 架構的傳輸資料量有過大之考量,因此在此評估階段會加入所謂保留項 目之設定,原理很簡單,即是前文所提過之深度會影響探勘結果之概念,其實深 度與廣度的影響不只在探勘的過程,對於資料交換也有重大影響,舉例來說,當 欲交換之項目的深度較大時,表示其位於樹狀結構之尾端,而要交換資料時為了

維持資料正確性,則需要將該節點到樹根之所有節點傳遞給另一處理器,因此,

當深度越大表示要傳遞的資料量越多,而廣度越大表示要傳遞的樣式數量越多,

這兩種因素皆會影響到資料傳遞量,所以本架構加入了保留項目,就是由控制處 理器去判斷各處理器所擁有之項目的負載,將該處理器所擁有最大負載之項目作 保留的動作,保留的意思也就是由該處理器去負責該項目之探勘,如此一來便不 需要將其項目之資料往外送,以達到減低資料傳輸量的要求。而這一步驟只需要 去判斷處理器中何為負載最大之項目,並不會對評估效率有影響。

當各項目之負載程度都計算完畢後,便開始針對處理器所負責探勘之項目進 行分配。分配的步驟很簡單,一開始就將所有項目之負載加總後除以處理器個 數,如此便可得到平均負載量,接著先將保留項目分配給各處理器後,再將剩餘 之項目依序分配給各處理器,並確保處理器之負載程度不超過平均負載量。然 而,分配的情況可能無法完全地達到平均,在負載程度不超過平均負載量的情況 下,或許還有些項目未被分配到,而為了正確地得到探勘之結果,仍須將這些項 目作分配,此時,本演算法便會將其依序分配給負載程度與平均負載量差距最大 之處理器,而在分配完所有項目後,項目的負載評估與分配才真正告一段落。

3.2.4 樹狀結構之交換

在經過短時間的評估計算後,控制處理器會將所有的項目分配給所有的處理 器,各個處理器皆會接收到該對何項目做處理的信息,而此時由於各處理器所握 有之資料庫並非完整,其所擁有之項目資料必然也不是最完全之狀態,因此,在 此階段必須做一資料交換的動作,以確保其所探勘的項目為最健全且正確的資 料。在此步驟中,將會採取 PFP-Tree 演算法的群組交換方式,將所有的處理器 切割為兩群組,然後由群組間做一對一之資料交換動作,而其交換之資料為各群 組內之成員所需要之資料,待第一次群組交換後,必須先將所得到的資訊新增到 自己所有的樹狀結構中,然後再進入下一階段的群組交換,接著各群組會再切割

在文檔中 中 華 大 學 (頁 36-48)

相關文件