在机器学习领域,处理高维特征数据时通常会面临冗余和不相关的特征问题,因此特征选择成为一个重要的挑战。对于多维度数据,Relief算法作为一种传统的特征选择算法,具有较高的计算效率和较好的稳定性,被大量应用于实际场景,但Relief算法的特征选择结果具有随机性,不同的初始采样会有不同的结果,且对于特征之间存在较强依赖关系的数据集,如共线性等,可能会导致结果不准确。本文提出了一种特征选择方法,称为X-ACO方法,它结合了XGBoost和蚁群算法。本文算法蚁群路径搜索过程的启发式信息使用XGBoost算法的特征重要性来表示。同时,使用特征之间的皮尔森相关系数来调整信息素浓度,以便更好地控制特征的相关性。实验证明,X-ACO方法可以在保证分类准确率的前提下,减少特征数量,降低特征冗余,并提高算法性能。 In the field of machine learning, the problem of redundant and irrelevant features is usually faced when dealing with high-dimensional feature data, so feature selection becomes an important chal-lenge. For high-dimensional data, Relief algorithm, as a commonly used feature selection algorithm, has high computational efficiency and good stability, and is heavily used in practical scenarios, but the feature selection results of Relief algorithm have randomness, different initial sampling will have different results, and it may lead to inaccurate results for data sets with strong dependencies between features, such as covariance. In this paper, we propose a feature selection method, called X-ACO method, which combines XGBoost and ant colony optimization. The method uses the feature importance of the XGBoost algorithm as heuristic information for the ant colony path search process of the algorithm in this paper. Meanwhile, the Pearson correlation coefficient between features is used to adjust the pheromone concentration in order to better control the relevance of features. Experiments demonstrate that the X-ACO method can reduce the number of features, reduce feature redundancy, and improve the algorithm performance while ensuring classification accuracy.
在机器学习领域,处理高维特征数据时通常会面临冗余和不相关的特征问题,因此特征选择成为一个重要的挑战。对于多维度数据,Relief算法作为一种传统的特征选择算法,具有较高的计算效率和较好的稳定性,被大量应用于实际场景,但Relief算法的特征选择结果具有随机性,不同的初始采样会有不同的结果,且对于特征之间存在较强依赖关系的数据集,如共线性等,可能会导致结果不准确。本文提出了一种特征选择方法,称为X-ACO方法,它结合了XGBoost和蚁群算法。本文算法蚁群路径搜索过程的启发式信息使用XGBoost算法的特征重要性来表示。同时,使用特征之间的皮尔森相关系数来调整信息素浓度,以便更好地控制特征的相关性。实验证明,X-ACO方法可以在保证分类准确率的前提下,减少特征数量,降低特征冗余,并提高算法性能。
特征选择,XGBoost,蚁群算法,皮尔森系数
Ling’ao Zhang
School of Information Science and Technology, Qingdao University of Science and Technology, Qingdao Shandong
Received: Mar. 22nd, 2023; accepted: Apr. 21st, 2023; published: Apr. 28th, 2023
In the field of machine learning, the problem of redundant and irrelevant features is usually faced when dealing with high-dimensional feature data, so feature selection becomes an important challenge. For high-dimensional data, Relief algorithm, as a commonly used feature selection algorithm, has high computational efficiency and good stability, and is heavily used in practical scenarios, but the feature selection results of Relief algorithm have randomness, different initial sampling will have different results, and it may lead to inaccurate results for data sets with strong dependencies between features, such as covariance. In this paper, we propose a feature selection method, called X-ACO method, which combines XGBoost and ant colony optimization. The method uses the feature importance of the XGBoost algorithm as heuristic information for the ant colony path search process of the algorithm in this paper. Meanwhile, the Pearson correlation coefficient between features is used to adjust the pheromone concentration in order to better control the relevance of features. Experiments demonstrate that the X-ACO method can reduce the number of features, reduce feature redundancy, and improve the algorithm performance while ensuring classification accuracy.
Keywords:Feature Selection, XGBoost, Ant Colony Optimization (ACO), Pearson Coefficient
Copyright © 2023 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
在机器学习处理实际问题中,往往存在着大量冗余、无关和不必要的特征 [
在实际应用中,特征选择在数据预处理过程中非常重要,可以帮助去除冗余和无关特征,提高模型的解释性和泛化性能。特征选择的研究已经有很长的历史,并且一直受到学术界和工业界的广泛关注。近年来,随着机器学习算法和数据科学应用的广泛应用,特征选择的重要性也越来越突出。然而,由于现实数据集通常包含大量特征,因此进行特征选择时往往会面临一些挑战。例如,可能存在高度相关的特征,这会导致模型过度拟合和性能下降。另外,某些特征可能会包含噪声或无关信息,这也会影响模型的精度和可解释性。
为了应对这些挑战,学术界和工业界已经提出了许多特征选择方法和算法 [
为了解决上述问题,本文提出了一种将XGBoost与蚁群算法相结合的特征选择方法,并引入了皮尔森(Pearson)系数来表示特征间的相关性系数,经实验验证,相对于传统特征选择方法,本文特征选择方法可以更好地改善模型的各种性能与泛化能力。
梯度提升决策树(Extreme Gradient Boosting, XGBoost)即一种高效的梯度提升决策树算法。它在原有的GBDT基础上进行了改进,使得模型效果得到大大提升。作为一种前向加法模型,他的核心是采用集成思想——Boosting思想,将多个弱学习器通过整合为一个强学习器。即用多棵树共同决策,并且用每棵树的结果都是目标值与之前所有树的预测结果之差,并累加所有的结果,得到最终的结果,以此达到整个模型效果的提升 [
XGBoost是由多棵CART (Classification And Regression Tree),即分类回归树组成,因此它可以处理分类回归等问题。研究证明,在高维数据处理方面,XGBoost算法可以根据特征重要性自动选择特征,提高模型的泛化能力,降低过拟合。
本文方法选择XGBoost算法的基尼系数来度量特征重要性,具体原理公式如下:
假设有m个特征 X 1 , X 2 , X 3 , ⋯ , X m ,用V表示特征重要性,计算出每个特征 X j 的Gini指数评分 V j Gini 。Gini指数的计算公式为:
G m = ∑ k = 1 | K | ∑ k ′ ≠ k p m k p m k ′ = 1 − ∑ k = 1 | K | p m k 2 (1)
V j m Gini 表示特征 X j 在节点m的重要性,即节点m分枝前后的Gini指数变化量:
V j m Gini = G m − G l − G r (2)
对求得的各特征的重要性进行归一化:
V j Gini = V j Gini ∑ i = 1 c V i Gini (3)
其中, V j Gini 是特征 X j 的基尼指数, ∑ i = 1 c V i Gini 是特征的增益之和。
皮尔森相关系数即皮尔森积矩相关系数(Pearson Product-moment Correlation Coefficient),是最常用的一种线性相关系数。用来反映两个属性X和Y的线性相关程度,绝对值越大表明属性间相关性越强。
两个属性间的皮尔森系数越高,属性间的相关性越强,在特征选择时,尽量避免同时选取相关性较强的特征。皮尔森系数的计算公式如下:
ρ X , Y = cov ( X , Y ) σ X σ Y (4)
其中, cov ( X , Y ) 表示属性X,Y的协方差, σ X σ Y 表示属性X,Y的标准差的乘积。
蚁群算法(Ant Colony Optimization, ACO)由意大利学者Colorni等人于1991年提出 [
蚁群算法通过信息素的挥发与更新来搜索最优解,常用于解决优化问题 [
针对传统Relief选择算法对多维度数据特征选择有效性差、对存在较强依赖关系的特征选择结果不精确等问题,本文提出了一种基于XGBoost和蚁群算法的特征选择方法,简称X-ACO。
对于每一只蚂蚁来说,它经过的每一个特征,都有两种状态:0或1,0表示该节点未被选中状态,1表示被选中状态。对于每只蚂蚁从初始位置出发到终点的路径上,对于特征i和j,则存在4条可供选择的路径,分别是0→0、0→1、1→0、1→1。
对于每只蚂蚁所经过路径上的每一个节点,其被选择的概率如下:
p i , j k ( t ) = { τ i , j α η i , j β ∑ k ∈ C τ i , k α η i , k β , j ∈ C 0 , 否 则 (5)
其中,i表示当前节点;j表示下一个待选节点;C表示蚂蚁能够访问且尚未被访问到的节点集合; τ i , j 表示节点间的信息素; α 是信息素因子; η i , j 表示节点的启发性信息; β 是启发式信息因子。
设初始时刻有n只蚂蚁,并随机初始化n只蚂蚁的初始位置,各条路径上的信息素 τ 0 初始值相等。 τ i , j = V ,XGBoost特征重要性V的计算公式见式(2),经过t时刻,当蚁群的所有蚂蚁全部完成一次遍历后,及时更新各条路径上的信息素 [
τ i , j ( t ) = ( 1 − ρ ) ∗ τ i , j ( t − 1 ) (6)
其中, ρ 为信息素挥发系数,通常设置 0 < ρ ≤ 1 。其次是蚂蚁在它们所经过边上释放信息素。
τ i , j ( t ) = τ i , j ( t − 1 ) + ∑ k = 1 n Δ τ i , j k (7)
其中, Δ τ i , j k 是第k只蚂蚁向它经过的边释放的信息素,定义为:
Δ τ i , j k = { Q ρ i , j , 边 ( i , j ) 在 路 径 上 0 , 否 则 (8)
其中,Q为信息素常数,表示每只蚂蚁循环一次释放的信息素总量, ρ i , j 为路径长度,即皮尔森相关系数,见公式(4)。结合公式(5)和公式(8)可知,皮尔森线性相关系数越小,该路径上的信息素浓度越高,且特征重要度越高,该路径被其他的蚂蚁选择的概率就越高。
本文结合XGBoost算法和蚁群算法,并引入皮尔森系数作为节点间的路径长度,提出一种特征选择方法,X-ACO算法。算法描述如下:首先运用XGBoost算法来计算每个特征的特征重要度V;然后利用皮尔森系数计算函数,见式(4),算出特征间的相关性系数 ρ ;接下来构建X-ACO算法,计算各特征的选择概率P,并进行参数的初始化和信息素 τ 的更新;最后运用X-ACO方法输出选择的最优特征子集Sx。
为了对本文算法进行更为准确直观的描述,现给出X-ACO算法伪代码见表1。
输入:数据集S |
---|
输出:最优特征子集Sx |
1. 计算数据集各特征重要性V。 |
2. 构建X-ACO算法: |
a. 初始化信息素 τ 0 ,蚂蚁个数n,启发性函数V,蚂蚁随机初始位置,最大迭代次数max。 |
b. 运用式(4)计算特征间的相关性系数。 |
c. for i =1 to max do |
for i =1 to m do |
运用式(5)计算每个蚂蚁在每条路径上的选择概率P。 |
End for |
运用式(6)、式(7)、式(8)更新信息素 τ 。 |
End for |
d. 输出最优特征子集Sx。 |
表1. X-ACO算法伪代码
本文从UCI数据库中选择了一些经典的数据集对算法进行验证。经典的数据集见表2。
数据集 | 样本数 | 特征数 | 分类数 |
---|---|---|---|
wpbc | 198 | 33 | 2 |
wdbc | 569 | 30 | 2 |
Sonar | 208 | 60 | 2 |
Spambase | 4601 | 57 | 2 |
Wine | 178 | 13 | 3 |
表2. UCI数据集描述
本文实验环境为ThinkPad E550c笔记本,Intel(R) Core(TM) i3-4005U CPU @ 1.70 GHz,4.0 GB内存,Windows 10 64位操作系统,软件环境为Jupyter 6.3.0、Python 3.8.3。
在分类器选择上,选取逻辑回归作为分类器,对本文方法选取的特征、与原始数据特征进行了分类预测准确率比较;首先对实验数据进行预处理,先将各数据进行归一化操作,将每个特征属性列的数据都归一到[0, 1]之间,然后对预处理后的数据进行特征选择实验。本文方法与数据集原始特征数据在逻辑回归分类器上的分类准确率和特征个数的对比结果见表3。
对比分类精度,从表3不难看出,在UCI数据集上,本文方法分类准确率相较于原始数据的分类准确率均取得较优提升。本文方法选取特征更少,拟合效果较优。通过对比表4中的精确率、F1分数以及AUC三项评价指标发现X-ACO算法大多数情况下三项评价指标都略高于Relief算法。
数据集 | 本文方法 | 原始数据 | 本文选取特征个数 | 原始特征数 |
---|---|---|---|---|
wpbc | 0.929 | 0.901 | 3 | 33 |
wdbc | 0.952 | 0.936 | 5 | 30 |
Sonar | 0.807 | 0.692 | 6 | 60 |
Spambase | 0.925 | 0.894 | 5 | 57 |
Wine | 0.981 | 0.944 | 3 | 13 |
表3. 分类准确率和特征个数对比
算法 | 指标 | wpbc | wdbc | Sonar | Spambase | Wine |
---|---|---|---|---|---|---|
Relief | ACC | 0.918 | 0.941 | 0.814 | 0.880 | 0.962 |
F1 | 0.892 | 0.912 | 0.826 | 0.856 | 0.956 | |
AUC | 0.902 | 0.933 | 0.765 | 0.877 | 0.952 | |
X-ACO | ACC | 0.929 | 0.952 | 0.807 | 0.933 | 0.981 |
F1 | 0.905 | 0.930 | 0.852 | 0.918 | 0.981 | |
AUC | 0.924 | 0.945 | 0.781 | 0.929 | 1 |
表4. X-ACO算法与传统Relief算法实验性能比较
表4为本文方法X-ACO与传统Relief特征选择算法在UCI的数据集上各项评价指标对比结果。与Relief算法相比,本文方法在分类准确率、F1分数、AUC等指标性能上都有明显的优势。在Sonar数据集上,本文方法分类准确率略低于Relief算法;但本文方法的F1分数为0.852,高于Relief算法的F1分数0.826;在wpbc、wdbc和Spambase数据集上,本文方法分类准确率、F1分数、AUC均优于传统Relief;在多分类数据集Wine上,本文方法在分类准确率、加权F1分数、AUC三项评价指标上均优于Relief算法。
综上所述,本文X-ACO特征选择方法在分类准确率、F1分数、AUC上均优于传统的特征选择算法,不仅达到了数据降维的目标,同时提高了算法的泛化能力。
本文提出的基于XGBoost算法和蚁群算法的特征选择方法(X-ACO方法),运用各个特征的XGBoost特征重要度作为蚁群算法部分的启发式函数,同时利用特征间的皮尔森(Pearson)相关系数表示各特征之间的距离长短,进而选择最优特征子集,从而达到数据降维的效果。实验表明,本文方法能在降低特征维度的同时,确保数据集分类的准确率,减少特征冗余,提高算法的各项性能,为实际生产中的特征选择问题提供了重要的方法依据。
张凌翱. 基于XGBoost和蚁群算法的特征选择方法Feature Selection Method Based on XGBoost and Ant Colony Optimization[J]. 计算机科学与应用, 2023, 13(04): 883-889. https://doi.org/10.12677/CSA.2023.134086
https://doi.org/10.1016/j.jksuci.2023.02.005
https://doi.org/10.1016/j.istruc.2023.02.066
https://doi.org/10.3390/rs15040873
https://doi.org/10.3390/su15032699