第二章 背景知識
2.4 資料探勘
2.4.1 發掘關聯式規則
發掘關聯式規則(mining association rule)最早是 1993 年由 Agrawal[9][10]
等人所提出,主要用來找出項目間的關聯性,例如用於賣場商品販售上,可找出 各商品間販賣的關係,像是買牙刷的人有多少機率會買牙膏、買洗髮精的人有少 機率會買潤髮乳等。文獻[15]-[18]提及關聯法則於市場應用的重要性。
支持度(support)和信任度(confidence)是發掘關聯式規則最重要的兩個指標,
若以賣場為例,兩者表示如(2.7)式、(2.8)式,支持度(X→ Y)表示同時購買商品 X 跟 Y 的機率,而信任度(X→ Y)代表當顧客購買商品 X 時,同時會購買商品 Y 的 機率,由這兩種指標可以了解顧客的購買習慣,可成為賣場商品做促銷時所需重 要資訊。
使用上,首先須設定最小支持度(minimum support)以及最小信任度的門檻 (minimum confidence),利用這兩個指標為使用者做篩選。發掘關聯式規則有兩 個步驟:步驟一,找出所有頻繁項目。步驟二,由步驟一所得到的頻繁項目,產 生高關聯性的規則。
支持度=
xsy
→ = (同時包含 X 跟 Y 的銷售紀錄) (總交易紀錄). (2.7)
信任度=
xcy
→ = ( 同時包含 X 跟 Y 的銷售紀錄) (包含 X 的銷售紀錄) (2.8) 如圖 2.8 所示,為一簡單範例,交易項目包含{A, B, C, D, E, F}六項,而超過 最小支持度的項目總共有{A}、{D}、{E}、{F}、{A, D}、{A, E}、{D, E}及{A, D,
E}等 7 項。
2.4.2
頻繁樣式成長演算法
排序,即為圖 2.10 中左邊的表格,上步驟結束後,建立標頭索引表(header table),索引表的建立僅依存在項目出現的次數加以排序,目的是在找出頻繁項樹中每個 項目的第一個節點,由圖 2.10 左表及標頭索引表,建立頻繁項樹,且每個相同 項目以虛線連接,如圖 2.10 所示。
標頭索引表
2.5 模糊類神經網路
模糊系統目前已經廣泛的應用在自動控制系統以及信號處理等方面,尤其近 年來對於控制器的設計有著十分重要的貢獻,模糊系統已經慢慢有成為設計控制 器的理想工具的趨勢。由於模糊系統可應用的範圍非常的廣泛,因此有時亦稱之 為模糊專家系統(fuzzy expert system)。其模仿人類對於事物描述方式具有模糊性 的觀念,因此模糊系統的優點即是不需要完整精確的數學模型。
另一方面其結合人類的知識於系統的設計上。而模糊化的好處是可以提供較 好的推廣性、錯誤容忍度、以及更適合應用於真實世界中各種非線性系統。以下 章節 2.5.1 將介紹模糊系統的架構;2.5.2 則說明模糊系統結合類神經網路來建構 模糊化類神經網路。
2.5.1 模糊系統
首先我們討論模糊模型對於信息的陳述方法依照模糊規則的不同概略可以 分為兩種的類型;第一類模型是由學者 Mamdani[20]所發展出來,一般稱之為 linguistic 模型,其模糊規則是屬於語意式的模糊規則(linguistic fuzzy rule),其數 學模型可以表示為:
1 1 2 2
: If is and is , , and m is m, then ,
r x A x A … x A y =c (2.9)
此處 (r =1, 2, …, )R 代表第個模糊規則,A1, , , (A2 … Am =1, 2, , )… R 為歸屬 函數(membership functions),歸屬函數屬於模糊化機構方塊內,模糊化機構的功 能就是將明確的資料轉換為適當的模糊範圍來表示,而此機構會因為模糊系統功 用的不同,而使用各種不同的模糊化歸屬函數,通常以高斯式歸屬函數、梯形歸 屬函數或三角型歸屬函數表示,當然還有其它各種可以妥善表達分布的歸屬函數。
而X =[ , , , ]x1 x2 … xn 為輸入變數, y表示第條模糊規則的輸出變數。
第二類模型是由學者 Takagi 以及 Sugeno[21]所提出,一般稱之為 TSK 模型。
它可以描述一般動或靜態的非線性系統,利用模糊化分割(fuzzy partition)將輸入 空間視為線性分割的拓展,其模糊規則屬於函數式模糊規則,可描述為:
1 1 2 2 0 1 1
: , , , n n n n,
r If x is A and x is A … and x is A then y =a +a x + +… a x (2.10)
其中 y表示第條模糊規則的輸出變數,a ii( =0, 1, …, )n 為實數參數。此種模 型可處理非線性系統,其做法是將整個輸入空間切割為數個可用線性系統描述的 模糊空間,而輸出空間再以一個線性方程式表示。本篇論文我們將會使用 TSK 模型來做類神經網路。
2.5.2 模糊化類神經網路
圖 2.12 簡單的描述了一個以多層的模糊化類神經網路來建構模糊化類神經 模型,此模型有 n 個輸入、一個輸出,並擁有五層的架構,每一層的模糊化類神 經元都做相同的運算。第一層為輸入層,直接將輸入的信號傳送至下一層,這一 層中每一個相連接的權值皆為一,並且不會被調整。第五層為輸出層。網路第三 層稱之為規則層(rule layer),其為 n 個輸入值,構成模糊規則的基底。整個模型 中每一層的運算元的功能及詳細運算我們將會說明於下。
第一層:第一層的類神經元並不作任何的運算,只是直接將輸入信號傳送至 下一層。連接輸入信號與類神經元的權值在運算中也不會被調整,
將一直保持為 1;其計算公式如下:
(1) .
i i
u =x (2.11)
第二層:第二層的類神經元,執行輸入值與模型的相關模糊集合的相容程度 運算,其計算如下:
(2) (1)
其中 m 表示高斯函數的中心點(mean)、s為寬度(deviation)
並以s 控制歸屬函數遞減的速率。這種模糊化方式較其他方法(三角 形函數、梯形函數)複雜,所需的計算量也比較大,但是此種模糊化 方式的優點是,當輸入資料易被雜訊干擾時,還能有效的消除由雜 訊引起的錯誤,即有比較好的容錯能力。
第三層:第三層的類神經元執行模糊規則啟動強度(firing strength)的運算,每 一個類神經元有 m 個由第二層輸出而來的輸入值,其運算數學式如 運算(fuzzy AND operation)。
第四層:這一層又稱為推論層,在這一層中主要是將第三層的輸出值乘上一
個由輸入參數所組成的線性組合而得到推論結果, 這一層的輸出說
第三章 基於頻繁樣式成長法的共生式人工免 疫系統
本論文主要為函數模擬,在尋找函數最佳解上,主要為改進共生式人工免疫 演算法,以資料探勘尋找所面對問題各抗體基元之間的關聯性,做為解分類的依 據;在函數模擬上,以 TSK 模糊類神經系統做為主要核心,再以改良過的基於 頻繁樣式成長的共生式人工免疫系統找到最佳化的系統參數,使模擬出的資料能 夠更接近真實函數的圖形。
使用基於頻繁樣式成長共生式人工免疫系統的原因,是因為原始人工免疫系 統與共生式人工免疫系統皆有其適合解決的問題,但也有各自在最佳化上的盲點,
且仔細觀察這兩種方法,原始人工免疫系統將所有抗體放在同一個族群裡,共生 式人工免疫系統則讓所有抗體基元分到不同的族群,而頻繁樣式成長法為基礎的 共生式人工免疫系統 則是基於面對問題的不同來調整抗體基元所應分到的族 群。
章節 3.1 為本文演算法概述;章節 3.2 為基於頻繁樣式成長法成長的共生式 人工免疫演算法,此處為本文訂立抗體基元的架構。
3.1 演算法概述
現今用於最佳化處理的演算法多為基因演算法(GA),而人工免疫演算法為 近幾年所發表的最佳化演算法,在表現上並不遜色於基因演算法,使用上也逐漸 嶄露頭角,許多改良型人工免疫最佳化的演算法也陸續出現,其中值得注意的方 法為共生式人工免疫系統,共生式人工免疫系統是一套應用廣泛的方法,但此演 算法最大的缺點為當碰到抗體基元間有關聯性時,由於共生式人工免疫系統分群 的方法會使演算法性能下降,意即使用者必須嘗試多種抗體基元分群方式,然後
單純比較之間的效果,才能找出判斷哪一種分群效果是好的,這樣的使用方式,
導致在面對抗體基元有關聯性或者為中、高維度的問題時遇到困難。
本文在最佳化的處理上,同樣使用共生式人工免疫系統做為演算方法,對 於無族群分類標準的問題,透過資料探勘來解決並告知使用者哪些抗體基元維 度彼此間具有關聯性,圖 3.1 為最佳化處理時的基本流程,面對複雜函數時,
先以資料探勘尋找出各個抗體基元關聯性,決定哪些抗體基元該放在同一族群,
哪些該分開,再依照這個族群分類結果提供共生式人工免疫系統使用,以達到 最好的表現。
複雜函數
以資料探勘的結果做為SymAIS的抗體族群分類標準
最佳解
利用資料探勘尋找抗體 基元分群標準
圖 3.1 基本流程。
3.2 基於頻繁樣式成長的共生式人工免疫系統
此章節目的在於訂立共生式人工免疫系統之抗體基元分類規則,以抗體基元 間的關聯性做為是否分在同一類的標準,在族群分類上,以頻繁樣式成長法做為 搜尋相關性項目的演算法,藉由此方法找出抗體基元之間的關聯程度,以確立分 類準則。
3.2.1 抗體基元分類規則確立
本論文與共生式人工免疫演算法最大的差別,就在於加入了資料探勘的技巧,
使選取抗體基元時在相互之間有關聯性時可以被分在同一群再進行演化,以達到 增進演算法效率的目的。在資料探勘的部分,以頻繁樣式成長法做為抗體基元找 尋關聯性的工具,在使用上首先設定數筆測試資料,再以測試資料的表現為依據 定立規則,可分為四個步驟,隨機分組、資料測試、資料選取以及規則確立,說 明如下:
1. 隨機分組:當面對高維度抗體族群的分類方式,這也是使用上的第一個步驟,
但可惜的是,大多數問題並無法察覺該如何將維度做區分,也無法知道分成 幾個族群是最佳的方式,也就是說,如果一開始便決定每一筆測試資料的抗 體基元個數以及族群內維度個數都是相同的,當面對抗體基元間有關聯性時,
這樣的設定並不妥當。如圖 3.2 所示,此為一符合實際情況的分類方式,假 設問題具有三十個維度,若此時處於最好的分類情況,會發現每個族群內的 維度個數並不會相同,例如 swarm_1 包含維度編號{1, 9, 11, 13}共四個維度,
swarm_2 只有維度編號{10}一個維度,而 swarm_4 卻含有維度編號{6, 17, 18, 20, 25, 29, 30}共 7 個維度,除此之外,使用者也無法得知族群個數應如何設 定才是最佳解,因此本文在族群個數以及各族群內所包含的維度數目和編號
swarm_2 只有維度編號{10}一個維度,而 swarm_4 卻含有維度編號{6, 17, 18, 20, 25, 29, 30}共 7 個維度,除此之外,使用者也無法得知族群個數應如何設 定才是最佳解,因此本文在族群個數以及各族群內所包含的維度數目和編號