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

算法选择方法、装置和电子设备

文献发布时间:2023-06-19 10:54:12


算法选择方法、装置和电子设备

技术领域

本申请属于通信技术领域,具体涉及一种算法选择方法、装置和电子设备。

背景技术

机器学习是一个利用已有数据寻找一个能够刻画数据特征函数的过程。目前监督类机器学习分为回归学习及预测学习,在监督学习领域已经存在各种各样的学习算法,例如决策树、线性回归、贝叶斯分类、逻辑回归、支持向量机、极端梯度提升(xgboost)、神经网络族等。

其中,各类算法在进行机器学习任务时各有优劣,一般在遇到选择哪类算法进行工程应用的问题时,工程师往往是基于经验或者选择当前流行的机器学习算法。然后,利用所选择的机器学习算法以及已知数据集进行训练,并在训练过程中利用训练出来的标签和真实标签的差异(类似于偏差)来进行参数调优,从而选出最优的参数模型。

但是,在实现本申请过程中,发明人发现:由于各个应用场景特性不尽相同,如果最后模型效果评价不好,例如出现算法选择不合适或者利用选择的算法训练模型的成本较大且难以工程实现时,往往需要重新去尝试另外的算法,浪费了时间与成本。

由此可见,现有技术中,往往基于经验或者采用尝试的方式选择某一应用场景所使用的算法,其准确度较低,且探索成本较高。

本申请实施例的目的是提供一种算法选择方法、装置和电子设备,能够解决基于经验或者采用尝试的方式选择某一应用场景所使用的算法的准确度较低,且探索成本较高的问题。

为了解决上述技术问题,本申请是这样实现的:

第一方面,本申请实施例提供了一种算法选择方法,该方法包括:

将目标样本数据划分为N份训练数据和M份测试数据,其中,N大于1,M大于或等于1;

在j取1~G中的每一个整数时,执行如下过程:

针对第j个备选算法,通过每一份所述训练数据分别进行训练,得到第j个所述备选算法的N个模型;

根据所述M份测试数据,确定第j个所述备选算法的N个模型中的每一个模型的损失值;

根据第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数,其中,所述目标参数用于表示所述备选算法的性能优劣的评价值;

根据G个所述目标参数,从G个所述备选算法中确定目标算法;

其中,G为所述备选算法的数量。

第二方面,本申请实施例提供了一种算法选择装置,所述装置包括:

拆分模块,用于将目标样本数据划分为N份训练数据和M份测试数据,其中,N大于1,M大于或等于1;

第一参数确定模块,用于在j取1~G中的每一个整数时,执行如下过程:

针对第j个备选算法,通过每一份所述训练数据分别进行训练,得到第j个所述备选算法的N个模型;

根据所述M份测试数据,确定第j个所述备选算法的N个模型中的每一个模型的损失值;

根据第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数,其中,所述目标参数用于表示所述备选算法的性能优劣的评价值;

第一选择模块,用于根据G个所述目标参数,从G个所述备选算法中确定目标算法;

其中,G为所述备选算法的数量。

第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。

第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。

第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。

在本申请实施例中,能够将目标样本数据划分为N份训练数据和M份测试数据,然后在j取1~G中的每一个整数时,针对第j个备选算法,通过每一份训练数据分别进行训练,得到第j个备选算法的N个模型,从而根据M份测试数据,确定第j个备选算法的N个模型中的每一个模型的损失值,并根据第j个备选算法的N个模型的损失值,确定第j个备选算法的目标参数,进而根据G个目标参数,从G个备选算法中确定目标算法,G为所述备选算法的数量。

其中,目标参数用于表示备选算法的性能优劣的评价值,因此,本申请的实施例,可以根据目标样本数据确定出多个备选算法中每一种备选算法的性能优劣指标,即目标参数,进而可以根据目标参数,从多个备选算法中选出一种性能最优的算法,以在目标应用场景下使用。

由此可见,本申请的实施例,只需要根据目标样本数据确定备选算法的目标参数,从而根据目标参数就可以选出在目标应用场景下性能最优的算法,而不需要反复尝试与探索,因此,本申请的实施例所选出的目标应用场景所使用的算法的准确度较高,探索成本较少。

附图说明

图1是本申请实施例提供的一种算法选择方法的流程图;

图2是本申请实施例中目标样本数据的划分示意图;

图3是本申请实施例中模型族与f*的示意图;

图4是本申请实施例中算法选择装置的结构框图;

图5表示本申请的实施例提供的电子设备的框图之一;

图6表示本申请的实施例提供的电子设备的框图之二。

具体实施方式

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

本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。

参见图1,本发明一实施例提供了一种算法选择方法,所述方法可以包括以下步骤:

步骤101:将目标样本数据划分为N份训练数据和M份测试数据。

其中,N大于1,M大于或等于1。

在j取1~G中的每一个整数时,执行如下步骤102~104:

步骤102:针对第j个备选算法,通过每一份所述训练数据分别进行训练,得到第j个所述备选算法的N个模型。

步骤103:根据所述M份测试数据,确定第j个所述备选算法的N个模型中的每一个模型的损失值。

步骤104:根据第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数。

其中,所述目标参数用于表示所述备选算法的性能优劣的评价值。

另外,所述备选算法为适用于目标应用场景的算法,即所述多个备选算法能够实现相同的功能。例如在监督学习的应用场景下,可以使用决策树、线性回归、贝叶斯分类、逻辑回归、支持向量机、极端梯度提升、神经网络族等算法。但其中哪一种算法的性能最优,可以根据预先确定的目标样本数据确定。因此,上述目标参数用于表示所述备选算法的性能优劣的评价值,即通过目标参数的大小表示备选算法的性能优劣的程度。

由此可知,本申请的实施例,可以根据预先确定的目标样本数据,确定适用于目标应用场景的多个备选算法中每一种备选算法的性能优劣程度。

例如备选算法包括:xgboost、卷积神经网络(CNN)算法、融合算法(gbdt+lr)这三种算法,则在N=30,M=1时,需要针对xgboost算法,分别通过30份训练数据中每一份数据进行训练,从而得到xgboost算法的30个模型;同理,针对CNN算法分别通过30份训练数据中的每一份数据进行训练,从而得到CNN算法的30个模型,针对gbdt+lr分别通过30份训练数据中的每一份数据进行训练,得到gbdt+lr的30个模型。

然后,根据测试数据,分别计算xgboost算法的30个模型、CNN算法的30个模型、gbdt+lr的30个模型中每一个模型的损失值;进而,根据xgboost算法的30个模型的损失值,确定xgboost算法的目标参数,根据CNN算法的30个模型的损失值,确定CNN算法的目标参数,根据gbdt+lr的30个模型的损失值,确定gbdt+lr的目标参数。

由此可见,本申请的实施例,将预先确定的目标样本数据划分成N份训练数据和M份测试数据,从而针对各个备选算法通过每一份训练数据进行训练,得到各个备选算法的N个模型,进而通过M份测试数据,计算各个备选算法的每一个模型的损失值,从而可以根据同一个备选算法的N个模型的损失值,确定备选算法的目标参数。

其中,通过多份训练数据针对同一备选算法进行训练,从而可以获得该备选算法的多个模型,进而根据多个模型的损失值来确定该备选算法的目标参数,从而使得目标参数能够更加准确的表示备选算法的性能优劣程度。

可选的,在步骤101之前,所述方法还可包括:对目标样本数据进行数据清洗,从而利用进行数据清洗之后的目标样本数据执行步骤101~103。

其中,数据清洗的过程包括检查数据一致性,处理无效值和缺失值等。

因此,本申请实施例中,对目标样本数据进行标准化处理后,确定出的各个备选算法的目标参数能够更加准确的表示备选算法性能的优劣程度。

步骤105:根据G个所述目标参数,从G个所述备选算法中确定目标算法。

其中,G为所述备选算法的数量。

由上述可知,本申请实施例的算法选择方法,在本申请实施例中,能够将目标样本数据划分为N份训练数据和M份测试数据,然后在j取1~G中的每一个整数时,针对第j个备选算法,通过每一份训练数据分别进行训练,得到第j个备选算法的N个模型,从而根据M份测试数据,确定第j个备选算法的N个模型中的每一个模型的损失值,并根据第j个备选算法的N个模型的损失值,确定第j个备选算法的目标参数,进而根据G个目标参数,从G个备选算法中确定目标算法,G为所述备选算法的数量。

其中,目标参数用于表示备选算法的性能优劣的评价值,因此,本申请的实施例,可以根据目标样本数据确定出多个备选算法中每一种备选算法的性能优劣指标,即目标参数,进而可以根据目标参数,从多个备选算法中选出一种性能最优的算法,以在目标应用场景下使用。

由此可见,本申请的实施例,只需要根据目标样本数据确定备选算法的目标参数,从而根据目标参数就可以选出在目标应用场景下性能最优的算法,而不需要反复尝试与探索,因此,本申请的实施例所选出的目标应用场景所使用的算法的准确度较高,探索成本较少。

可选的,所述将目标样本数据划分为N份训练数据和M份测试数据,包括:

采用交叉验证法,将所述目标样本数据划分为N份训练数据和M份测试数据。

其中,用交叉验证的目的是为了得到可靠稳定的模型。即采用交叉验证法能够使得训练数据和测试数据更具有随机性,进而使得后续采用训练数据训练获得的模型更具有稳定性。

可选的,所述N份训练数据集中每一份训练数据集中的负目标样本数据的数量与预设数量之差小于预设值。具体的,例如所述N份训练数据集中每一份训练数据集中的负目标样本数据的数量相等。

由此可见,本申请的实施例中,设置各份训练数据中的负样本数据的数量近似相等,从而防止出现部分训练数据中没有负样本或者负样本不够导致模型训练失败的情况。

可选的,每一份所述测试数据包括输入数据和输出数据;根据所述M份测试数据,确定第j个所述备选算法的N个模型中其中一个模型的损失值的过程,包括:

在i取1~M中的每一个整数时,执行如下过程:

将第i份所述测试数据中的输入数据输入至第一模型中,输出第i份预测数据,其中,所述第一模型为所述第j个所述备选算法的N个模型中的其中一个;

将第i份所述测试数据中的输出数据和第i份所述预测数据,代入至预先确定的损失函数中,得到第i个损失值;

根据第1至第M个损失值,确定所述第一模型的损失值。

其中,在M等于1时,只需要将这一份测试数据中的输入数据输入至第一模型中,输出一份预测数据,从而将该份测试数据中的输出数据,与得到的预测数据,代入至预先确定的损失函数中,得到的损失值即为第一模型的损失值。

而在M大于1时,则需要针对每一份测试数据执行上述过程,从而得到与每一份测试数据对应的损失值,进而根据M份测试数据对应的损失值,确定第一模型的损失值。

可选的,所述损失函数为如下中的其中一种:

绝对值损失函数、平方损失函数、交叉熵损失函数、合页损失函数。

其中,第i份所述测试数据中的所述输入数据包括L个输入值,第i份所述测试数据中的输出数据包括与第i份所述测试数据中的所述输入值一一对应的输出值,第i份所述预测数据包括与第i份所述测试数据中的所述输出值一一对应的预测值,L大于零;

当上述损失函数为绝对值损失函数时,将第i份所述测试数据中的输出数据和第i份所述预测数据,代入至预先确定的损失函数中,得到第i个损失值,包括:

将第i份所述测试数据中包括的输出值,以及第i份所述预测数据中包括的预测值,代入绝对值损失函数

其中,f

当上述损失函数为平方损失函数时,将第i份所述测试数据中的输出数据和第i份所述预测数据,代入至预先确定的损失函数中,得到第i个损失值,包括:

将第i份所述测试数据中包括的输出值,以及第i份所述预测数据中包括的预测值,代入平方损失函数

其中,f

可选的,所述根据第1至第M个损失值,确定所述第一模型的损失值,包括:

计算第1至第M个损失值的第二平均值,并将所述第二平均值确定为所述第一模型的损失值。

即本申请实施例中,将第1至第M个损失值的平均值,作为第一模型的损失值,从而使得第一模型的损失值能够更加准确的表示第一模型对测试数据的预测结果与真实结果之间的偏差。

其中,可以理解的是,对于根据第1至第M个损失值,确定第一模型的损失值的方式并不局限于此。

可选的,所述根据所述N个模型的损失值,确定所述第一算法的目标参数,包括:

计算所述N个模型的损失值的第一平均值b;

计算所述N个模型的损失值的方差v;

将所述第一平均值b和所述方差v,代入至预设公式E=k1*b+k2*v,得到所述目标参数E;

其中,k1和k2分别为预先确定的权重。

另外,例如第p种备选算法的第q个模型的损失值为e

此外,偏差:描述的是预测值与真实值之间的差距,偏差越大,越偏离真实数据。方差:描述的是预测值的变化范围,即离散程度,也就是离其期望值的距离,方差越大,数据的分布越分散。

在机器学习模型中,估计模型的偏差表示模型太简单而带来的估计不准确的部分,模型过于简单,一般来说对数据的敏感性较差,整体模型的评估表现效果可能距离真实的数据较远;模型的方差表示的是由于模型太复杂而带来的更大的变化空间和不确定性,模型过于复杂,模型对于数据的敏感性强,评估的模型波动较大,亦会影响估计模型到真实模型的距离。

而在本申请的实施例中,一种备选算法的N个模型可以组成该备选算法的模型族,例如图3所示,f*表示真正能够刻画数据特征的函数,点f1*以及在第一圆形301覆盖范围内的其他点表示第一备选算法的模型族,点f2*以及在第二圆形302覆盖范围内的其他点表示第二备选算法的模型族,点f3*以及在第三圆形303覆盖范围内的其他点表示第三备选算法的模型族。由图3中可以看出,第一圆形301、第二圆形302和第三圆形303覆盖范围内的各个模型,到f*的距离实际上由两部分构成,一部分是整个模型族到f*的平均距离,另一部分是模型族自身模型的方差。

因此,在根据一种备选算法的N个模型的损失值,确定用于表示该备选算法的性能优劣的评价值时,可以综合考虑这N个模型的损失值的平均值和方差,即采用一种备选算法的N个模型的损失值的平均值和方差之和,可以更加准确的表示该备选算法的性能优劣程度,从而可以从多个备选算法中选出性能最优的算法作为目标应用场景所使用的算法。

可选的,所述根据G个所述目标参数,从G个所述备选算法中确定目标算法,包括:

选择所述目标参数最小的备选算法,以作为所述目标算法。

其中,当采用一种备选算法的N个模型的损失值的平均值和方差之和,作为该备选算法的目标参数时,目标参数越小则表示该备选算法的性能越高,因此,在此种情况下,目标参数最小的备选算法,即为多个备选算法中性能最优的备选算法(即目标算法)。

可选的,所述方法还包括:

计算所述目标算法的N个模型中每一个模型的参数信息,其中,所述参数信息包括准确率、召回率、综合评价指标中的其中一种;

根据所述目标算法的N个模型的所述参数信息,从所述目标算法的N个模型中选出一个模型,以作为所述目标应用场景所使用的目标模型。

其中,上述综合评价指标也可称为F值(Fsocre)

另外,可以在根据目标算法对每一份训练数据进行训练后获得的数据,计算该目标算法的每一个模型的准确率、召回率以及综合评价指标,从而可以根据准确率、召回率、综合评价指标中的其中一种,从目标算法中的N个模型中选出一个模型作为目标应用场景所使用的目标模型。

例如在目标应用场景下,比较看重模型的准确率,则可以从目标算法的N个模型中选择准确率最高的模型,以作为目标应用场景所使用的目标模型;或者目标场景下比较看重模型的召回率,则可以目标算法的N个模型中选择召回率最高的模型,以作为目标应用场景所使用的目标模型;或者,在目标应用场景下,比较看重模型的综合评价指标,则可以从目标算法的N个模型中选择综合评价指标最高的模型,以作为目标应用场景所使用的目标模型。

可选的,所述根据第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数,包括:

将第j个所述备选算法的N个模型的损失值进行数据归一化处理;

根据进行数据归一化处理之后的第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数

其中,在前述M大于1时,即在测试数据存在多份时,若多份测试数据可能包括不同场景下的数据,例如第一份测试数据是关于房价数据,第二份测试数据是关于手机价钱的数据,这两份数据本身在数量级上就相差较大,因此,利用这两份测试数据在同一个模型下的损失值也会相差较大。此时,若直接利用一种备选算法的N个模型的损失值计算该备选算法的目标参数,会削弱数量级较小的损失值的作用,放大数量级较大的损失值的作用,从而使得最终确定的该备选算法的目标参数不准确。

而本申请实施例中,可以对同一备选算法的N个模型的损失值分别进行归一化处理,从而使得该备选算法的N个模型的损失值处于同一个数量级别上,进而使得目标参数可以更加准确的表示备选算法的性能优劣程度。

即上述归一化处理能够实现在模型族内部(即一种备选算法的N个模型内部)标准化,以及回归指标的钝化,从而更好的对各个备选算法进行评估。

综上所述,本申请实施例的算法选择方法的具体实施方式可如下所述:

第一步:数据准备。

在将目标样本数据进行数据清洗后,如图2所示,将目标样本数据随机分为训练数据集和测试数据集,然后将训练数据随机平均分为30份(或30份以上数据,30为经验数字,一般认为30及以上样本量的统计指标能够描述整体分布),并使用负样本等深思想,保证每份训练数据中存在相等数量的负样本,从而防止出现部分训练数据中没有负样本或者负样本不够导致模型训练失败的情况。

即最终将目标样本数据划分成30份训练数据,1份测试数据。

第二步:确定备选算法以及超参数。

备选算法的选择理论上可穷举所有机器学习模型,但为了减少计算成本,一般根据相应的应用场景或者根据工程界的流行应用选择所需的分类或回归算法;例如可以将xgboost、CNN算法、gbdt+lr这三种算法作为备选算法。其中,各个备选算法的超参数采用经验值。

第三步:训练过程及损失评估,即针对每一种备选算法执行如下过程:

首先,采用备选算法以及该算法的超参数,对每一份训练数据进行训练,得到该备选算法的30个模型,其中,一种备选算法的30个模型可以组成该备选算法的模型族。

然后,将测试数据中包括的L个输入值分别输入至每一个模型,得到对应于每一个模型的L个预测值,然后针对每一个模型执行如下过程:

将测试数据中的L个输出值以及与其中一个模型对应的L个预测值,输入至预先确定的损失函数

由此可见,一种备选算法,通过训练数据训练可以获得30个模型,而每一个模型可以通过测试数据计算出一个损失值,因此,一种备选算法会对应存在30个模型的损失值。

第四步:根据如下公式计算每一种备选算法的目标参数E:

其中,E

第五步

选择目标参数最小的备选算法,以作为目标应用场景使用的算法。

第六步

根据目标算法的30个模型的准确率、召回率、Fsocre中的其中一种,从目标算法的30个模型中选出一个模型作为目标应用场景使用的模型。

由上述可知,本申请的实施例,利用不同的数据集在不同备选算法上的表现,定义相应备选算法下学习到的机器学习模型函数和真实函数的距离,选择性能最优的备选算法作为后续工程应用的方向,进而选择该备选算法中最优的模型作为基础进行后续建设。因此,本申请的实施例,能够使机器学习工程师在算法选择时期从各种备选算法里选择一种比较贴切当前应用场景的算法进行使用,从而减少后续的重复探索成本,提高建模成功及工程应用的能力,增强模型稳定性和泛化能力。

需要说明的是,本申请实施例提供的算法选择方法,执行主体可以为算法选择装置,或者,或者该算法选择装置中的用于执行加载算法选择方法的控制模块。本申请实施例中以算法选择装置执行加载算法选择方法为例,说明本申请实施例提供的算法选择方法。

参见图4,本发明一实施例提供了一种算法选择装置,所述算法选择装置400可以包括以下模块:

拆分模块401,用于将目标样本数据划分为N份训练数据和M份测试数据,其中,N大于1,M大于或等于1;

第一参数确定模块402,用于在j取1~G中的每一个整数时,执行如下过程:

针对第j个备选算法,通过每一份所述训练数据分别进行训练,得到第j个所述备选算法的N个模型;

根据所述M份测试数据,确定第j个所述备选算法的N个模型中的每一个模型的损失值;

根据第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数,其中,所述目标参数用于表示所述备选算法的性能优劣的评价值;

第一选择模块403,用于根据G个所述目标参数,从G个所述备选算法中确定目标算法;

其中,G为所述备选算法的数量。

可选的,所述N份训练数据集中每一份训练数据集中的负目标样本数据的数量与预设数量之差小于预设值。

可选的,每一份所述测试数据包括输入数据和输出数据;所述第一参数确定模块402根据所述M份测试数据,确定第j个所述备选算法的N个模型中其中一个模型的损失值时,具体用于:

在i取1~M中的每一个整数时,执行如下过程:

将第i份所述测试数据中的输入数据输入至第一模型中,输出第i份预测数据,其中,所述第一模型为所述第j个所述备选算法的N个模型中的其中一个;

将第i份所述测试数据中的输出数据和第i份所述预测数据,代入至预先确定的损失函数中,得到第i个损失值;

根据第1至第M个损失值,确定所述第一模型的损失值。

可选的,所述第一参数确定模块402在根据第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数时,具体用于:

计算第j个所述备选算法的N个模型的损失值的第一平均值b;

计算第j个所述备选算法的N个模型的损失值的方差v;

将所述第一平均值b和所述方差v,代入至预设公式E=k1*b+k2*v,得到第j个所述备选算法的目标参数E;

其中,k1和k2分别为预先确定的权重。

可选的,所述装置还包括:

第二参数确定模块404,用于计算所述目标算法的N个模型中每一个模型的参数信息,其中,所述参数信息包括准确率、召回率、综合评价指标中的其中一种;

第二选择模块405,用于根据所述目标算法的N个模型的所述参数信息,从所述目标算法的N个模型中选出一个模型,以作为目标应用场景所使用的目标模型。

可选的,所述第一参数确定模块402在所述根据第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数时,具体用于:

将第j个所述备选算法的N个模型的损失值进行数据归一化处理;

根据进行数据归一化处理之后的第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数。

本申请实施例中的算法选择装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。

本申请实施例中的算法选择装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。

本申请实施例提供的算法选择装置能够实现图1的方法实施例实现的各个过程,为避免重复,这里不再赘述。

由上述可知,本申请实施例的算法选择装置,能够将目标样本数据划分为N份训练数据和M份测试数据,然后在j取1~G中的每一个整数时,针对第j个备选算法,通过每一份训练数据分别进行训练,得到第j个备选算法的N个模型,从而根据M份测试数据,确定第j个备选算法的N个模型中的每一个模型的损失值,并根据第j个备选算法的N个模型的损失值,确定第j个备选算法的目标参数,进而根据G个目标参数,从G个备选算法中确定目标算法,G为所述备选算法的数量。

其中,目标参数用于表示备选算法的性能优劣的评价值,因此,本申请实施例的算法选择装置,可以根据目标样本数据确定出多个备选算法中每一种备选算法的性能优劣指标,即目标参数,进而可以根据目标参数,从多个备选算法中选出一种性能最优的算法,以在目标应用场景下使用。

由此可见,本申请实施例的算法选择装置,只需要根据目标样本数据确定备选算法的目标参数,从而根据目标参数就可以选出在目标应用场景下性能最优的算法,而不需要反复尝试与探索,因此,本申请的实施例所选出的目标应用场景所使用的算法的准确度较高,探索成本较少。

可选的,本申请实施例还提供一种电子设备,如图5所示,该电子设备500包括处理器510,存储器520,存储在存储器520上并可在所述处理器510上运行的程序或指令,该程序或指令被处理器510执行时实现上述算法选择方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

需要注意的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。

图6为实现本申请实施例的一种电子设备的硬件结构示意图。

该电子设备600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609、以及处理器610等部件。

本领域技术人员可以理解,电子设备600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图6中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。

其中,处理器610,用于执行如下过程:

将目标样本数据划分为N份训练数据和M份测试数据,其中,N大于1,M大于或等于1;

在j取1~G中的每一个整数时,执行如下过程:

针对第j个备选算法,通过每一份所述训练数据分别进行训练,得到第j个所述备选算法的N个模型;

根据所述M份测试数据,确定第j个所述备选算法的N个模型中的每一个模型的损失值;

根据第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数,其中,所述目标参数用于表示所述备选算法的性能优劣的评价值;

根据G个所述目标参数,从G个所述备选算法中确定目标算法;

其中,G为所述备选算法的数量。

由上述可知,本申请实施例的电子设备600,能够将目标样本数据划分为N份训练数据和M份测试数据,然后在j取1~G中的每一个整数时,针对第j个备选算法,通过每一份训练数据分别进行训练,得到第j个备选算法的N个模型,从而根据M份测试数据,确定第j个备选算法的N个模型中的每一个模型的损失值,并根据第j个备选算法的N个模型的损失值,确定第j个备选算法的目标参数,进而根据G个目标参数,从G个备选算法中确定目标算法,G为所述备选算法的数量。

其中,目标参数用于表示备选算法的性能优劣的评价值,因此,本申请实施例的电子设备600,可以根据目标样本数据确定出多个备选算法中每一种备选算法的性能优劣指标,即目标参数,进而可以根据目标参数,从多个备选算法中选出一种性能最优的算法,以在目标应用场景下使用。

由此可见,本申请实施例的电子设备600,只需要根据目标样本数据确定备选算法的目标参数,从而根据目标参数就可以选出在目标应用场景下性能最优的算法,而不需要反复尝试与探索,因此,本申请的实施例所选出的目标应用场景所使用的算法的准确度较高,探索成本较少。

可选的,所述N份训练数据集中每一份训练数据集中的负样本数据的数量与预设数量之差小于预设值。

可选的,每一份所述测试数据包括输入数据和输出数据;处理器610在根据所述M份测试数据,确定第j个所述备选算法的N个模型中其中一个模型的损失值时,具体用于:

在i取1~M中的每一个整数时,执行如下过程:

将第i份所述测试数据中的输入数据输入至第一模型中,输出第i份预测数据,其中,所述第一模型为所述第j个所述备选算法的N个模型中的其中一个;

将第i份所述测试数据中的输出数据和第i份所述预测数据,代入至预先确定的损失函数中,得到第i个损失值;

根据第1至第M个损失值,确定所述第一模型的损失值。

可选的,处理器610在根据第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数时,具体用于:

计算第j个所述备选算法的N个模型的损失值的第一平均值b;

计算第j个所述备选算法的N个模型的损失值的方差v;

将所述第一平均值b和所述方差v,代入至预设公式E=k1*b+k2*v,得到第j个所述备选算法的目标参数E;

其中,k1和k2分别为预先确定的权重。

可选的,处理器610还用于:

计算所述目标算法的N个模型中每一个模型的参数信息,其中,所述参数信息包括准确率、召回率、综合评价指标中的其中一种;

根据所述目标算法的N个模型的所述参数信息,从所述目标算法的N个模型中选出一个模型,以作为目标应用场景所使用的目标模型。

可选的,处理器610在根据第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数时,具体用于:

将第j个所述备选算法的N个模型的损失值进行数据归一化处理;

根据进行数据归一化处理之后的第j个所述备选算法的N个模型的损失值,确定第j个所述备选算法的目标参数。

本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述算法选择方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。

本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述算法选择方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

相关技术
  • 一种基于遗传算法的业务路径选择方法、装置及电子设备
  • 一种基于遗传算法的业务路径选择方法、装置及电子设备
技术分类

06120112721509