趙立威,張楠,2*,張中喜,2
(1.煙臺(tái)大學(xué) 數(shù)據(jù)科學(xué)與智能技術(shù)山東省高校重點(diǎn)實(shí)驗(yàn)室,山東 煙臺(tái) 264005;2.煙臺(tái)大學(xué) 計(jì)算機(jī)與控制工程學(xué)院,山東 煙臺(tái) 264005)
粗糙集理論[1]是數(shù)據(jù)分析處理的一種工具。屬性約簡[1-4]是粗糙集理論中重要的研究方向之一,目的是將知識(shí)系統(tǒng)中不必要的屬性刪除,從而提高計(jì)算機(jī)處理數(shù)據(jù)的效率。伴隨著大規(guī)模高維數(shù)據(jù)的迅速膨脹,數(shù)據(jù)中大量冗余屬性造成計(jì)算機(jī)的計(jì)算效率低下,而屬性約簡能夠?qū)?shù)據(jù)進(jìn)行有效的降維。
目前,在實(shí)際的應(yīng)用當(dāng)中,有大量基于序關(guān)系的問題存在。與經(jīng)典粗糙集理論中按照等價(jià)關(guān)系進(jìn)行分類不同,序關(guān)系是將序決策系統(tǒng)中的屬性值以遞增或者遞減的方式進(jìn)行排序,且在優(yōu)勢關(guān)系下定義的優(yōu)勢類與劣勢類構(gòu)成了對于論域集合的覆蓋。如今,基于序關(guān)系的粗糙集理論已有諸多學(xué)者進(jìn)行了大量的研究[5-11]。徐偉華等[12-15]對序關(guān)系與粗糙集理論的結(jié)合做了大量的研究和工作。Qian等[16-17]將序關(guān)系引入到了區(qū)間值與集值粗糙集模型中。
基于貪心策略的啟發(fā)式屬性約簡是主要的屬性約簡方法之一,通過啟發(fā)式屬性約簡方法能夠相對快速地求出其中一個(gè)約簡結(jié)果。但當(dāng)面對大規(guī)模高維數(shù)據(jù)時(shí),其約簡效率仍然低下,為了能夠快速計(jì)算出約簡結(jié)果,大量的學(xué)者針對啟發(fā)式屬性約簡算法進(jìn)行了優(yōu)化與改進(jìn)。Fan等[18]提出了廣義不可分辨約簡模型以及粒度結(jié)構(gòu)的概念,在此基礎(chǔ)上提出了基于廣義正域的加速策略。Qian等[19]基于正域近似原理,提出了一種正域近似加速算法框架,通過實(shí)驗(yàn)證明了該框架的高效性。Du等[20]將文獻(xiàn)[19]中的框架引入到序決策系統(tǒng)中,并且通過在迭代過程中刪除冗余屬性,提出了一種基于序決策系統(tǒng)的快速約簡算法。Ni等[21]將文獻(xiàn)[19]中的框架引入到模糊粗糙集模型中,通過在約簡過程中刪除部分實(shí)例,提出了基于正域的加速算法。徐章艷等[22]利用基數(shù)排序設(shè)計(jì)了一種快速求解等價(jià)類劃分的算法,提高了屬性約簡的效率。Liang等[23]通過在每次迭代過程中不斷減少論域和候選屬性集合的大小,顯著減少了屬性約簡時(shí)間。
雖然有大量的學(xué)者在啟發(fā)式屬性約簡的約簡效率上進(jìn)行了不斷的優(yōu)化,但大多數(shù)啟發(fā)式屬性約簡算法在每次迭代過程中將屬性重要度最大的屬性添加進(jìn)特征屬性子集,在迭代過程中耗時(shí)較多。針對上述問題,本文通過分析序決策系統(tǒng)中邊界域的單調(diào)性,提出了一種基于特征粒的快速約簡算法。通過在每次迭代過程中添加一組特征屬性,提高了約簡的計(jì)算效率。
本文介紹序決策系統(tǒng)下的一種前向貪婪屬性約簡算法,提出基于特征粒的快速屬性約簡算法FRAFG(Fast Reduction Algorithm based on Feature Granules);并通過實(shí)驗(yàn)對比驗(yàn)證了本算法的有效性。
簡單介紹序關(guān)系決策系統(tǒng)的相關(guān)概念,包括序關(guān)系的粗糙近似及其相關(guān)的分類質(zhì)量等。
若屬性AT=C∪D,其中C={a1,a2,…,am}為關(guān)于條件屬性的集合,D=j5i0abt0b為關(guān)于決策屬性的集合,且C∩D=?,則四元組為決策系統(tǒng),如果|D|=1,即決策屬性集中僅有一個(gè)元素,則該決策系統(tǒng)為單決策系統(tǒng)。
定義2[5]若對信息系統(tǒng)中的一個(gè)屬性的值域建立一個(gè)偏序關(guān)系,那么該屬性稱為一個(gè)準(zhǔn)則,如果所有的屬性都是準(zhǔn)則,則稱該信息系統(tǒng)為序信息系統(tǒng)。
設(shè)在信息系統(tǒng)S=(U,AT,V,f)中,對于對象x,y∈U,準(zhǔn)則a∈AT,在其值域上建立偏序關(guān)系≥a,其中有x≥ay?f(x,a)≥f(y,a)(按照遞增偏好)或x≥ay?f(x,a)≤f(y,a)(按照遞減偏好),表示對象x在準(zhǔn)則a上來說至少和對象y一樣好;對于屬性子集A∈AT,偏序關(guān)系x≥Ay則表示為在屬性集合A上,對象x要優(yōu)于對象y。通常,將序信息系統(tǒng)表示為四元組OIS≥=(U,AT,V,f)。
定義3[5]給定四元組OIS≥=(U,AT,V,f)為序信息系統(tǒng),對于A?AT,有優(yōu)勢關(guān)系為:
DA={(x,y)∈U×U:x≥Ay}。
(1)
本文將使用xDAy表示(x,y)∈DA,即對象x在屬性集A上要優(yōu)于對象y。
序決策系統(tǒng)ODS≥=(U,AT=C∪D,V,f)是一類特殊的序信息系統(tǒng),設(shè)決策屬性D=j5i0abt0b使得論域劃分為有限數(shù)量的決策類,Cl={Clt:t∈T},T={1,2,…,n}(n≥2)為這些決策類排序的集合。對于?t,s∈T,如果有t
定義4[5]給定四元組ODS≥=(U,AT=C∪D,V,f)為序決策系統(tǒng),對于Clt(t∈T),其上并集與下并集分別定義為:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
例1 表1是給定的一個(gè)序決策系統(tǒng),U={x1,x2,x3,x4,x5,x6}為論域,C={a1,a2,a3}為條件屬性集,D=j5i0abt0b為決策屬性集。
表1 序決策系統(tǒng)
根據(jù)以上定義的優(yōu)勢關(guān)系可以求出關(guān)于條件屬性集C的優(yōu)勢類與劣勢類為:
求出的關(guān)于Clt(t∈T)的上并集與下并集分別為:
根據(jù)定義5,計(jì)算出關(guān)于Clt(t∈T)下近似、上近似以及邊界域如下:
因下并集的上、下近似及其邊界域的計(jì)算與上并集的相關(guān)計(jì)算過程一樣,本文不再繼續(xù)列出其相關(guān)的計(jì)算過程。
(9)
分類質(zhì)量γA(Cl)還可以有如下表示方式:
(10)
通常關(guān)于分類質(zhì)量γA(Cl),使用如公式(10)的計(jì)算方式較為普遍,且公式(9)等價(jià)于公式(10)(詳細(xì)證明可以參考文獻(xiàn)[20]),本文使用公式(10)計(jì)算分類質(zhì)量γA(Cl)。
本節(jié)將會(huì)介紹關(guān)于序決策系統(tǒng)下的啟發(fā)式屬性約簡,并且具體給出本文算法。
定義7[20]給定四元組ODS≥=(U,AT=C∪D,V,f)為序決策系統(tǒng),A?C,若屬性集A為序決策系統(tǒng)ODS≥的屬性約簡,則應(yīng)該滿足如下條件:
(1)γA(Cl)=γC(Cl);
(2) ?B?A,有γB(Cl)<γC(Cl)。
其中,條件(1)是為了保證約簡前后序決策系統(tǒng)的分類質(zhì)量保持不變,條件(2)是保證約簡結(jié)果中不存在冗佘屬性。
定義8[20]給定四元組ODS≥=(U,AT=C∪D,V,f)為序決策系統(tǒng),A?C,對于?a∈A,定義屬性a關(guān)于屬性集合A的內(nèi)部屬性重要度如下:
Siginner(a,A,D)=γA(Cl)-γA-{a}(Cl)。
(11)
如果Siginner(a,A,D)>0,說明屬性a相對于屬性集合A來說是必不可少的,且Siginner(a,A,D)越大,屬性a相對于屬性集合A更重要。
根據(jù)屬性的內(nèi)部屬性重要度,關(guān)于序決策系統(tǒng)的核屬性集可定義為:
Core(C)={a∈C:Siginner(a,C,D)>0}。
(12)
定義9[20]給定四元組ODS≥=(U,AT=C∪D,V,f)為序決策系統(tǒng),A?C,對于?a=C-A,定義屬性a關(guān)于屬性集合A的外部屬性重要度如下:
Sigouter(a,A,D)=γA∪{a}(Cl)-γA(Cl)。
(13)
目前傳統(tǒng)的啟發(fā)式屬性約簡算法大多是從核屬性開始,然后根據(jù)Sigouter(a,A,D)選擇屬性添加進(jìn)候選特征屬性集,最后完成屬性約簡過程。關(guān)于通用的前向貪婪屬性約簡算法(FGAR: a general Forward Greedy Attribute Reduction algorithm)的描述見算法1。
算法1 FGAR輸入:序決策系統(tǒng)ODS≥=U,AT=C∪D,V,f 。輸出:序決策系統(tǒng)ODS≥的一個(gè)屬性約簡red。步驟1 初始化red=?;步驟2 計(jì)算Siginner(ai,C,D),1≤i≤|C|;步驟3 選擇Siginner(ai,C,D)>0的屬性為核屬性集合Core(C);步驟4 令red=Core(C),A=C-red;步驟5 如果γred(Cl)≠γC(Cl),則重復(fù):步驟5.1 選擇a=argmax{Sigouter(ai,red,D),ai∈A};步驟5.2 令red=red∪{a},A=A-{a};步驟6 對于?b∈red,計(jì)算Siginner(b,red,D),如果Siginner(b,red,D)=0,則red=red-;步驟7 返回約簡red。
定理3為關(guān)于邊界域?qū)傩灾匾鹊谋P蛐栽怼脑撛砜梢钥闯?在去除論域U中可以正確分類的對象之后,在計(jì)算關(guān)于論域U′的屬性約簡的過程中屬性選擇的順序同樣保持不變。因此,可以通過減少論域U中的對象從而提高啟發(fā)式屬性約簡算法的效率。
對于定義10中所定義的特征粒gran(A)={g1,g2,…,gi-1,gi},1≤i≤|C-A|,通過|BNA∪{gi}∩BNA∪{gj}|<|BNA∪{gi}|計(jì)算保證特征粒gran(A)中的每一個(gè)屬性與集合A相對于決策屬性D產(chǎn)生的邊界域之間不存在兩兩包含的關(guān)系。即集合BNA∪{g1},BNA∪{g2},…,BNA∪{g|C-A|}之間并不存在兩兩包含關(guān)系。
定理6 給定四元組ODS≥=(U,AT=C∪D,V,f)為序決策系統(tǒng),A?C,gran(A)={g1,g2,…,gi},則有:
|BNA∪gran(A)|<|BNA∪{g1}|;
|BNA∪gran(A)|<|BNA∪{g1}∪BNA∪{g2}|;
…
|BNA∪gran(A)|<|BNA∪{g1}∪BNA∪{g2}∪…
∪BNA∪{gi-1}|。
證明根據(jù)定理5容易證明定理6。
因?yàn)樘卣髁ran(A)中的屬性與屬性集合A所產(chǎn)生的邊界域之間并不存在兩兩包含的關(guān)系,因此可以使得候選屬性集合相對于決策屬性D的邊界域快速減小,從而減少了算法的迭代次數(shù),提高了算法的效率。
基于以上原理,提出在序信息系統(tǒng)下的基于特征粒的快速約簡算法(FRAFG: Fast Reduction Algorithm based on Feature Granules),算法描述見算法2。
算法2 FRAFG輸入:序決策系統(tǒng)ODS≥=U,AT=C∪D,V,f 。輸出:序決策系統(tǒng)ODS≥的一個(gè)屬性約簡red。步驟1 初始化red=?,U'=U;步驟2 若γ'red(Cl')≠γ'C(Cl'),則重復(fù):步驟2.1 對于gi∈C-A, 對|BNred∪{gi}|遞增排序;步驟2.2 根據(jù)定義10,計(jì)算出gran(red);步驟2.3 red=red∪gran,U'=BNred∪gran(A);步驟3 對于?b∈red,計(jì)算Siginner(b,red,D),如果Siginner(b,red,D)=0,則red=red-;步驟4 返回約簡red。
在算法2中,步驟2為屬性添加的迭代過程,當(dāng)算法所求出的屬性集合與條件屬性全集下的分類質(zhì)量相同時(shí)結(jié)束迭代過程,滿足約簡定義7中條件(1);步驟3為算法的去冗余過程,通過算法3可以去除屬性集合中的冗余的屬性,去冗余后的屬性集合滿足約簡定義7中的條件(2)。
算法2的優(yōu)勢如下:
(1) 算法2通過在每次迭代時(shí)添加特征粒,與傳統(tǒng)啟發(fā)式約簡算法相比,減少了算法的迭代次數(shù),提高了算法的效率。
(2) 多數(shù)啟發(fā)式約簡算法需要遍歷屬性集求解核屬性,當(dāng)數(shù)據(jù)規(guī)模較大時(shí),核屬性的計(jì)算會(huì)浪費(fèi)較多時(shí)間,本算法不從核開始,直接進(jìn)行屬性的添加。
(3) 在迭代的過程中,通過刪除一部分對象使對象集規(guī)模減小,提高了算法的計(jì)算效率。
例2 如表1所示的序決策系統(tǒng),其中U={x1,x2,x3,x4,x5,x6},C={a1,a2,a3},D=j5i0abt0b。根據(jù)算法2對其進(jìn)行屬性約簡,其計(jì)算過程如下:
(1) 第一輪迭代:初始red=?,對于C=C-red中任意屬性關(guān)于決策屬性的邊界域的值為:|BN{a1}|=6,|BN{a2}|=5,|BN{a3}|=5,排序得:|BN{a2}|≤|BN{a3}|<|BN{a1}|。其中:
|BN{a2}∩BN{a3}|<|BN{a2}|,
|BN{a2}∩BN{a1}|=|BN{a2}|。
對于約簡結(jié)果red,進(jìn)行屬性的去冗余操作,得出屬性a3為冗余屬性,因此最終的約簡結(jié)果為red={a1,a2},算法結(jié)束,針對序決策系統(tǒng)的屬性約簡完畢。
針對所提出的算法進(jìn)行實(shí)驗(yàn)的驗(yàn)證,實(shí)驗(yàn)所運(yùn)行的硬件環(huán)境為:Windows 10 64位操作系統(tǒng);16 GB DDR4 內(nèi)存;Intel Core i5-9300H CPU;軟件環(huán)境為:PyCharm2018;編程語言:Python。
實(shí)驗(yàn)選用六組標(biāo)準(zhǔn)UCI數(shù)據(jù)集,所用數(shù)據(jù)集如表2所示。其中|U|為論域中的對象數(shù),|C|為條件屬性數(shù),|D|表示決策屬性下決策類的數(shù)量。
表2 UCI數(shù)據(jù)集
實(shí)驗(yàn)共有4部分,(1)將本文提出的算法FRAFG與算法FGAR、算法AHARCC[20]、算法LA[13](Lower Approximate, LA)進(jìn)行時(shí)間消耗的對比以及約簡長度的對比,其中算法AHARCC是算法FGAR的改進(jìn),即在迭代過程中采取刪除部分對象且在迭代過程中刪除冗余屬性的策略,算法LA為基于差別矩陣的下近似屬性約簡算法。(2)將算法FRAFG與算法FGAR以及算法AHARCC進(jìn)行屬性添加過程中迭代次數(shù)的比較,因算法LA為差別矩陣算法,因此并不參與屬性迭代次數(shù)的比較;(3)針對不同的論域規(guī)模,將算法FRAFG與三種對比算法進(jìn)行時(shí)間消耗上的對比。(4)針對這四種算法的分類精度進(jìn)行比較。為了方便對比,本文在三種啟發(fā)式算法約簡效率的對比上均不求核,直接進(jìn)行屬性的添加。
表3給出了4種約簡算法的時(shí)間消耗以及約簡長度的對比。在約簡長度的計(jì)算上,由于LA為差別矩陣算法,可能有多個(gè)約簡結(jié)果,故取所有約簡結(jié)果長度的均值。因Lung Cancer以及Audiology兩種數(shù)據(jù)集條件屬性較多,算法LA在一定的時(shí)間內(nèi)并未計(jì)算出屬性約簡,故兩個(gè)數(shù)據(jù)集的消耗時(shí)間以及約簡長度用“-”表示。從所示表格可以看出,本文提出的FRAFG較三種對比算法在6組數(shù)據(jù)集上的約簡時(shí)間均為最少。例如對于數(shù)據(jù)集Chronic Kidney Disease,本文算法耗時(shí)為7.125 s,而算法FGAR、算法AHARCC以及算法LA的運(yùn)行時(shí)間分別為20.137 s、12.661 s以及43.730 s,三種對比算法的運(yùn)行時(shí)間分別為本文算法運(yùn)行時(shí)間的2.826倍、1.777倍以及6.138倍。而在數(shù)據(jù)規(guī)模較大的German數(shù)據(jù)集上,四種算法的運(yùn)行時(shí)間依次為63.508 s、85.447 s、115.815 s以及339.400 s,三種對比算法的運(yùn)行時(shí)間為本文算法運(yùn)行時(shí)間的1.345倍、1.824倍以及5.344倍。關(guān)于約簡長度的比較,本文算法FRAFG在數(shù)據(jù)集Lung Cancer上的約簡長度為5,對比算法FGAR與算法AHARCC的約簡長度均為6;在數(shù)據(jù)集Chronic Kidney Disease上,算法LA的約簡長度為18,本文算法以及其他兩種對比算法的約簡長度均為11。在數(shù)據(jù)集Connectionist Bench上,本文算法以及算法LA的約簡長度為9,兩種對比算法的約簡長度為8;剩余3個(gè)數(shù)據(jù)集上,三種算法的約簡長度均相同。與兩種啟發(fā)式對比算法每次添加一個(gè)屬性不同,本文算法通過在迭代過程中添加特征粒,能夠快速的使特征候選子集達(dá)到與條件屬性全集相同的分類能力,從而減少算法的迭代次數(shù),提高了算法的約簡效率。因LA算法為差別矩陣算法,與三種啟發(fā)式算法相比約簡效率較為低下。由于特征粒中包含多個(gè)屬性,在迭代過程中選擇候選屬性時(shí),并不嚴(yán)格按照屬性重要度作為選取候選屬性的依據(jù),從而可能出現(xiàn)與FGAR、AHARCC兩種對比算法不同的約簡結(jié)果。因此,在Lung Cancer以及Connectionist Bench兩個(gè)數(shù)據(jù)集上,本文算法與FGAR以及AHARCC兩種對比算法關(guān)于約簡長度有所不同。
表3 約簡長度與時(shí)間對比
表4 算法迭代次數(shù)
表4為三種啟發(fā)式算法在添加屬性過程中,算法迭代次數(shù)的對比。從表4可以看出,本文算法的迭代次數(shù)相較于算法FGAR以及算法AHARCC均為最少。在數(shù)據(jù)集Australian Credit Approval上,對比算法的迭代次數(shù)為本文算法迭代次數(shù)的6.5倍,在數(shù)據(jù)集Audiology上,對比算法的迭代次數(shù)也為本文算法的1.44倍。因此,通過在算法迭代過程中添加特征粒,能夠使特征屬性子集快速達(dá)到與條件屬性全集相同的分類能力,從而減少了算法的迭代次數(shù)。
圖1為FRAFG、FGAR、AHARCC以及LA四種算法在論域中對象數(shù)不斷增加的情況下算法運(yùn)行時(shí)間的變化趨勢。因LA算法在數(shù)據(jù)集Lung Cancer以及Audiology上并未運(yùn)行出結(jié)果,故在這兩個(gè)數(shù)據(jù)集上的時(shí)間對比并未在圖中展示。圖的橫坐標(biāo)代表論域的規(guī)模,將數(shù)據(jù)集的對象平均分成10等份,逐次添加1份作為測試數(shù)據(jù)集測試運(yùn)行時(shí)間。例如數(shù)據(jù)集共有1 000個(gè)對象,平均分成10等份,每份有100個(gè)對象,則第一次測試數(shù)據(jù)集中對象的個(gè)數(shù)為前100個(gè),第二次測試數(shù)據(jù)集中的對象個(gè)數(shù)則為前200個(gè),以此類推,第十次的測試數(shù)據(jù)集則為數(shù)據(jù)集中全部的1 000個(gè)對象。圖的縱坐標(biāo)軸表示算法的時(shí)間消耗,單位為秒。圖中五角星折線代表本文算法FRAFG的運(yùn)行時(shí)間隨著論域規(guī)模變化的時(shí)間曲線,圓點(diǎn)折線圖、三角形折線圖以及十字形折線圖則分別表示算法FGAR、AHARCC以及LA的運(yùn)行時(shí)間隨著論域規(guī)模變化的時(shí)間曲線。從圖中可以明顯看出,伴隨著在論域中對象數(shù)目的不斷增加,四種算法的運(yùn)行時(shí)間也在逐漸增加。當(dāng)論域規(guī)模較小的時(shí)候,四種算法的時(shí)間消耗情況相差并不大,但伴隨著論域中對象的數(shù)目不斷增多,算法的時(shí)間消耗不斷增加。其中,算法LA隨著論域規(guī)模的不斷增加運(yùn)行時(shí)間變化最大,FGAR以及AHARCC兩種算法與LA算法相比雖然運(yùn)行時(shí)間變化相對較小,但與本文算法相比,兩種算法的運(yùn)行時(shí)間變化仍然較大。因此,與對比算法相比,本文算法在大規(guī)模數(shù)據(jù)集上有著明顯的優(yōu)勢。
圖1 約簡效率對比Fig.1 Comparison of reduction efficiency
四種算法用KNN分類器以及SVM分類器所計(jì)算的分類精度如表5和表6所示,在求分類精度時(shí)采用十折交叉驗(yàn)證的策略,表中數(shù)據(jù)加粗的為三種算法分類精度的最高值。其中,LA算法的分類精度取所有約簡結(jié)果分類精度的均值,“-”表示未能在該數(shù)據(jù)集下計(jì)算出相應(yīng)的分類精度。因算法AHARCC是FGAR算法的改進(jìn),在迭代過程中選取候選屬性時(shí)具有保序性,因此兩種算法的分類精度相同。如表5所示的分類精度,雖然本文算法分類精度的均值雖然低于LA算法,但仍高于FGAR以及AHARCC兩種算法。從表6可以看出,采用算法FRAFG所計(jì)算出的約簡結(jié)果在SVM分類器上的分類精度與三種對比算法相比,有四組數(shù)據(jù)集的分類精度高于LA算法,有三組數(shù)據(jù)集的分類精度高于FGAR以及AHARCC兩種算法。在分類精度的均值上,本文算法要高于三種對比算法。綜上可以得出,本文算法FRAFG具有較高的分類精度。
表5 三種算法在KNN分類器上的分類精度
表6 三種算法在SVM分類器上的分類精度
啟發(fā)式屬性約簡算法與利用差別矩陣進(jìn)行屬性約簡相比,雖然能夠在較短的時(shí)間內(nèi)求解出約簡結(jié)果,但因其在迭代過程中添加了一個(gè)屬性重要度大的屬性,所以當(dāng)數(shù)據(jù)規(guī)模較大的時(shí)候效率仍然較低。因此本文基于相關(guān)工作的研究,在序決策系統(tǒng)上提出了一種基于特征粒的快速約簡算法,該算法通過在迭代過程中添加特征粒來減少屬性選擇的迭代次數(shù),并在每次迭代過程中刪除部分對象,減小了計(jì)算的數(shù)據(jù)規(guī)模,從而能夠較好提高算法效率。本文算法由于一次添加多個(gè)屬性,可能存在冗余屬性較多的情況。因此,在今后應(yīng)對去除冗余屬性的效率以及其他特征粒添加策略進(jìn)行更深入的研究。