Relief 特征选择算法简单介绍
相關(guān)文章
特征選擇
LVW(Las Vegas Wrapper)特征選擇算法簡單介紹
Relief(Relevant Features) 是著名的過濾式特征選擇方法,Relief 為一系列算法,它包括最早提出的 Relief 以及后來拓展的 Relief-F 和 RRelief-F ,其中最早提出的 Relief 針對(duì)的是二分類問題,RRelief-F 算法可以解決多分類問題,RRelief-F 算法針對(duì)的是目標(biāo)屬性為連續(xù)值的回歸問題。
1 原始的 Relief 算法
最早提出的 Relief 算法主要針對(duì)二分類問題,該方法設(shè)計(jì)了一個(gè)“相關(guān)統(tǒng)計(jì)量”來度量特征的重要性,該統(tǒng)計(jì)量是一個(gè)向量,向量的每個(gè)分量是對(duì)其中一個(gè)初始特征的評(píng)價(jià)值,特征子集的重要性就是子集中每個(gè)特征所對(duì)應(yīng)的相關(guān)統(tǒng)計(jì)量之和,因此可以看出,這個(gè)“相關(guān)統(tǒng)計(jì)量”也可以視為是每個(gè)特征的“權(quán)值”。可以指定一個(gè)閾值 τ\tauτ,只需選擇比 τ\tauτ 大的相關(guān)統(tǒng)計(jì)量對(duì)應(yīng)的特征值,也可以指定想要選擇的特征個(gè)數(shù) kkk,然后選擇相關(guān)統(tǒng)計(jì)量分量最大的 kkk 個(gè)特征。
有了 Relief 的基本思想,那么現(xiàn)在的問題就轉(zhuǎn)換成如何得到一種有效的權(quán)值或者相關(guān)統(tǒng)計(jì)量類對(duì)特征進(jìn)行度量,Relief 借用了 “假設(shè)間隔”(hypothesis margin) 的思想,我們知道在分類問題中,常常會(huì)采用決策面的思想來進(jìn)行分類,“假設(shè)間隔”就是指在保持樣本分類不變的情況下,決策面能夠移動(dòng)的最大距離,可以表示為:
θ=12(∥x?M(x)∥?∥x?H(x)∥)(1)\theta = \frac{1}{2}(\|x-M(x)\|-\| x-H(x)\|) \tag{1}θ=21?(∥x?M(x)∥?∥x?H(x)∥)(1)
其中,M(x)M(x)M(x)、H(x)H(x)H(x) 指的是與 xxx 同類的和與 xxx 非同類的最近鄰點(diǎn)。
我們知道,當(dāng)一個(gè)屬性對(duì)分類有利時(shí),則該同類樣本在該屬性上的距離較近,而異類樣本在該屬性上的距離較遠(yuǎn),因此,若將假設(shè)間隔推廣到對(duì)屬性的評(píng)價(jià)中,則對(duì)應(yīng)于公式(1)圓括號(hào)中的第一項(xiàng)越小,第二項(xiàng)越大,則該屬性對(duì)分類越有利。“假設(shè)間隔”能對(duì)各維度上的特征的分類能力進(jìn)行評(píng)價(jià),從而就可以近似地估計(jì)出對(duì)分類最有用的特征子集,Relief 正是利用了這個(gè)特性。
假設(shè)訓(xùn)練集 DDD 為 (x1,y1),(x2,y2),?,(xm,ym){(x_1,y_1), (x_2,y_2),\cdots,(x_m,y_m)}(x1?,y1?),(x2?,y2?),?,(xm?,ym?),對(duì)每個(gè)樣本 xix_ixi?,計(jì)算與 xix_ixi? 同類別的最近鄰 xi,nhx_{i,nh}xi,nh?,稱為是 “猜中近鄰”(near-heat),然后計(jì)算與 xix_ixi? 非同類別的最近鄰 xi,nmx_{i,nm}xi,nm?,稱為是 “猜錯(cuò)近鄰”(near-miss),則屬性 jjj 對(duì)應(yīng)的相關(guān)統(tǒng)計(jì)量為:
δj=∑i?diff(xij,xi,nhj)2+diff(xij,xi,nmj)2(2)\delta^j=\sum_i{-diff(x_i^j, x_{i,nh}^j)^2+ diff(x_i^j, x_{i,nm}^j)^2} \tag{2}δj=i∑??diff(xij?,xi,nhj?)2+diff(xij?,xi,nmj?)2(2)
其中,xajx_a^jxaj? 代表樣本 xax_axa? 在屬性 jjj 上的取值,diff(xaj,xbj)diff(x_a^j,x_b^j)diff(xaj?,xbj?) 的計(jì)算取決于屬性 jjj 的類型:
(1)對(duì)離散型屬性:
diff(xaj,xbj)={0,xaj=xbj1,otherwisediff(x_a^j,x_b^j)= \begin{cases} 0, & x_a^j=x_b^j \\ 1, & otherwise \end{cases} diff(xaj?,xbj?)={0,1,?xaj?=xbj?otherwise?
(2)對(duì)連續(xù)型屬性:
diff(xaj,xbj)=∣xaj?xbj∣diff(x_a^j,x_b^j)=| x_a^j-x_b^j | diff(xaj?,xbj?)=∣xaj??xbj?∣
注:xajx_a^jxaj?,xbjx_b^jxbj?已經(jīng)規(guī)范化到 [0,1][0,1][0,1] 區(qū)間。
從公式(2)中可以看出,若 xix_ixi? 與其猜中近鄰 xi,nhx_{i,nh}xi,nh? 在屬性 jjj 上的距離小于 xix_ixi? 與其非同類別的最近鄰 xi,nmx_{i,nm}xi,nm? 的距離,則說明屬性 jjj 對(duì)區(qū)分同類與異類樣本是有利的,反之則不利,因此公式(2)的值越大則說明該屬性的分類能力越強(qiáng)。
公式(2)得到的是單個(gè)樣本對(duì)每個(gè)屬性的評(píng)價(jià)值,將所有樣本對(duì)同一個(gè)屬性的評(píng)價(jià)值進(jìn)行平均就得到了該屬性的相關(guān)統(tǒng)計(jì)分量,分量值越大,分類能力就越強(qiáng)。
2 Relief-F
Relief 算法只能直接處理兩分類的特征選擇,改進(jìn)的 Relief-F 算法能夠處理多分類問題,它將多分類視為是一類對(duì)多類直接加以解決。其方法是尋找當(dāng)前樣本的各類最近鄰點(diǎn)并綜合加以計(jì)算。
假設(shè)數(shù)據(jù)集為 DDD,該數(shù)據(jù)集一共包含 ∣y∣|y|∣y∣ 個(gè)類別,對(duì)示例 xix_ixi?,若它屬于第 kkk 類(k∈{1,2,?,∣y∣}k\in\{1,2,\cdots, |y|\}k∈{1,2,?,∣y∣}),則 Relef-F 算法先在第 kkk 類的樣本中尋找 xix_ixi? 的最近鄰 xi,nhx_{i,nh}xi,nh?,作為樣本 xix_ixi? 的猜中近鄰,然后在第 kkk 類之外的每個(gè)類別的樣本中尋找 xix_ixi? 的最近鄰 xi,l,nmx_{i,l,nm}xi,l,nm?(l=1,2,?,∣y∣;l≠kl=1,2,\cdots, |y|;l\neq kl=1,2,?,∣y∣;l?=k),作為樣本 xix_ixi? 的猜錯(cuò)近鄰,則相關(guān)統(tǒng)計(jì)量對(duì)應(yīng)于屬性 jjj 的分量為:
δj=∑i?diff(xij,xi,nhj)2+∑l≠k(pl×diff(xij,xi,l,nmj)2)\delta^j=\sum_i{-diff(x_i^j, x_{i,nh}^j)^2+\sum_{l\neq k} (p_l \times diff(x_i^j, x_{i,l,nm}^j)^2)} δj=i∑??diff(xij?,xi,nhj?)2+l?=k∑?(pl?×diff(xij?,xi,l,nmj?)2)
其中,plp_lpl? 為第 lll 類樣本在數(shù)據(jù)集 DDD 中所占的比例。
【參考文獻(xiàn)】
《機(jī)器學(xué)習(xí)》周志華著.–北京:清華大學(xué)出版社
總結(jié)
以上是生活随笔為你收集整理的Relief 特征选择算法简单介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux管道和重定向 ---多命令协作
- 下一篇: RTTI 简明