机器学习算法选择方法及装置
技术领域
本发明实施例涉及机器学习技术领域,尤其涉及一种机器学习算法选择方法及装置。
背景技术
机器学习算法是一类能够从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法,可以利用机器学习算法处理实际应用中的一些问题,比如分类问题。进一步,在处理某一类问题时,可用的机器学习算法往往不止一种,比如,在处理分类问题时,可用的机器学习算法包括:决策树、随机森林、最近邻算法、逻辑回归、支持向量机算法等。
在利用同一机器学习算法处理同一类,但是数据类型不同的问题时会有不同的性能表现,同样的,利用不同的机器学习算法处理同一问题时也会有不同的性能表现。因此,在处理某一问题时,需要在众多候选的机器学习算法中选择最适合用于解决该问题的机器学习算法。
发明内容
鉴于此,为解决上述技术问题或部分技术问题,本发明实施例提供一种机器学习算法选择方法及装置。
第一方面,本发明实施例提供一种机器学习算法选择方法,包括:
对待处理的目标问题数据集进行特征提取,得到所述目标问题数据集的元特征;
将所述目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数,所述预测参数包括:性能预测模型对应的机器学习算法、利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的至少一个性能指标值,所述N依据设定的机器学习算法的数量确定;
依据所述N个预测参数,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法。
在一个可能的实施方式中,所述将目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数,包括:
将所述目标问题数据集的元特征分别输入至已训练的N个性能预测模型,以由所述性能预测模型中的准确率预测器得到利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的准确率,和/或由所述性能预测模型中的处理用时预测器得到利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的处理用时。
在一个可能的实施方式中,所述依据N个预测参数,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法,包括:
依据所述N个预测参数,确定利用各设定的机器学习算法处理所述目标问题数据集时的性能值;
依据各设定的机器学习算法处理所述目标问题数据集时的性能值,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法。
在一个可能的实施方式中,在所述预测参数包括利用性能预测模型对应的机器学习算法处理所述目标问题数据集时的准确率和处理用时时,所述性能值通过以下步骤确定:
计算准确率与设定的第一权重系数的第一乘积;
计算处理用时的倒数与设定的第二权重系数的第二乘积;
计算所述第一乘积和所述第二乘积的和,依据计算结果确定利用所述预测参数对应的机器学习算法处理所述目标问题数据集时的性能值。
在一个可能的实施方式中,所述依据各设定的机器学习算法处理所述目标问题数据集时的性能值,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法,包括:
从各设定的机器学习算法中选择一个处理所述目标问题数据集时性能值最高的机器学习算法;
将选择的机器学习算法确定为用于处理所述问题数据集的目标机器学习算法。
在一个可能的实施方式中,所述方法还包括:为设定的N个机器学习算法训练对应的性能预测模型,具体包括:
获得训练样本,所述训练样本包括:样本问题数据集的元特征与利用设定的N个机器学习算法处理所述样本问题数据集时的性能指标值之间的对应关系;
利用所述训练样本为所述N个机器学习算法训练对应的性能预测模型。
在一个可能的实施方式中,所述训练样本通过以下方式获得:
针对设定的每一机器学习算法,从样本问题数据库中获取一个样本问题数据集,对获取的样本问题数据集进行特征提取,得到该获取的样本问题数据集的元特征;
计算利用所述机器学习算法处理该获取的样本问题数据集时的性能指标值,并记录该性能指标值和该获取的样本问题数据集的元特征之间的对应关系;
从所述样本问题数据库中获取任意一个未被获取过的样本问题数据集,返回执行所述对获取的样本问题数据集进行特征提取的步骤,直至所述样本问题数据库中不存在未被获取过的样本问题数据集。
在一个可能的实施方式中,所述对获取的样本问题数据集进行特征提取,得到该获取的样本问题数据集的元特征,包括:
按照设定的元特征提取规则对该获取的样本问题数据集进行特征提取;
利用设定的特征选择技术从提取出的所有元特征中选择至少一个元特征;
将选择的元特征确定为该获取的样本问题数据集的元特征。
在一个可能的实施方式中,所述性能预测模型,包括:
准确率预测器,确定利用机器学习算法处理输入的问题数据集时的准确率;和/或,
处理用时预测器,确定利用机器学习算法处理输入的问题数据集时的处理用时。
第二方面,本发明实施例提供一种机器学习算法选择装置,包括:
特征提取模块,用于对待处理的目标问题数据集进行特征提取,得到所述目标问题数据集的元特征;
性能预测模块,用于将所述目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数,所述预测参数包括:性能预测模型对应的机器学习算法、利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的至少一个性能指标值,所述N依据设定的机器学习算法的数量确定;
算法选择模块,用于依据所述N个预测参数,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法。
在一个可能的实施方式中,所述性能预测模块将目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数,包括:
将所述目标问题数据集的元特征分别输入至已训练的N个性能预测模型,以由所述性能预测模型中的准确率预测器得到利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的准确率,和/或由所述性能预测模型中的处理用时预测器得到利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的处理用时。
在一个可能的实施方式中,所述算法选择模块依据N个预测参数,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法,包括:
依据所述N个预测参数,确定利用各设定的机器学习算法处理所述目标问题数据集时的性能值;
依据各设定的机器学习算法处理所述目标问题数据集时的性能值,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法。
在一个可能的实施方式中,所述算法选择模块确定所述性能值,包括:
计算准确率与设定的第一权重系数的第一乘积;
计算处理用时的倒数与设定的第二权重系数的第二乘积;
计算所述第一乘积和所述第二乘积的和,依据计算结果确定利用所述预测参数对应的机器学习算法处理所述目标问题数据集时的性能值。
在一个可能的实施方式中,所述算法选择模块依据各设定的机器学习算法处理所述目标问题数据集时的性能值,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法,包括:
从各设定的机器学习算法中选择一个处理所述目标问题数据集时性能值最高的机器学习算法;
将选择的机器学习算法确定为用于处理所述问题数据集的目标机器学习算法。
在一个可能的实施方式中,所述装置还包括:
模型训练模块,用于获得训练样本,所述训练样本包括:样本问题数据集的元特征与利用设定的N个机器学习算法处理所述样本问题数据集时的性能指标值之间的对应关系;利用所述训练样本为所述N个机器学习算法训练对应的性能预测模型。
在一个可能的实施方式中,所述模型训练模块获得训练样本包括:
针对设定的每一机器学习算法,从样本问题数据库中获取一个样本问题数据集,对获取的样本问题数据集进行特征提取,得到该获取的样本问题数据集的元特征;
计算利用所述机器学习算法处理该获取的样本问题数据集时的性能指标值,并记录该性能指标值和该获取的样本问题数据集的元特征之间的对应关系;
从所述样本问题数据库中获取任意一个未被获取过的样本问题数据集,返回执行所述对获取的样本问题数据集进行特征提取的步骤,直至所述样本问题数据库中不存在未被获取过的样本问题数据集。
在一个可能的实施方式中,所述模型训练模块对获取的样本问题数据集进行特征提取,得到该获取的样本问题数据集的元特征,包括:
按照设定的元特征提取规则对该获取的样本问题数据集进行特征提取;
利用设定的特征选择技术从提取出的所有元特征中选择至少一个元特征;
将选择的元特征确定为该获取的样本问题数据集的元特征。
在一个可能的实施方式中,所述性能预测模型,包括:
准确率预测器,确定利用机器学习算法处理输入的问题数据集时的准确率;和/或,
处理用时预测器,确定利用机器学习算法处理输入的问题数据集时的处理用时。
第三方面,本发明实施例提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的机器学习算法选择程序,以实现上述任一实施方式中所述的机器学习算法选择方法。
第四方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一实施方式中所述的机器学习算法选择方法。
本发明实施例提供的机器学习算法的选择方法,通过对待处理的目标问题数据集进行特征提取,得到目标问题数据集的元特征,将目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数,依据N个预测参数,在设定的机器学习算法中确定用于处理目标问题数据集的目标机器学习算法,实现了自动地在众多候选的机器学习算法中,选择出最适合用于解决目标问题数据集的机器学习算法。
附图说明
图1为本发明实施例提供的一种机器学习算法选择方法的实施例流程图;
图2为本发明实施例提供的一种性能预测模型训练过程的实施例流程图;
图3为本发明实施例提供的一种步骤201的实现流程;
图4为本发明实施例提供的一种机器学习算法选择装置的实施例框图;
图5为本发明实施例提供的另一种机器学习算法选择装置的实施例框图;
图6为本发明实施例提供的一种的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
参见图1,为本发明实施例提供的一种机器学习算法选择方法的实施例流程图,包括以下步骤:
步骤101:对待处理的目标问题数据集进行特征提取,得到目标问题数据集的元特征。
这里,问题数据集是指一个问题下的多个问题实例的集合,即,一个问题数据集对应一个问题,包括多个问题实例,其中,问题实例至少包括问题主体的特征值。可选的,问题实例还可以包括问题主体的标签值。为了更好地理解问题数据集,示出下述表1:
表1
上述表1为“是否为爬行动物”这一问题的问题数据集。其中的每一行则表示一个问题实例。
在本发明实施例中,为了描述方便,将待处理的问题数据集称为目标问题数据集,这里的待处理是指:待预测出问题数据集中问题实例的标签值,这也就意味着目标问题数据集中不具有标签值。
问题数据集的元特征则是指问题数据集的特征,用于描述问题数据集本身的分布,与上述表1中的特征值并不相同。目前,常用的数据集元特征如下述表2所示:
表2
序号 |
元特征 |
序号 |
元特征 |
1 |
目标属性类数 |
5 |
连续型属性所占比例 |
2 |
单类最大比例 |
6 |
属性总数 |
3 |
单类最小比例 |
7 |
实例数 |
4 |
连续型属性个数 |
… |
… |
在本发明实施例中,则可以提取出目标问题数据集在设定维度上的特征作为元特征,比如提取目标问题数据集的连续型属性个数、连续型属性所占比例、属性总数等作为目标问题数据集的元特征。至于设定维度是如何得到的,在下文中会有描述,这里先不详述。
步骤102:将目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数。
在本发明实施例中,为了实现自动地预测出利用某一机器学习算法处理目标问题数据集时的性能,预先训练出一个性能预测模型,该性能预测模型则用于预测利用该机器学习算法处理目标问题数据集时的性能。
在一实施例中,由于在实际应用中,可以通过准确率、处理用时等指标值(以下称性能指标值)来反映出利用机器学习算法处理目标问题数据集时的性能,因此,本发明实施例中的性能预测模型以利用机器学习算法处理目标问题数据集时的至少一个性能指标值为输出。当然可以理解的是,性能预测模型以目标问题数据集的元特征为输入。
在一个例子中,性能预测模型可以包括准确率预测器,用于确定利用机器学习算法处理目标问题数据集时的准确率。即,性能预测模型以利用机器学习算法处理目标问题数据集时的准确率为输出。
在另一个例子中,性能预测模型可以包括处理用时预测器,用于确定利用机器学习算法处理目标问题数据集时的处理用时。即,性能预测模型以利用机器学习算法处理目标问题数据集时的处理用时为输出。
在又一个例子中,性能预测模型可以包括准确率预测器和处理用时预测器。即,性能预测模型以利用机器学习算法处理目标问题数据集时的准确率和处理用时为输出。
进一步,由上述描述可知,在机器学习领域中,对于某一类问题,可用的机器学习算法可能具有多种。基于此,在本发明实施例中,可针对候选的,即设定的N个机器学习算法分别训练出对应的性能预测模型。至于是如何针对设定的N个机器学习算法分别训练出对应的性能预测模型的,在下文中通过图2所示实施例进行说明,这里先不详述。
基于上述描述,在本步骤102中,则可以将步骤101获取到的目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数。这里,预测参数包括:性能预测模型对应的机器学习算法、利用性能预测模型对应的机器学习算法处理目标问题数据集时的至少一个性能指标值。
在一个例子中,若性能预测模型包括准确率预测器,则在将目标问题数据集的元特征输入至性能预测模型后,由性能预测模型中的准确率预测器得到利用对应的机器学习算法处理目标问题数据集时的准确率。即,上述预测参数包括:性能预测模型对应的机器学习算法、利用对应的机器学习算法处理目标问题数据集时的准确率。
在另一个例子中,若性能预测模型包括处理用时预测器,则在将目标问题数据集的元特征输入至性能预测模型后,由性能预测模型中的处理用时预测器得到利用对应的机器学习算法处理目标问题数据集时的处理用时。即,上述预测参数包括:性能预测模型对应的机器学习算法、利用对应的机器学习算法处理目标问题数据集时的处理用时。
在又一个例子中,若性能预测模型包括准确率预测器和处理用时预测器,则在将目标问题数据集的元特征输入至性能预测模型后,由性能预测模型中的准确率预测器得到利用对应的机器学习算法处理目标问题数据集时的准确率,并由性能预测模型中的处理用时预测器得到利用对应的机器学习算法处理目标问题数据集时的处理用时。即,上述预测参数包括:性能预测模型对应的机器学习算法、利用对应的机器学习算法处理目标问题数据集时的准确率和处理用时。
步骤103:依据N个预测参数,在设定的机器学习算法中确定用于处理目标问题数据集的目标机器学习算法。
在一实施例中,本步骤103中,依据N个预测参数,在设定的机器学习算法中确定用于处理目标问题数据集的目标机器学习算法可包括以下步骤a至步骤b:
步骤a:依据N个预测参数,确定利用各设定的机器学习算法处理目标问题数据集时的性能值。
由上述描述可知,预测参数中可包括利用机器学习算法处理目标问题数据集时的准确率和/或处理用时。
基于此,在一个例子中,若预测参数中包括利用机器学习算法处理目标问题数据集时的准确率,则可依据准确率确定上述性能值。可选的,由于准确率越高则意味着性能越好,因此,可以直接将准确率作为上述性能值。
在另一个例子中,若预测参数中包括利用机器学习算法处理目标问题数据集时的处理用时,则可依据处理用时确定上述性能值。可选的,由于处理用时越短则意味着性能越好,而处理用时越长则意味着性能越差,因此,可以将处理用时做设定计算,比如求取倒数的计算结果作为上述性能值。
在又一个例子中,若预测参数中包括利用机器学习算法处理目标问题数据集时的准确率和处理用时,则可依据准确率和处理用时确定上述性能值。可选的,依据准确率和处理用时确定上述性能值可包括以下步骤a1至步骤a3:
步骤a1:计算准确率与设定的第一权重系数的第一乘积。
步骤a2:计算处理用时的倒数与设定的第二权重系数的第二乘积。
在本发明实施例中,为了描述方便,将预先针对准确率这一性能指标值设定的权重系数称为第一权重系数,将预先针对处理用时这一性能指标值设定的权重系数称为第二权重系数;类似的,将步骤a1的计算结果称为第一乘积,将步骤a2的计算结果称为第二乘积。
需要说明的是,上述步骤a1和步骤a2的执行顺序仅仅用作举例,并非用作限定。
还需要说明的是,在本发明实施例中,并不限定第一权重系数和第二权重系数之间的大小关系。在实际应用中,用户可根据实际业务需求设置第一权重系数和第二权重系数。在一个例子中,如果用户对预测结果的准确率具有较高要求,则可将第一权重系数设置为大于第二权重系数,比如第一权重系数为0.6,第二权重系数为0.4。在另一个例子中,如果用户对预测过程的处理用时具有较高要求,则可将第二权重系数设置为大于第一权重系数,比如第二权重系数为0.6,第一权重系数为0.4。
步骤a3:计算第一乘积和第二乘积的和,依据计算结果确定利用预测参数对应的机器学习算法处理目标问题数据集时的性能值。
可选的,可以直接将第一乘积和第二乘积的和确定为上述性能值,或者,将第一乘积和第二乘积的和做处理后,比如乘上一个设定值,得到上述性能值。本发明实施例对此不做具体限定。
步骤b:依据各设定的机器学习算法处理目标问题数据集时的性能值,在设定的机器学习算法中确定用于处理目标问题数据集的目标机器学习算法。
在一实施例中,可以从各设定的机器学习算法中选择一个处理目标问题数据集时性能值最高的机器学习算法,将选择的机器学习算法确定为用于处理目标问题数据集的机器学习算法(以下称目标机器学习算法)。
需要说明的是,上述仅仅是对如何依据性能值确定目标机器学习算法的举例性说明,在实际应用中,还可以通过其他方式实现依据性能值确定目标机器学习算法,比如,可以依据性能值从高到低的顺序对设定的机器学习算法进行排序,选择排名前三位的机器学习算法作为目标机器学习算法。本发明实施例对此不做具体限定。
至此,完成图1所示流程的描述。
由上述实施例可见,通过对待处理的目标问题数据集进行特征提取,得到目标问题数据集的元特征,将目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数,依据N个预测参数,在设定的机器学习算法中确定用于处理目标问题数据集的目标机器学习算法,实现了自动地在众多候选的机器学习算法中,选择出最适合用于解决目标问题数据集的机器学习算法。
以上对本发明实施例提供的机器学习算法选择方法的整体流程进行了说明,下面则对性能预测模型的训练过程进行说明:
参见图2,为本发明实施例提供的一种性能预测模型训练过程的实施例流程图,包括以下步骤:
步骤201:获得训练样本,训练样本包括:样本问题数据集的元特征与利用设定的N个机器学习算法处理样本问题数据集时的性能指标值之间的对应关系。
由上述描述可知,在本发明实施例中,为设定的每一机器学习算法分别训练对应的性能预测模型,因此,在本步骤201中,则针对设定的每一机器学习算法,分别获得训练样本。以支持向量机算法为例,训练样本则包括:样本问题数据集的元特征与利用支持向量机算法处理样本问题数据集时的性能指标值之间的对应关系。
进一步,由上述描述可知,性能预测模型可包括准确率预测器和/或处理用时预测器。基于此,在一个例子中,训练样本包括:样本问题数据集的元特征与利用支持向量机算法处理样本问题数据集时的准确率之间的对应关系,比如下述表3所示例的训练样本:
表3
序号 |
元特征 |
性能指标值(准确率) |
1 |
[1.2,1.0,…,0.8] |
0.96 |
2 |
[1.3,0.9,…,0.78] |
0.98 |
3 |
[1.0,1.2,…,0.9] |
0.96 |
… |
… |
… |
在另一个例子中,训练样本包括:样本问题数据集的元特征与利用支持向量机算法处理样本问题数据集时的处理用时之间的对应关系,比如下述表4所示例的训练样本:
表4
序号 |
元特征 |
性能指标值(准确率) |
1 |
[1.2,1.0,…,0.8] |
0.96 |
2 |
[1.3,0.9,…,0.78] |
0.98 |
3 |
[1.0,1.2,…,0.9] |
0.96 |
… |
… |
… |
在又一个例子中,在本步骤201中获得两套训练样本,其中一套训练样本包括:样本问题数据集的元特征与利用支持向量机算法处理样本问题数据集时的准确率之间的对应关系,用于训练准确率预测器;另一套训练样本则包括:样本问题数据集的元特征与利用支持向量机算法处理样本问题数据集时的处理用时之间的对应关系,用于训练处理用时预测器。可选的,该另一套训练样本的元特征中包括样本问题数据集的数据条数、数据特征数量等。
至于获得训练样本的具体过程在下文中通过图3所示实施例进行说明,这里先不详述。
步骤202:利用训练样本为N个机器学习算法训练对应的性能预测模型。
在本步骤202中,则可以利用训练样本,并基于设定的模型训练方法为N个机器学习算法训练对应的性能预测模型。可选的,在模型训练之前,可以首先对模型进行超参数调优,以提高模型训练的性能和效果。至于是如何对模型进行超参数调优的,本发明实施例可不涉及。
至此,完成图2所示流程的描述。
通过图2所示流程,最终实现了针对设定的每一机器学习算法,分别训练出一个可用于预测利用该机器学习算法处理目标问题数据集时性能的性能预测模型。
参见图3,为本发明实施例提供的一种步骤201的实现流程,包括以下步骤:
步骤301:从样本问题数据库中获取一个样本问题数据集,对获取的样本问题数据集进行特征提取,得到该获取的样本问题数据集的元特征。
步骤302:计算利用机器学习算法处理该获取的样本问题数据集时的性能指标值,并记录该性能指标值和该获取的样本问题数据集的元特征之间的对应关系。
步骤303:从样本问题数据库中获取任意一个未被获取过的样本问题数据集,返回执行对获取的样本问题数据集进行特征提取的步骤,直至样本问题数据库中不存在未被获取过的样本问题数据集。
以下对步骤301至步骤303进行统一说明:
首先说明,在本发明实施例中,由用户预设样本问题数据库,该样本问题数据库中包括多个样本问题数据集,每一样本问题数据集对应不同的问题。可选的,用户可从现有平台,比如UCI、kaggle大数据竞赛平台、sclkit-learn获取问题数据集,以预设样本问题数据库。可以理解的是,样本问题数据集中包括标签值。
其次,在本发明实施例中,对一个样本问题数据集进行处理可以得到一条训练样本,而在实际应用中,需要多条训练样本才能够训练出性能预测模型。基于此,在本发明实施例中,则可以针对样本问题数据库中的各样本问题数据集分别得到一条训练样本。
在一实施例中,每次的训练样本获得过程中,可从样本问题数据库中获取任意一个未被获取过的样本问题数据集,通过执行步骤301和步骤302实现针对当前获取到的样本问题数据集得到一条训练样本,直至样本问题数据库中不存在未被获取过的样本问题数据集,即,直至针对样本问题数据库中的每个样本问题数据集均得到一条训练样本。
以下则对单次的训练样本获得过程进行说明:
首先,如步骤301所述,对获取的样本问题数据集进行特征提取。在一实施例中,对获取的样本问题数据集进行特征提取可包括以下步骤d至步骤e:
步骤d:按照设定的元特征提取规则对该获取的样本问题数据集进行特征提取。
这里,设定的元特性提取规则可用于指示提取样本问题数据集在哪些维度上的特征,比如,设定的元特征提取规则用于指示提取样本问题数据集在上述表2所示的每一维度上的特征。
步骤e:利用设定的特征选择技术从提取出的所有元特征中选择至少一个元特征,将选择的元特征确定为该获取的样本问题数据集的元特征。
在本发明实施例中,为了降低模型训练时的复杂度,可以对步骤d中获取到的元特征进行降维处理,即,从步骤d提取出的所有元特征中选择至少一个元特征,将选择的元特征确定为样本问题数据集最终的元特征。
可选的,上述特征选择技术可以为PCA主成分分析技术、卡方验证、皮尔逊相关系数等,本发明实施例对此不做具体限定。
此外,上述步骤101中涉及的设定维度即为步骤e中最终选择出的元特征的维度。
然后,如步骤302所述,计算利用机器学习算法处理该获取的样本问题数据集时的性能指标值,并记录该性能指标值和该获取的样本问题数据集的元特征之间的对应关系。至此则可以得到如上述表3和/或表4所示例的训练样本。
以下则对计算利用机器学习算法处理该获取的样本问题数据集时的性能指标值的过程进行说明:
在一实施例中,可以采用交叉验证的方式,比如10折交叉验证算法计算利用机器学习算法处理该获取的样本问题数据集时的性能指标值。
以计算利用机器学习算法处理该获取的样本问题数据集时的准确率为例:将样本问题数据集划分为10个子集,将该10个子集轮流设置为测试集,其余9个子集则设置为训练集。在每一次的计算过程中,利用本次设置的训练集训练出一个基于当前待评估的机器学习算法的模型,然后,将本次设置的测试集输入至该模型中得到预测结果。最后,基于预测结果与测试集的标签值则可以计算出该模型的准确率,共得到10个准确率。可选的,计算该10个准确率的平均值作为利用机器学习算法处理该获取的样本问题数据集时的准确率。
再以计算利用机器学习算法处理该获取的样本问题数据集时的处理用时为例,与上述计算利用机器学习算法处理该获取的样本问题数据集时的准确率的过程类似,不同的是,将测试集输入至训练出的模型,以得到该模型处理测试集时的处理用时,共得到10个处理用时。可选的,计算该10个处理用时的平均值作为利用机器学习算法处理该获取的样本问题数据集时的处理用时。
至此,完成图3所示流程的相关描述。
通过图3所示流程,最终实现了获得训练样本。
与前述机器学习算法选择方法的实施例相对应,本发明还提供了机器学习算法选择装置的实施例。
参见图4,为本发明实施例提供的一种机器学习算法选择装置的实施例框图,该装置包括:特征提取模块41、性能预测模块42,以及算法选择模块43。
其中,特征提取模块41,用于对待处理的目标问题数据集进行特征提取,得到所述目标问题数据集的元特征;
性能预测模块42,用于将所述目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数,所述预测参数包括:性能预测模型对应的机器学习算法、利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的至少一个性能指标值,所述N依据设定的机器学习算法的数量确定;
算法选择模块43,用于依据所述N个预测参数,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法。
在一可能的实施方式中,性能预测模块42将目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数,包括:
将所述目标问题数据集的元特征分别输入至已训练的N个性能预测模型,以由所述性能预测模型中的准确率预测器得到利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的准确率,和/或由所述性能预测模型中的处理用时预测器得到利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的处理用时。
在一可能的实施方式中,算法选择模块43依据N个预测参数,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法,包括:
依据所述N个预测参数,确定利用各设定的机器学习算法处理所述目标问题数据集时的性能值;
依据各设定的机器学习算法处理所述目标问题数据集时的性能值,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法。
在一可能的实施方式中,算法选择模块43确定所述性能值,包括:
计算准确率与设定的第一权重系数的第一乘积;
计算处理用时的倒数与设定的第二权重系数的第二乘积;
计算所述第一乘积和所述第二乘积的和,依据计算结果确定利用所述预测参数对应的机器学习算法处理所述目标问题数据集时的性能值。
在一可能的实施方式中,算法选择模块43依据各设定的机器学习算法处理所述目标问题数据集时的性能值,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法,包括:
从各设定的机器学习算法中选择一个处理所述目标问题数据集时性能值最高的机器学习算法;
将选择的机器学习算法确定为用于处理所述问题数据集的目标机器学习算法。
在一可能的实施方式中,参见图5,装置还包括:
模型训练模44,用于获得训练样本,所述训练样本包括:样本问题数据集的元特征与利用设定的N个机器学习算法处理所述样本问题数据集时的性能指标值之间的对应关系;利用所述训练样本为所述N个机器学习算法训练对应的性能预测模型。
在一可能的实施方式中,模型训练模块44获得训练样本包括:
针对设定的每一机器学习算法,从样本问题数据库中获取一个样本问题数据集,对获取的样本问题数据集进行特征提取,得到该获取的样本问题数据集的元特征;
计算利用所述机器学习算法处理该获取的样本问题数据集时的性能指标值,并记录该性能指标值和该获取的样本问题数据集的元特征之间的对应关系;
从所述样本问题数据库中获取任意一个未被获取过的样本问题数据集,返回执行所述对获取的样本问题数据集进行特征提取的步骤,直至所述样本问题数据库中不存在未被获取过的样本问题数据集。
在一可能的实施方式中,模型训练44模块对获取的样本问题数据集进行特征提取,得到该获取的样本问题数据集的元特征,包括:
按照设定的元特征提取规则对该获取的样本问题数据集进行特征提取;
利用设定的特征选择技术从提取出的所有元特征中选择至少一个元特征;
将选择的元特征确定为该获取的样本问题数据集的元特征。
在一可能的实施方式中,性能预测模型,包括:
准确率预测器,确定利用机器学习算法处理输入的问题数据集时的准确率;和/或,
处理用时预测器,确定利用机器学习算法处理输入的问题数据集时的处理用时。
图6为本发明实施例提供的一种的电子设备的结构示意图,图6所示的电子设备600包括:至少一个处理器601、存储器602、至少一个网络接口604和其他用户接口603。电子设备600中的各个组件通过总线系统605耦合在一起。可理解,总线系统605用于实现这些组件之间的连接通信。总线系统605除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统605。
其中,用户接口603可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(ProgrammableROM,PROM)、可擦除可编程只读存储器(ErasablePROM,EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccessMemory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(StaticRAM,SRAM)、动态随机存取存储器(DynamicRAM,DRAM)、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleDataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(SynchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambusRAM,DRRAM)。本文描述的存储器602旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器602存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统6021和应用程序6022。
其中,操作系统6021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序6022,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序6022中。
在本发明实施例中,通过调用存储器602存储的程序或指令,具体的,可以是应用程序6022中存储的程序或指令,处理器601用于执行各方法实施例所提供的机器学习算法选择方法的步骤,例如包括:
对待处理的目标问题数据集进行特征提取,得到所述目标问题数据集的元特征;将所述目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数,所述预测参数包括:性能预测模型对应的机器学习算法、利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的至少一个性能指标值,所述N依据设定的机器学习算法的数量确定;依据所述N个预测参数,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法。
上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecific IntegratedCircuit,ASIC)、现成可编程门阵列(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)、数字信号处理器(DigitalSignalProcessing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(ProgrammableLogicDevice,PLD)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本实施例提供的电子设备可以是如图6中所示的电子设备,可执行如图1-3中机器学习算法选择方法的所有步骤,进而实现图1-3所示机器学习算法选择方法的技术效果,具体请参照图1-3相关描述,为简洁描述,在此不作赘述。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的机器学习算法选择方法。
所述处理器用于执行存储器中存储的机器学习算法选择程序,以实现以下在电子设备侧执行的机器学习算法选择方法的步骤:
对待处理的目标问题数据集进行特征提取,得到所述目标问题数据集的元特征;将所述目标问题数据集的元特征分别输入至已训练的N个性能预测模型,得到N个预测参数,所述预测参数包括:性能预测模型对应的机器学习算法、利用所述性能预测模型对应的机器学习算法处理所述目标问题数据集时的至少一个性能指标值,所述N依据设定的机器学习算法的数量确定;依据所述N个预测参数,在所述设定的机器学习算法中确定用于处理所述目标问题数据集的目标机器学习算法。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。