python特征选择pso_粒子群优化算法(PSO)之基于离散化的特征选择(FS)(三)
作者:Geppetto
前面我們介紹了特征選擇(Feature Selection,FS)與離散化數據的重要性,總覽的介紹了PSO在FS中的重要性和一些常用的方法,介紹了FS與離散化的背景,介紹本文所采用的基于熵的切割點和最小描述長度原則(MDLP)。今天我們來學習利用PSO來進行離散化特征選擇的一些方法。今天我們會介紹EPSO與PPSO。
EPSO和PPSO都遵循圖一所示的基本步驟。初始化后,對粒子進行迭代評估和更新,直到滿足停止條件為止。為了對粒子進行評價,首先對訓練數據進行離散化,并根據進化的切點選擇特征。然后將轉換后的數據放入學習算法中,計算出適應度。基于這種適應性,pbest和gbest被更新并用于更新粒子的位置。
圖一
在這兩種方法中離散化和FS步驟的工作原理是相同的。為實現離散化,如果特征值小于某個截點,則將其轉換為0;否則,它就是1。如果一個特性的所有值都轉換為相同的離散值,那么它就被認為是一個無關的特性,因為它不能區分不同類的實例。FS是通過消除這些無用的特性來完成的。在整個離散化數據的分類性能改進的基礎上,對剩余的離散特征進行了評價。
A.EPSO
EPSO的主要思想是使用BBPSO直接演化出一個可以在相應的特征值范圍[MinF···MaxF]內任何值的切點。每個粒子的位置表示一個候選解,它是一個與問題的維數相對應的n維的實向量。圖二給出了一個粒子位置及其相應候選解的例子。在這個例子中,粒子的第一個維度,表示第一個特性(F1)的切割點,需要在范圍內有一個值[8.5,25.7]。如果一個特性F的更新點超出了這個范圍,它將被設置到最近的邊界。
圖二
(1)粒子初始化:由于在高維數據上的多變量離散化的搜索空間是巨大的。這意味著對于那些在初始候選方案中未被選中的特性,它們的切點將被設置為相應特性的最大值。對于其他選擇的特性,它們的切點是使用滿足MDLP的最好的基于熵的切割點初始化的。原則上,它們可以根據對應特性范圍內的任何值進行初始化。然而,完全隨機的初始切點可能導致收斂速度較慢。此外,特征的最佳切點的信息增益是其相關性的指標。因此,具有較大信息增益的特性在初始化過程中被選擇的概率更大。
(2)粒子評價:基于粒子所產生的切點,訓練數據轉換為離散值的新訓練集和較少的特征數,這要歸功于消除特征,其切割點等于最小值或最大值。例如,在圖2中,F3切割點等于它的最大值,F5的切點等于它的最小值,這兩個特征都將被丟棄。
然后根據轉換訓練集的分類精度,對每個粒子的離散化和FS解進行評估,通過對整個離散數據的評估,提出的方法可以對所有選定特征的分割點進行評估,同時考慮特征交互。適應度函數采用平衡分類精度,如下:
其中c是問題的類數,TPi是i類中正確識別的實例數,|Si|是類i的樣本量,所有類的權重均為1/c。
B.PPSO
在EPSO中,BBPSO可以自由地在相應的范圍內生成一個剪切點。這可能會導致一個巨大的搜索空間,特別是在多維數據的多變量方法中。因此,為了將搜索空間縮小到高度潛在的區域,在PPSO中,我們使用BBPSO來從每個特性的潛在斷點中選擇一個切點。潛在的切點是基于熵的切點,它們的信息增益滿足前面所講的MDLP準則。每個特征可能有不同數量的可能的切割點,它們被計算并存儲在一個可能的切點表中。圖3給出了該表和粒子位置以及相應候選方案的示例。每個粒子位置都是一個整數向量,表示所選的剪切點索引。因此,向量的大小等于原始特征的數量,而進化的值需要介于1和相應特征的潛在的切點數量之間。例如,在圖3中,第一個特性(F1)有兩個可能的剪切點,索引1和2。因此,粒子的第一個維度需要落在范圍[1,2]。如果它是2,那么切割點6.8被選擇來離散F1。
圖三
在更新過程中,如果一個維度的更新值不在切點索引范圍之外,則將其設置為0,這表明相應的特性沒有一個好的切點,因此應該被忽略。
(1)粒子初始化:每個粒子位置都被初始化為一個隨機特征子集,其中有一些被選中的特征,它們的切點索引與0不同。選中的特性將會將它們的切點索引設置為最佳MDLP剪切點的索引。與EPSO相似,具有較高信息增益的特性將有更高的選擇機會。
為了使PPSO通用到所有的問題,PPSO使用一個限制的大小為所有數據集。然后在進化過程中,當BBPSO似乎卡在局部最優,如果當前的gbest fitness比最后一個gbest fitness至少有10%的優勢,BBPSO將被重新設置為更大的尺寸(縮放機制)。這個機制的目的是開始搜索小的特性子集,同時打開更大更好的功能子集的機會。
(2)粒子評估:基于每個特性的選定的切點索引,從潛在的切點表中檢索出切點值。然后用它來離散相應的特征。但是,如果一個特性的進化的剪切點索引為0,那么該特性就被認為是未被選中的。因此,在圖3中,本例中沒有選擇F2和F4。
在EPSO中,分類精度被用來作為衡量每個粒子的適應度指標。這可能很難區分類與類之間的邊界相當大的情況,使許多不同的模型獲得相同的精度。此外,雖然包裝器方法能夠產生高精度的解決方案,但過濾方法通常更快、更普遍。將這兩種方法的強度結合在評價函數中,有望產生更好的解決方案。此外,結合這兩種方法,還可以更好地區分特征子集之間的細微差別,提供更平滑的適應度環境以方便搜索過程。然而,簡單地結合這些措施在計算上可能是不切實際的。因此,我們需要找到一種聰明的方法來組合它們,而不需要更多的運行時間。在常用的濾波方法中,距離是一種多變量測量方法,可以對特征集的判別能力進行評估,并將其作為KNN的基本測量方法。因此,將該方法與KNN包裝方法結合起來不會增加計算時間,因為距離測量只計算一次,但使用兩次。
適應度函數使用兩種平衡分類精度和距離測量加權系數(μ)與測量的距離,如下所示,用于最大化之間的距離不同的類的實例(DB)和減少之間的距離相同的類的實例(DW)。DB和DW采用以下公式計算:
其中Dis(Vi, Vj)是兩個向量Vi和Vj之間的距離。在本文中,我們使用兩個二進制向量之間的匹配或重疊的比例作為它們之間的距離。
參考文獻:
文章:“A New Representation in PSO for Discretization-Based Feature Selection”
作者:Binh Tran, Student Member, IEEE, Bing Xue, Member, IEEE, and Mengjie Zhang, Senior Member, IEEE
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python特征选择pso_粒子群优化算法(PSO)之基于离散化的特征选择(FS)(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 录屏专家快捷键(屏幕录制专家快捷键)
- 下一篇: 怎么访问家庭路由器下的主机如何访问路由器