廖淑嬌,朱清新,梁 銳
(1.電子科技大學(xué)信息與軟件工程學(xué)院,四川 成都 610054;2.閩南師范大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,福建 漳州 363000)
代價(jià)敏感學(xué)習(xí)是數(shù)據(jù)挖掘領(lǐng)域的一個(gè)重要研究方向[1]。迄今為止,不少學(xué)者已對(duì)其理論和應(yīng)用進(jìn)行了較為深入的研究[2 - 11]。一般來說,相比主要追求高分類精度的非代價(jià)敏感學(xué)習(xí)方法,代價(jià)敏感學(xué)習(xí)技術(shù)由于考慮了現(xiàn)實(shí)的代價(jià)因素,因此更有實(shí)際意義。測試代價(jià)和誤分類代價(jià)是最??紤]的兩種代價(jià)[12]。其中,測試代價(jià)(也稱獲取代價(jià))是指人們?yōu)榱双@得樣本(也稱對(duì)象)某個(gè)數(shù)據(jù)項(xiàng)的值而對(duì)該樣本進(jìn)行測試所付出的代價(jià),例如醫(yī)療檢查中抽血檢驗(yàn)所花費(fèi)的金錢就是該檢查項(xiàng)目的測試代價(jià)。當(dāng)一個(gè)樣本具有多個(gè)數(shù)據(jù)項(xiàng),即具有多個(gè)屬性時(shí),所檢測的所有屬性的測試代價(jià)之和稱為總測試代價(jià)。而誤分類代價(jià)則是由錯(cuò)誤分類所導(dǎo)致的代價(jià),不同的分類錯(cuò)誤經(jīng)常造成不同大小的代價(jià)。例如,在銀行發(fā)放貸款的風(fēng)險(xiǎn)評(píng)估中,將低信用等級(jí)的客戶誤評(píng)為高信用等級(jí)一般比將高信用等級(jí)的客戶誤評(píng)為低信用等級(jí)具有更高的誤分類代價(jià)。
在數(shù)據(jù)值的獲取/測試過程中,由于觀測者的水平不同或者觀測工具的條件有限,觀測誤差廣泛存在。對(duì)于同一個(gè)量來說,不同人或不同工具得到的觀測誤差一般服從正態(tài)分布。數(shù)據(jù)的誤差范圍越大,它的粒度就越粗,反之則越細(xì)。以往的代價(jià)敏感學(xué)習(xí)經(jīng)常假設(shè)測試代價(jià)和誤分類代價(jià)是固定不變的,事實(shí)上這兩類代價(jià)往往都是可變的。一方面,測試代價(jià)與數(shù)據(jù)粒度有密切的關(guān)系,要得到越精確的數(shù)據(jù)值,即希望數(shù)據(jù)粒度越細(xì)時(shí),需要的測試代價(jià)往往越高。另一方面,誤分類代價(jià)又常受總測試代價(jià)大小的影響,對(duì)于同樣的錯(cuò)誤分類,當(dāng)已付出的總測試代價(jià)越高時(shí),誤分類代價(jià)也常常跟著增多。此外,現(xiàn)實(shí)中還存在測試代價(jià)受限,即總測試代價(jià)受到一定約束的情況。
在當(dāng)今的大數(shù)據(jù)時(shí)代,一個(gè)數(shù)據(jù)集經(jīng)常含有很多個(gè)屬性,這導(dǎo)致了數(shù)據(jù)分類處理的復(fù)雜性。作為一種常用的數(shù)據(jù)預(yù)處理技術(shù),屬性選擇著力于去除數(shù)據(jù)集中冗余或不相關(guān)的屬性,從而提高數(shù)據(jù)后續(xù)處理的效率。此外,粒度也是數(shù)據(jù)處理中經(jīng)??紤]的一個(gè)問題。雖然已經(jīng)有學(xué)者分別研究了測試代價(jià)受限情況下的屬性選擇[13]和不受限情況下的?;瘑栴}[14],但并沒有考慮到測試代價(jià)受限下屬性和粒度的同步選擇?;谶@種情況,本文著眼于研究在測試代價(jià)受限的情形下,基于誤差和可變代價(jià)的屬性和粒度選擇方法,其中粒度選擇指的是選擇數(shù)據(jù)合適的誤差范圍。
本文以最小化數(shù)據(jù)集在測試與分類過程中所付出的平均總代價(jià)(總代價(jià)的平均值)為目標(biāo),提出了一種測試代價(jià)受限的屬性和粒度同步選擇的方法,其中數(shù)據(jù)的粒度用觀測誤差的置信水平來衡量。誤差置信水平越高,數(shù)據(jù)粒度越粗。本文首先建立了包含誤差置信水平、誤差區(qū)間、鄰域模型和可變的代價(jià)函數(shù)等內(nèi)容的理論模型;接著提出了一個(gè)高效的屬性和粒度選擇的算法,其中運(yùn)用了三個(gè)剪枝技術(shù)以提高算法的效率;最后,在多個(gè)UCI數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果表明,所提算法能針對(duì)不同大小的總測試代價(jià)約束進(jìn)行有效的屬性和粒度選擇,并且揭示了算法所得的最優(yōu)屬性子集和最優(yōu)數(shù)據(jù)粒度隨著總測試代價(jià)上限的大小變化的規(guī)律。
本節(jié)建立理論模型,從而為下一節(jié)的算法設(shè)計(jì)提供理論依據(jù)。首先根據(jù)置信水平和置信區(qū)間的關(guān)系給出了屬性的誤差邊界和誤差區(qū)間的計(jì)算方法;接著建立了基于誤差置信水平的鄰域模型,然后結(jié)合現(xiàn)實(shí)情況分別設(shè)計(jì)了可變的測試代價(jià)函數(shù)和誤分類代價(jià)函數(shù);最后給出了數(shù)據(jù)集中對(duì)象測試與分類的平均總代價(jià)的計(jì)算方法。
根據(jù)數(shù)據(jù)觀測誤差的特點(diǎn),假設(shè)誤差服從均值為0的正態(tài)分布,而數(shù)據(jù)粒度的大小用誤差置信水平來衡量。如前文所述,一個(gè)數(shù)據(jù)集經(jīng)常含有多個(gè)屬性,令σa表示數(shù)據(jù)集中所有對(duì)象關(guān)于屬性a的觀測誤差所服從的正態(tài)分布的標(biāo)準(zhǔn)差,e(a,p)表示這些對(duì)象關(guān)于屬性a和置信水平p的觀測值的誤差邊界,則有:
e(a,p)=σa·zp
(1)
(2)
其中,λ>0為調(diào)節(jié)系數(shù)。結(jié)合式(1)和式(2),可以計(jì)算得到數(shù)據(jù)集中對(duì)象關(guān)于屬性a和置信水平p的誤差邊界e(a,p),從而得到誤差區(qū)間[-e(a,p),+e(a,p)]。顯然,誤差邊界和誤差區(qū)間隨著置信水平的增大而增大,這時(shí)數(shù)據(jù)精度下降,數(shù)據(jù)粒度變粗。
決策系統(tǒng)和鄰域是數(shù)據(jù)挖掘中的常用概念。本節(jié)分別給出基于誤差置信水平的決策系統(tǒng)和鄰域的定義如下。
定義1稱六元組S=(U,C,D,V,I,p)為基于誤差置信水平的決策系統(tǒng)ECLDS(Error-Confidence-Level-based Decision System),其中,U為對(duì)象的集合,稱為論域;C為條件屬性的集合;D為決策屬性的集合;V={Va|a∈C∪D},Va為屬性a的值域;I={Ia|a∈C∪D},Ia:U→Va為信息函數(shù);p∈(0,0.997]為誤差置信水平。
定義2設(shè)S=(U,C,D,V,I,p)為一個(gè)ECLDS,則對(duì)于任意的x∈U,a∈C,對(duì)象x的基于屬性a和誤差置信水平p的鄰域?yàn)椋?/p>
N(a,p)(x)={y∈U‖a(y)-a(x)|≤2e(a,p)}
(3)
這里分析選擇2e(a,p)而不是e(a,p)作為鄰域中對(duì)象的最大距離的原因。在誤差環(huán)境中a(x)是對(duì)象x關(guān)于屬性a的觀測值,設(shè)x關(guān)于屬性a的真實(shí)值為a′(x),則有a′(x)-e(a,p)≤a(x)≤a′(x)+e(a,p),即a′(x)-e(a,p)和a′(x)+e(a,p)可能為同一個(gè)對(duì)象的觀測值,這時(shí)|(a′(x)+e(a,p))-(a′(x)-e(a,p))|=2e(a,p),所以對(duì)象x的鄰域N(a,p)(x)必須包含所有觀測值跟a(x)的距離不超過2e(a,p)的對(duì)象。
由式(3)可知,對(duì)于任意的x∈U,B?C,x基于屬性子集B和誤差置信水平p的鄰域?yàn)椋?/p>
N(B,p)(x)=∩a∈BN(a,p)(x)
(4)
即對(duì)象關(guān)于屬性子集的鄰域是關(guān)于單個(gè)屬性的鄰域的交集。由以上鄰域的定義及分析可知,一個(gè)對(duì)象的鄰域中的所有元素跟這個(gè)對(duì)象本身是不可區(qū)分的。
由式(3)和式(4),可得到鄰域N(B,p)(x)分別關(guān)于屬性子集B和誤差置信水平p的單調(diào)性,如以下兩個(gè)定理所示。
定理1(關(guān)于屬性子集的單調(diào)性) 設(shè)S=(U,C,D,V,I,p)為一個(gè)ECLDS,B1?B2?C,則對(duì)于任意的x∈U,有:
N(B1,p)(x)?N(B2,p)(x)
定理2(關(guān)于置信水平的單調(diào)性) 設(shè)S=(U,C,D,V,I,p)為一個(gè)ECLDS,B?C,p1 N(B,p1)(x)?N(B,p2)(x) 由以上兩個(gè)定理可知,同一個(gè)對(duì)象的鄰域隨著屬性子集的增大而縮小,隨著誤差置信水平的增大而擴(kuò)大。 本小節(jié)根據(jù)現(xiàn)實(shí)中測試代價(jià)和誤分類代價(jià)變化的特點(diǎn)來設(shè)計(jì)這兩類代價(jià)函數(shù)。 首先討論屬性的測試代價(jià)。如前面所述,一個(gè)屬性的測試代價(jià)一般隨著數(shù)據(jù)粒度的變細(xì)而增加,而數(shù)據(jù)粒度用誤差置信水平來衡量;當(dāng)置信水平增加時(shí),數(shù)據(jù)精度下降,數(shù)據(jù)粒度變粗,所以測試代價(jià)是誤差置信水平的單調(diào)遞減函數(shù)。用tc(a,p)表示屬性a基于置信水平p的測試代價(jià),設(shè): (5) tc(B,p)=∑a∈Btc(a,p) (6) 即總測試代價(jià)是屬性集中每個(gè)屬性測試代價(jià)的和。 接著討論對(duì)象的誤分類代價(jià)。如前所述,誤分類代價(jià)經(jīng)常隨著總測試代價(jià)的增加而增大。令二元組(h,k)表示把屬于第h類的對(duì)象誤分到第k類,簡稱為一個(gè)誤分類別對(duì),mc(h,k)(B,p)表示誤分類別對(duì)(h,k)在屬性子集為B和置信水平為p的條件下的誤分類代價(jià)。顯然,當(dāng)h=k即正確分類時(shí),mc(h,k)(B,p)=0。當(dāng)h≠k時(shí),令: tc(B,p)∈[TTCj-1,TTCj],j=1,2,…,n (7) 值得注意的是,由于篇幅所限,本文僅給出分段常值函數(shù)形式的測試代價(jià)和誤分類代價(jià)函數(shù),研究者也可根據(jù)實(shí)際情況設(shè)計(jì)其他類型的代價(jià)函數(shù)。 如前所述,本文以最小化論域中對(duì)象測試與分類的平均總代價(jià)為目標(biāo),尋找最優(yōu)的屬性子集和數(shù)據(jù)粒度。平均總代價(jià)由兩部分組成:論域中對(duì)象的平均測試代價(jià)和平均誤分類代價(jià)。為了簡便起見,本文假設(shè)論域中每個(gè)對(duì)象的測試屬性集和誤差置信水平都分別一樣,顯然這些對(duì)象基于屬性子集B和置信水平p的平均測試代價(jià)等于每個(gè)對(duì)象分別的總測試代價(jià),即為tc(B,p)。 接下來分析平均誤分類代價(jià)的計(jì)算方法。第一步也是關(guān)鍵的步驟是,對(duì)于論域中的每個(gè)對(duì)象,根據(jù)其鄰域的情況對(duì)其進(jìn)行分類,得到該對(duì)象的誤分類代價(jià),分類依據(jù)是一個(gè)鄰域中對(duì)象的不可區(qū)分性以及最小化鄰域中對(duì)象的總誤分類代價(jià)這兩個(gè)原則。具體地,用mc(x,B,p)表示對(duì)象x基于屬性子集B和誤差置信水平p的誤分類代價(jià),則根據(jù)鄰域N(B,p)(x)的情況有兩種可能:(1)當(dāng)N(B,p)(x)中所有對(duì)象的決策屬性值一樣時(shí),則可以將這些對(duì)象包括x分到正確的類別,這時(shí)mc(x,B,p)=0;(2)當(dāng)N(B,p)(x)中對(duì)象的決策屬性值不完全一樣時(shí),則根據(jù)使N(B,p)(x)中所有對(duì)象的誤分類代價(jià)總和最小的原則將x分到相應(yīng)的類別,這時(shí)即可得到mc(x,B,p)。接著,計(jì)算論域U中對(duì)象的總誤分類代價(jià)和平均誤分類代價(jià),分別為: TMC(U,B,p)=∑x∈Umc(x,B,p) (8) 和 AMC(U,B,p)=TMC(U,B,p)/|U| (9) 綜上,可得平均總代價(jià)為: ATC(U,B,p)=tc(B,p)+AMC(U,B,p) (10) 本節(jié)設(shè)計(jì)了測試代價(jià)受限情形下數(shù)據(jù)的屬性和粒度同步選擇的算法。該算法由算法1和算法2組成。 算法1測試代價(jià)受限的屬性和粒度同步選擇算法 輸入:決策系統(tǒng)S=(U,C,D,V,I,p), 總測試代價(jià)的上限值w,最小置信水平p0,置信水平的遞增步長r,每個(gè)屬性的測試代價(jià)函數(shù),每個(gè)誤分類別對(duì)相應(yīng)的誤分類代價(jià)函數(shù)。 輸出:全局的最小平均總代價(jià)gmtc和最優(yōu)屬性子集R*以及最優(yōu)誤差置信水平p*。/*它們都是全局變量*/ (1)gmtc=+∞;//gmtc表示全局最小平均總代價(jià) (2) for (p=p0;p≤0.997;p=p+r) do (3) 得到置信水平p下每個(gè)屬性a的測試代價(jià)tc(a,p); (4)cmtc=+∞;/*cmtc表示當(dāng)前置信水平下最小平均總代價(jià)*/ (5)B=?;//當(dāng)前測試屬性集 (6)cttc=0;//當(dāng)前的總測試代價(jià) (7)backtracking(B,cttc,1);/*調(diào)用算法2,得到cmtc和R*/ (8) if (cmtc (9)gmtc=cmtc;//更新全局最小平均總代價(jià) (10)R*=R;//更新全局最優(yōu)屬性子集 (11)p*=p;//更新最優(yōu)置信水平 (12) end if (13) end for 算法2回溯算法backtracking(B,cttc,l) 輸入:當(dāng)前的測試屬性集B和總測試代價(jià)cttc,以及當(dāng)前搜索路徑下屬性指標(biāo)的起始值l。 輸出:當(dāng)前置信水平下的最小平均總代價(jià)cmtc和最優(yōu)屬性子集R。/*它們都是全局變量*/ (1) for (i=l;i≤|C|;i++) do (2) if (tc(ai,p)≥cmtc||tc(ai,p)>w) then (3) continue;//剪枝,摒棄測試代價(jià)過高的屬性 (4) end if (5)B=R∪{ai}; (6)tc(B,p)=cttc+tc(ai,p); (7) if (tc(B,p)≥cmtc||tc(B,p)>w) then (8) continue;/*剪枝,摒棄總測試代價(jià)過高的屬性子集*/ (9) end if (10) 得到每個(gè)誤分類別對(duì)(h,k)相應(yīng)的誤分類代價(jià)mc(h,k)(B,p); (11) 計(jì)算每個(gè)對(duì)象的鄰域和誤分類代價(jià); (12) 計(jì)算平均誤分類代價(jià)AMC(U,B,p); (13)ATC(U,B,p)=tc(B,p)+AMC(U,B,p); (14) if (ATC(U,B,p) (15)cmtc=ATC(U,B,p);/*更新當(dāng)前最小平均總代價(jià)*/ (16)cttc=tc(B,p);//更新當(dāng)前總測試代價(jià) (17)R=B;//更新當(dāng)前最優(yōu)屬性子集 (18) end if (19)backtracking(B,cttc,i+1);//再下一層搜索 (20) end for 算法1中,誤差置信水平由最小值p0(p0>0,可由用戶根據(jù)具體情況給定)逐步遞增到最大值0.997。對(duì)于每個(gè)置信水平,其相應(yīng)的最小平均總代價(jià)和最優(yōu)屬性子集由算法1調(diào)用算法2得到,再將該平均總代價(jià)與現(xiàn)有的全局最小平均總代價(jià)進(jìn)行比較,從而得到全局最優(yōu)的屬性子集和誤差置信水平。特別地,當(dāng)總測試代價(jià)不受限時(shí),可設(shè)算法1中的輸入量w=+∞,所以測試代價(jià)不受限可看成有受限的特殊情形。 算法2是一個(gè)回溯算法,它使用了三個(gè)剪枝技術(shù)以提高效率。 首先,如第1行所示,回溯算法的搜索路徑中屬性指標(biāo)的起始值l不是都從1開始,而是隨著算法的進(jìn)行在遞增的,這樣減少了搜索工作量;其次,如第2行~第4行所示,當(dāng)單個(gè)屬性的測試代價(jià)過高時(shí),則進(jìn)行剪枝;最后,如第7行~第9行所示,當(dāng)屬性子集的總測試代價(jià)過高時(shí),也進(jìn)行剪枝。后面兩個(gè)剪枝主要是基于平均誤分類代價(jià)不小于0的特點(diǎn)而提出的。這三個(gè)剪枝技術(shù)能較大程度地提高算法的效率。 為了驗(yàn)證所提出的屬性和粒度選擇算法的性能,本文使用了7個(gè)常用的UCI數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。如表1所示,這些數(shù)據(jù)集分別涉及到醫(yī)療、金融、物理和圖形學(xué)等領(lǐng)域,因此具有較強(qiáng)的代表性和現(xiàn)實(shí)意義。在實(shí)驗(yàn)中,令誤差置信水平的最小值p0和遞增步長r都為0.1,式(2)中正態(tài)分布的標(biāo)準(zhǔn)差的調(diào)節(jié)系數(shù)λ=0.05;令每個(gè)屬性的測試代價(jià)為其值介于10和100之間的分段常值函數(shù),它們隨著誤差置信水平的增高而遞減;令每個(gè)誤分類別對(duì)的代價(jià)為其值介于500和10 000之間的分段常值函數(shù),它們隨著總測試代價(jià)的增大而遞增。 Table 1 Dataset information 通過實(shí)驗(yàn)發(fā)現(xiàn),運(yùn)用算法可以得到不同大小的總測試代價(jià)上限下最優(yōu)的屬性子集和數(shù)據(jù)粒度;算法的運(yùn)行時(shí)間較短,并且總測試代價(jià)的上限越低,算法的運(yùn)行時(shí)間越短,這是因?yàn)榧糁夹g(shù)在起作用。此外,不同數(shù)據(jù)集在屬性和粒度的選擇結(jié)果隨總測試代價(jià)上限的大小變化方面服從類似的規(guī)律。表2~表4和圖1給出了每個(gè)數(shù)據(jù)集的一組代表性實(shí)驗(yàn)結(jié)果,其中的最大總測試代價(jià)指的是測試代價(jià)不受限情況下最優(yōu)的屬性和粒度選擇結(jié)果相應(yīng)的總測試代價(jià)值。具體地,表2~表4分別列出了Diab、Liver和Wpbc三個(gè)數(shù)據(jù)集的最優(yōu)置信水平和最優(yōu)屬性子集以及相應(yīng)的三種代價(jià)值;而為了直觀起見,對(duì)于其他四個(gè)數(shù)據(jù)集,則畫出了平均測試代價(jià)和平均總代價(jià)的變化趨勢圖,如圖1所示,顯然每個(gè)子圖中同一橫坐標(biāo)對(duì)應(yīng)的平均總代價(jià)和平均測試代價(jià)的差值就是平均誤分類代價(jià)(事實(shí)上,如2.4節(jié)所述,數(shù)據(jù)集中對(duì)象的平均測試代價(jià)等于單個(gè)對(duì)象的總測試代價(jià))。 Table 2 Representative experimental results of Diab dataset,where the maximum total test cost is 128.746 Table 3 Representative experimental results of Liver dataset,where the maximum total test cost is 154.034 4 Table 4 Representative experimental results of Wpbc dataset,where the maximum total test cost is 77.518 1 Figure 1 Cost comparison under different sizes of constraint圖1 不同大小的約束下的代價(jià)對(duì)比圖 從這些圖表中可以發(fā)現(xiàn),隨著測試代價(jià)受限程度的增強(qiáng),即隨著總測試代價(jià)的上限占最大總測試代價(jià)比例的減少,所得最優(yōu)誤差置信水平可能不變也可能改變,但當(dāng)所得最優(yōu)屬性子集不變時(shí),最優(yōu)置信水平一般會(huì)增加(如表3中第4~6行),表示放寬對(duì)相同屬性的數(shù)據(jù)精度要求;最優(yōu)屬性子集的維度呈現(xiàn)減少的趨勢,具體地,維度可能逐漸減少(如表3和表4所示),也可能先增加后減少(如表2所示);平均測試代價(jià)遞減,平均誤分類代價(jià)遞增,平均總代價(jià)除極個(gè)別外也遞增。而當(dāng)總測試代價(jià)的上限相當(dāng)?shù)蜁r(shí),所得屬性子集為空集,如表2~表4的最后一行所示,以及圖1中四個(gè)子圖的橫坐標(biāo)有的只到20%,有的只到30%,即當(dāng)上限值占最大總測試代價(jià)的比例為10% 或20% 時(shí),沒辦法得到非空的屬性子集。 從以上實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)的規(guī)律和現(xiàn)實(shí)情況是吻合的。以醫(yī)療為例,當(dāng)看病的人能承擔(dān)的費(fèi)用越有限時(shí),他/她不得不更多地減少必須檢查的項(xiàng)目,或降低對(duì)這些項(xiàng)目的精度要求,或替換成測試代價(jià)較低但分類能力較差的項(xiàng)目(如表2中第4~6行所示),從而導(dǎo)致誤分類(誤診)可能性較大程度地增大,所以平均誤分類代價(jià)增高,平均總代價(jià)一般也增高。而當(dāng)病人能承擔(dān)的費(fèi)用實(shí)在低時(shí),即使他/她再降低對(duì)檢查結(jié)果精度的要求,即誤差置信水平再高,也沒有合適的檢查項(xiàng)目滿足要求。 考慮到數(shù)據(jù)值獲取過程中經(jīng)常存在誤差,并且屬性的測試代價(jià)和樣本的誤分類代價(jià)經(jīng)常隨著誤差范圍的大小而變化,還有樣本的總測試代價(jià)大小有可能受到約束等因素,本文提出了測試代價(jià)受限情況下的一種屬性和粒度同步選擇的方法,充分討論了相關(guān)的理論知識(shí),并設(shè)計(jì)了一個(gè)較為高效的算法。實(shí)驗(yàn)結(jié)果驗(yàn)證了所設(shè)計(jì)算法的有效性,并分析了屬性和粒度選擇結(jié)果隨總測試代價(jià)上限的大小變化的規(guī)律。本文為代價(jià)敏感學(xué)習(xí)的實(shí)際應(yīng)用提供了理論和技術(shù)支持。接下來擬進(jìn)一步改進(jìn)算法以高效求解大型數(shù)據(jù)集的相關(guān)問題。2.3 可變的代價(jià)函數(shù)
2.4 平均總代價(jià)的計(jì)算方法
3 算法設(shè)計(jì)
4 實(shí)驗(yàn)與分析
5 結(jié)束語