掌桥专利:专业的专利平台
掌桥专利
首页

一种特征选择方法、装置、存储介质和设备

文献发布时间:2023-06-19 13:29:16


一种特征选择方法、装置、存储介质和设备

技术领域

本申请涉及机器学习领域,尤其涉及一种特征选择方法、装置、存储介质和设备。

背景技术

边缘计算作为一种新型计算模式,其核心原则之一是将计算能力推向边缘。边缘计算的核心理念是将数据的存储、传输、计算和安全交给边缘节点来处理,大量实时的需要交互的计算将在边缘节点完成,同时边缘设备的计算能力非常有限,不像云端服务器可以处理大规模的运算,因此,我们需要不断设法去提高边缘节点的计算效率。

随着人工智能的快速发展,许多机器学习模型被部署到了边缘节点当中,对于机器学习模型来说,输入特征数是影响模型计算效率的一个重要因素。从原始特征中选择部分最有利于模型分类的特征不仅可以减少模型的运算时间,同时也减小了冗余特征和对分类没有帮助的特征对分类结果的影响,提高分类精度。

为此,如何提高机器学习模型在边缘计算环境下的计算效率,成为本领域亟需解决的问题。

发明内容

申请人发现:现有的机器学习模型在边缘计算环境下计算效率不高的问题,主要是机器学习模型所采用的训练特征的效果不佳。

本申请提供了一种特征选择方法、装置、存储介质和设备,目的在于为机器学习模型选择合适的训练特征,以提高机器学习模型在边缘计算环境下的计算效率。

为了实现上述目的,本申请提供了以下技术方案:

一种特征选择方法,包括:

预先获取经由对原始数据进行特征工程所得到的各个特征;

利用ReliefF算法,计算各个所述特征的权重;

删除权重小于预设权重阈值的特征,并将剩余的特征标识为有效特征;

调用预设的适应度函数,对基于各个所述有效特征初始化得到的粒子群中的每个粒子进行适应度评估,并通过预设粒子群算法,迭代更新每个所述粒子的位置和速度,得到每个所述粒子的最终适应度;其中,所述适应度函数的参数项包括特征子集在预设分类器上的分类效果、所述特征子集的重要性、所述特征子集所包含的有效特征的数量;所述特征子集的重要性,基于所述特征子集中所包含的有效特征的权重所确定;每个所述粒子均代表一个所述特征子集;所述特征子集包括多个所述有效特征;

选取最终适应度最小的特征子集中所包含的有效特征,作为所述机器学习模型的训练特征。

可选的,所述利用ReliefF算法,计算各个所述特征的权重,包括:

基于各个所述特征,构建特征集;

依据抽样步骤对所述特征集进行多次抽样;其中,所述抽取步骤包括:从所述特征集中随机选择一个样本,并从和所述样本同类的其它样本中选取多个最近邻样本,作为第一最近邻样本,以及从和所述样本不同的每一类的其它样本中选取多个最近邻样本,作为第二最近邻样本;

将所述样本、所述第一最近邻样本和所述第二最近邻样本,代入预设的迭代计算公式中,计算得到每个所述特征的权重。

可选的,所述调用预设的适应度函数,对基于各个所述有效特征初始化得到的粒子群中的每个粒子进行适应度评估,并通过预设粒子群算法,迭代更新每个所述粒子的位置和速度,得到每个所述粒子的最终适应度,包括:

从各个所述有效特征中,随机选取两个所述有效特征组合为特征子集;

计算每个所述特征子集的互信息,并将每个所述特征子集的互信息均转换为互信息矩阵;

基于各个所述互信息矩阵、预先设定的粒子数和每个粒子的特征数,构建粒子群;

按照预设步骤对所述粒子群进行多次迭代更新,得到每个所述粒子的最终适应度;其中,所述预设步骤包括:利用预设的适应度函数,对所述粒子群中的每个所述粒子进行适应度评估,得到每个所述粒子的适应度;依据适应度最小的粒子的速度,对每个所述粒子的速度进行更新;依据适应度最小的粒子的位置,对每个所述粒子的位置进行更新。

可选的,所述特征子集的重要性,基于所述特征子集中所包含的有效特征的权重所确定,包括:

对于所述特征子集中的每个有效特征,依据所述有效特征的权重,确定所述有效特征的重要性值;

计算各个所述有效特征的重要性值的平均值,得到所述特征子集的重要性。

一种特征选择装置,包括:

特征获取单元,用于预先获取经由对原始数据进行特征工程所得到的各个特征;

权重计算单元,用于利用ReliefF算法,计算各个所述特征的权重;

特征删除单元,用于删除权重小于预设权重阈值的特征,并将剩余的特征标识为有效特征;

粒子群优化单元,用于调用预设的适应度函数,对基于各个所述有效特征初始化得到的粒子群中的每个粒子进行适应度评估,并通过预设粒子群算法,迭代更新每个所述粒子的位置和速度,得到每个所述粒子的最终适应度;其中,所述适应度函数的参数项包括特征子集在预设分类器上的分类效果、所述特征子集的重要性、所述特征子集所包含的有效特征的数量;所述特征子集的重要性,基于所述特征子集中所包含的有效特征的权重所确定;每个所述粒子均代表一个所述特征子集;所述特征子集包括多个所述有效特征;

特征选取单元,用于选取最终适应度最小的特征子集中所包含的有效特征,作为所述机器学习模型的训练特征。

可选的,所述权重计算单元具体用于:

基于各个所述特征,构建特征集;

依据抽样步骤对所述特征集进行多次抽样;其中,所述抽取步骤包括:从所述特征集中随机选择一个样本,并从和所述样本同类的其它样本中选取多个最近邻样本,作为第一最近邻样本,以及从和所述样本不同的每一类的其它样本中选取多个最近邻样本,作为第二最近邻样本;

将所述样本、所述第一最近邻样本和所述第二最近邻样本,代入预设的迭代计算公式中,计算得到每个所述特征的权重。

可选的,所述粒子群优化单元具体用于:

从各个所述有效特征中,随机选取两个所述有效特征组合为特征子集;

计算每个所述特征子集的互信息,并将每个所述特征子集的互信息均转换为互信息矩阵;

基于各个所述互信息矩阵、预先设定的粒子数和每个粒子的特征数,构建粒子群;

按照预设步骤对所述粒子群进行多次迭代更新,得到每个所述粒子的最终适应度;其中,所述预设步骤包括:利用预设的适应度函数,对所述粒子群中的每个所述粒子进行适应度评估,得到每个所述粒子的适应度;依据适应度最小的粒子的速度,对每个所述粒子的速度进行更新;依据适应度最小的粒子的位置,对每个所述粒子的位置进行更新。

可选的,所述粒子群优化单元具体用于:

对于所述特征子集中的每个有效特征,依据所述有效特征的权重,确定所述有效特征的重要性值;

计算各个所述有效特征的重要性值的平均值,得到所述特征子集的重要性。

一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行所述的特征选择方法。

一种特征选择设备,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;

所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行所述的特征选择方法。

本申请提供的技术方案,预先获取经由对原始数据进行特征工程所得到的各个特征。利用ReliefF算法,计算各个特征的权重。删除权重小于预设权重阈值的特征,并将剩余的特征标识为有效特征。调用预设的适应度函数,对基于各个有效特征初始化得到的粒子群中的每个粒子进行适应度评估,并通过预设粒子群算法,迭代更新每个粒子的位置和速度,得到每个粒子的最终适应度。选取最终适应度最小的特征子集中所包含的有效特征,作为机器学习模型的训练特征。利用ReliefF算法,计算各个特征的权重,并将权重小于预设权重阈值的特征进行删除,能够减小后续算法的时间复杂度,此外,预设的适应度函数中综合了特征子集的分类效果和重要性,使得通过预设粒子群算法所选择出的有效特征的效果更优,不仅能够有效提高机器学习模型的计算效率,还能够提高机器学习模型分类结果的准确性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种特征选择方法的流程示意图;

图2为本申请实施例提供的一种计算各个特征的权重的流程示意图;

图3为本申请实施例提供的一种通过二进制粒子群算法优化粒子群的流程示意图;

图4为本申请实施例提供的一种特征选择装置的架构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

如图1所示,为本申请实施例提供的一种特征选择方法的流程示意图,包括如下步骤:

S101:预先获取经由对原始数据进行特征工程所得到的各个特征。

其中,特征可以理解为机器学习模型的输入数据,具体的,通过对原始数据(即不被机器学习模型所识别的数据,包括结构化数据和非结构化数据)进行特征工程,得到可被机器学习模型识别的各个特征。一般来讲,特征工程包括特征提取和特征处理。

所谓的特征提取,是指将机器学习算法不能识别的原始数据转化为算法可以识别的特征的过程。来自自然界的特征本身可能并不是数学形式,或者原始值虽是数值但特征值之间没有任何偏序关系,特征提取这个过程类似于编码的过程。

所谓的特征处理,通过对即特征值(即数值)的处理和加工,将特征值的属性通过处理转换为数据特征的过程,属性是数据本身具有的维度,特征是数据中所呈现出来的某一种重要的特性,通常是通过属性的计算,组合或转换得到的,比如主成分分析就是将大量的数据属性转换为少数几个特征的过程,某种程度而言,好的数据以及特征往往是一个性能优秀模型的基础。

S102:利用ReliefF算法,计算各个特征的权重。

其中,利用ReliefF算法,计算得出各个特征的权重的具体实现过程,可以参见图2所示的步骤、以及步骤的解释说明。

S103:删除权重小于预设权重阈值的特征,并将剩余的特征标识为有效特征。

S104:调用预设的适应度函数,对基于各个有效特征初始化得到的粒子群中的每个粒子进行适应度评估,并通过预设粒子群算法,迭代更新每个粒子的位置和速度,得到每个粒子的最终适应度。

其中,适应度函数的参数项包括特征子集在预设分类器上的分类效果、特征子集的重要性、特征子集所包含的有效特征的数量。每个粒子均代表一个特征子集,特征子集包括多个有效特征。

具体的,适应度函数如公式(1)所示。

f=ω

在公式(1)中,f代表特征子集的适应度值,ω

需要说明的是,预设分类器包括但不限于为:k-means算法模型和随机森林算法模型。在本申请实施例中,可采用分类正确率作为分类效果的评价指标,具体的,分类正确率的表达公式如公式(2)所示。

在公式(2)中,FP表示负样本被预测错误的个数,FN表示正样本被预测错误的个数,TP表示正样本被预测正确的个数,TN表示负样本被正确预测的个数。

此外,特征子集的重要性,基于特征子集中所包含的有效特征的权重所确定。

可选的,对于特征子集中的每个有效特征,依据有效特征的权重,确定有效特征的重要性值,并计算各个有效特征的重要性值的平均值,得到特征子集的重要性。

具体的,特征子集的重要性的计算过程如公式(3)所示。

在公式(3)中,k代表特征子集所包含的有效特征的数量,I

一般来讲,有效特征的重要性值的计算过程,可参见公式(4)所示。

在公式(4)中,W

需要强调的是,预设粒子群算法包括但不限于为二进制粒子群算法,调用公式(1)所示的适应度函数,对基于各个有效特征初始化得到的粒子群中的每个粒子进行适应度评估,并通过二进制粒子群算法,迭代更新每个粒子的位置和速度,得到每个粒子的最终适应度的具体实现过程,可以参见图3所示的步骤、以及步骤的解释说明。

S105:选取最终适应度最小的特征子集中所包含的有效特征,作为机器学习模型的训练特征。

其中,最终适应度最小的特征子集,所包含的有效特征的效果更为优秀。

综上所述,利用ReliefF算法,计算各个特征的权重,并将权重小于预设权重阈值的特征进行删除,能够减小后续算法的时间复杂度,此外,预设的适应度函数中综合了特征子集的分类效果和重要性,使得通过预设粒子群算法所选择出的有效特征的效果更优,不仅能够有效提高机器学习模型的计算效率,还能够提高机器学习模型分类结果的准确性。

如图2所示,为本申请实施例提供的一种计算各个特征的权重的流程示意图,包括如下步骤:

S201:基于各个特征,构建特征集。

S202:依据抽样步骤对特征集进行多次抽样。

其中,抽样步骤包括:从特征集中随机选择一个样本,并从和样本同类的其它样本中选取多个最近邻样本,作为第一最近邻样本,以及从和样本不同的每一类的其它样本中选取多个最近邻样本,作为第二最近邻样本。

S203:将样本、第一最近邻样本和第二最近邻样本,代入预设的迭代计算公式中,计算得到特征集中每个特征的权重。

其中,迭代计算公式包括如公式(5)所示。

在公式(5)中,W(A)代表权重,k代表最近邻样本的选取个数,A代表特征,R代表样本,H

综上所述,利用本实施例所示方案,能够有效计算得出各个特征的权重。

如图3所示,为本申请实施例提供的一种通过二进制粒子群算法优化粒子群的流程示意图,包括如下步骤:

S301:从各个有效特征中,随机选取两个有效特征组合为特征子集。

S302:计算每个特征子集的互信息,并将每个特征子集的互信息均转换为互信息矩阵。

其中,计算特征特征子集的互信息的具体过程,如公式(6)所示。

在公式(6)中,I代表互信息,X和Y均代表特征子集中所包含的两个有效特征,m代表有效特征X的取值个数,n代表有效特征Y的取值个数,p代表概率。

S303:基于各个互信息矩阵、预先设定的粒子数和每个粒子的特征数,构建粒子群。

其中,将每个互信息矩阵视为粒子群的全景图的边,并按照从小到大的顺序不断删除每个互信息矩阵中的值,直至将全部有效特征划分为vec个互相没有连接的部分,vec代表特征数。此外,对于每个粒子,从每个部分中随机选择一个有效特征作为初始选择的有效特征。

S304:按照预设步骤对粒子群进行多次迭代更新,得到每个粒子的最终适应度。

其中,迭代更新的具体次数可由技术人员根据实际情况进行设置。

此外,预设步骤包括:

1、利用公式(1)所示的适应度函数,对粒子群中的每个粒子进行适应度评估,得到每个粒子的适应度。

2、依据适应度最小的粒子的速度,对每个粒子的速度进行更新。

需要说明的是,对于每一个粒子随机初始化一个速度向量V,在传统的粒子群算法中速度向量V表示的是粒子每次更新的方向和大小,在二进制粒子群算法中它表示的是粒子的每一维特征取1的概率,即选择该维特征的概率,在搜索过程中记录下所有粒子中历史最优的取值gbest和每个粒子i自己历史最优的取值pbest

在公式(7)中,ω代表权重,c

3、依据适应度最小的粒子的位置,对每个粒子的位置进行更新。

需要说明的是,在速度向量更新后,对于向量中每一维速度值

每一维速度值通过sigmoid函数映射到0到1的范围内之后,将会产生一个随机阈值,若sigmoid函数的输出值大于该随机阈值,则确定该维特征值为1,否则确定该维特征值为0,具体的,如公式(9)所示。

在公式(9)中,

综上所述,利用本实施例所示方案,能够有效优化粒子群中的每个粒子,得到每个粒子的最终适应度。

与上述本申请实施例提供的特征选择方法相对应,本申请实施例还提供了一种特征选择装置。

如图4所示,为本申请实施例提供的一种特征选择装置的架构示意图,包括:

特征获取单元100,用于预先获取经由对原始数据进行特征工程所得到的各个特征。

权重计算单元200,用于利用ReliefF算法,计算各个特征的权重。

其中,权重计算单元200具体用于:基于各个特征,构建特征集;依据抽样步骤对特征集进行多次抽样;其中,抽取步骤包括:从特征集中随机选择一个样本,并从和样本同类的其它样本中选取多个最近邻样本,作为第一最近邻样本,以及从和样本不同的每一类的其它样本中选取多个最近邻样本,作为第二最近邻样本;将样本、第一最近邻样本和第二最近邻样本,代入预设的迭代计算公式中,计算得到每个特征的权重。

特征删除单元300,用于删除权重小于预设权重阈值的特征,并将剩余的特征标识为有效特征。

粒子群优化单元400,用于调用预设的适应度函数,对基于各个有效特征初始化得到的粒子群中的每个粒子进行适应度评估,并通过预设粒子群算法,迭代更新每个粒子的位置和速度,得到每个粒子的最终适应度;其中,适应度函数的参数项包括特征子集在预设分类器上的分类效果、特征子集的重要性、特征子集所包含的有效特征的数量;特征子集的重要性,基于特征子集中所包含的有效特征的权重所确定;每个粒子均代表一个特征子集;特征子集包括多个有效特征。

其中,粒子群优化单元400具体用于:从各个有效特征中,随机选取两个有效特征组合为特征子集;计算每个特征子集的互信息,并将每个特征子集的互信息均转换为互信息矩阵;基于各个互信息矩阵、预先设定的粒子数和每个粒子的特征数,构建粒子群;按照预设步骤对粒子群进行多次迭代更新,得到每个粒子的最终适应度;其中,预设步骤包括:利用预设的适应度函数,对粒子群中的每个粒子进行适应度评估,得到每个粒子的适应度;依据适应度最小的粒子的速度,对每个粒子的速度进行更新;依据适应度最小的粒子的位置,对每个粒子的位置进行更新。

粒子群优化单元400具体用于:对于特征子集中的每个有效特征,依据有效特征的权重,确定有效特征的重要性值;计算各个有效特征的重要性值的平均值,得到特征子集的重要性。

特征选取单元500,用于选取最终适应度最小的特征子集中所包含的有效特征,作为机器学习模型的训练特征。

综上所述,利用ReliefF算法,计算各个特征的权重,并将权重小于预设权重阈值的特征进行删除,能够减小后续算法的时间复杂度,此外,预设的适应度函数中综合了特征子集的分类效果和重要性,使得通过预设粒子群算法所选择出的有效特征的效果更优,不仅能够有效提高机器学习模型的计算效率,还能够提高机器学习模型分类结果的准确性。

本申请还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本申请提供的特征选择方法。

本申请还提供了一种特征选择设备,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本申请提供的特征选择方法,包括如下步骤:

预先获取经由对原始数据进行特征工程所得到的各个特征;

利用ReliefF算法,计算各个所述特征的权重;

删除权重小于预设权重阈值的特征,并将剩余的特征标识为有效特征;

调用预设的适应度函数,对基于各个所述有效特征初始化得到的粒子群中的每个粒子进行适应度评估,并通过预设粒子群算法,迭代更新每个所述粒子的位置和速度,得到每个所述粒子的最终适应度;其中,所述适应度函数的参数项包括特征子集在预设分类器上的分类效果、所述特征子集的重要性、所述特征子集所包含的有效特征的数量;所述特征子集的重要性,基于所述特征子集中所包含的有效特征的权重所确定;每个所述粒子均代表一个所述特征子集;所述特征子集包括多个所述有效特征;

选取最终适应度最小的特征子集中所包含的有效特征,作为所述机器学习模型的训练特征。

具体的,在上述实施例的基础上,所述利用ReliefF算法,计算各个所述特征的权重,包括:

基于各个所述特征,构建特征集;

依据抽样步骤对所述特征集进行多次抽样;其中,所述抽取步骤包括:从所述特征集中随机选择一个样本,并从和所述样本同类的其它样本中选取多个最近邻样本,作为第一最近邻样本,以及从和所述样本不同的每一类的其它样本中选取多个最近邻样本,作为第二最近邻样本;

将所述样本、所述第一最近邻样本和所述第二最近邻样本,代入预设的迭代计算公式中,计算得到每个所述特征的权重。

具体的,在上述实施例的基础上,所述调用预设的适应度函数,对基于各个所述有效特征初始化得到的粒子群中的每个粒子进行适应度评估,并通过预设粒子群算法,迭代更新每个所述粒子的位置和速度,得到每个所述粒子的最终适应度,包括:

从各个所述有效特征中,随机选取两个所述有效特征组合为特征子集;

计算每个所述特征子集的互信息,并将每个所述特征子集的互信息均转换为互信息矩阵;

基于各个所述互信息矩阵、预先设定的粒子数和每个粒子的特征数,构建粒子群;

按照预设步骤对所述粒子群进行多次迭代更新,得到每个所述粒子的最终适应度;其中,所述预设步骤包括:利用预设的适应度函数,对所述粒子群中的每个所述粒子进行适应度评估,得到每个所述粒子的适应度;依据适应度最小的粒子的速度,对每个所述粒子的速度进行更新;依据适应度最小的粒子的位置,对每个所述粒子的位置进行更新。

具体的,在上述实施例的基础上,所述特征子集的重要性,基于所述特征子集中所包含的有效特征的权重所确定,包括:

对于所述特征子集中的每个有效特征,依据所述有效特征的权重,确定所述有效特征的重要性值;

计算各个所述有效特征的重要性值的平均值,得到所述特征子集的重要性。

本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种特征选择方法、装置、存储介质和设备
  • 特征选择方法、装置、网络设备和计算机可读存储介质
技术分类

06120113692500