发明内容
有鉴于此,本发明的目的在于提供一种基于大规模数据的自适应参数的多核学习分类方法,本发明采用半无限线性规划(Semi-Infinite Linear Program,SILP)来解决多核学习问题,该方法可以使多核学习解决大规模数据问题,无论是大规模的核或是大规模的输入数据。其次,本发明将多核学习中的正则化参数作为核权重学习的一个额外变量自动获得,避免了计算中由于交叉验证获取正则化参数而导致效率低下,使多核学习问题解决更加便利。
为了实现上述目的,本发明实施例提供的技术方案如下:
一种基于大规模数据的自适应参数的多核学习分类方法,其特征在于,所述方法包括以下步骤:
S1、选定多核学习的核函数;
S2、载入数据集,并进行归一化处理,将数据集随机分为训练数据集和测试数据集,其中测试数据集相应的分类标签作为标准分类标签;
S3、将训练数据集的单独一维特征值和每一维特征值进行混合,得到核矩阵组,作为构造多核学习目标函数的特征值;
S4、将单位矩阵增加至核矩阵组的第一项构成新的核矩阵组,求解新的核矩阵组的权重参数组,权重参数组的第一项为正则化惩罚因子参数C的倒数,其余项为各个基核的权重参数;
S5、通过计算半无限线性规划问题得出分类模型;
S6、将测试数据集通过分类模型得到分类结果,即分类标签。
作为本发明的进一步改进,所述步骤S1中的核函数包括高斯核函数和多项式核函数。
作为本发明的进一步改进,所述高斯函数的参数范围为2-6~26。
作为本发明的进一步改进,多项式函数的参数为1,2,3。
作为本发明的进一步改进,所述步骤S3中多核学习目标函数为:
其中,x为所要判断类别的输入样本,b为待优化参数,K为多核,f(x)为x的分类标签。
作为本发明的进一步改进,所述步骤S4中权重参数组的求解公式为:
其中,
I为单位矩阵,K
*比多核K多一个矩阵,α为待优化参数,即支持向量样本的权重参数,且所有的α满足相加为0的条件。
作为本发明的进一步改进,所述步骤S6后还包括:
利用分类标签和标准分类标签计算分类准确率。
作为本发明的进一步改进,所述分类准确率计算公式为:
分类准确率=(分类标签向量-标准分类标签向量=0的个数)/测试数据集的个数。
作为本发明的进一步改进,所述步骤S2中训练数据集和测试数据集分别为数据集的60%和40%。
本发明具有以下有益效果:
将多核学习问题转化为半正定线性规划优化问题,解决了大规模数据问题,无论是数据或核的规模;
将正则化惩罚因子参数C的求解放入了核权重参数的求解中,能够自适应学习C参数,提高了求解效率,避免了繁琐交叉验证过程。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
参图1所示,本发明的一种基于大规模数据的自适应参数的多核学习分类方法,包括以下步骤:
S1、选定多核学习的核函数,核函数通常包括高斯核函数和多项式核函数,优选地,高斯函数的参数范围为2-6~26,多项式函数的参数为1,2,3。
S2、载入数据集,并进行归一化处理,将数据集随机分为训练数据集和测试数据集,如训练数据集和测试数据集分别为数据集的60%和40%,其中测试数据集相应的分类标签作为标准分类标签。
S3、将训练数据集的单独一维特征值和每一维特征值进行混合,得到核矩阵组,作为构造多核学习目标函数的特征值。
多核学习目标函数为:
其中,x为所要判断类别的输入样本,b为待优化参数,K为多核,f(x)为x的分类标签。
S4、将单位矩阵增加至核矩阵组的第一项构成新的核矩阵组,求解新的核矩阵组的权重参数组,权重参数组的第一项为正则化惩罚因子参数C的倒数,其余项为各个基核的权重参数。
权重参数组的求解公式为:
其中,
I为单位矩阵,K
*比多核K多一个矩阵,α为待优化参数,即支持向量样本的权重参数,且所有的α满足相加为0的条件。
S5、通过计算半无限线性规划问题得出分类模型。
S6、将测试数据集通过分类模型得到分类结果,即分类标签。
进一步地,步骤S6后还包括:
利用分类标签和标准分类标签计算分类准确率。
分类准确率计算公式为:
分类准确率=(分类标签向量-标准分类标签向量=0的个数)/测试数据集的个数。
在支持向量机中,正则化参数惩罚因子C的获得主要是通过交叉验证,往往会耗费大量时间,效率较低。本发明的一种基于半无限线性规划的多核学习自动学习正则化参数的较为高效的方法,同时能够解决大规模数据问题。在三组测试数据(测试数据库来自于加州大学欧文分校提供的用于机器学习的数据库UCI)中,本发明与非自动学习方法相比,在分类准确率一致的条件下,效率提高了很多。
在一般的多核系统中,多核K为一些列单核矩阵的线性组合,表示为:
N为简单基核的数量,第i个基核Ki对应的权系为βi,所有基核的权重系数满足β·1N=0,β≥0,也即所有权重系数均大于零,且相加为0,则多核学习即要学习N个权重系数的值。本发明将单位矩阵I作为第N+1个核(与前N个核一起归一化),其对应的权重为1/C,则通过求解多核问题就得到了正则化惩罚因子参数C的值,那么也就省去了交叉验证求C的复杂繁琐过程,节约了大量时间。公式如下:
上式为原始的多核学习的求解问题,K为多核,α为待优化参数,即为支持向量样本的权重系数,且所有的α满足相加为0的条件,C为正则化惩罚因子参数。
多核学习的目标函数为:
其中x为所要判断类别的输入样本,b为待优化参数,f(x)即为x的类别标签。本发明将原始问题和多核函数的目标函数改写为以下形式:
其中,
I为单位矩阵,K
*比多核K多了一个矩阵,则原始多核学习问题中的正则化惩罚因子参数C就转为为核权重参数了。
在以上分析的基础上,本发明利用半无限线性规划来求解引入自动学习正则化惩罚因子参数C的多核问题。传统的半正定规划与二次约束二次规划不能解决大规模数据的问题,如大规模的输入数据以及大规模的核矩阵,而半无限线性规划则可以很好的解决上述问题。因此将自适应学习C参数引入多核学习的半无限线性规划形式既解决了大规模数据的问题,又提高了数据分类的效率。
本发明针对于数据与核的规模,提供了两种实施方式,第一实施方式在标准测试数据上展开,第二实施方式为测试各个算法性能的扩展实施方式。
第一实施方式:
标准测试数据实施例流程如下:
在学习C的实施方式中分别利用三种优化算法半正定规划、二次约束二次规划、半无限线性规划做了三组实施例,记为SDP_C,QCQP_C及SILP_C;同样,不学习C也进行了三组实施例,记为SDP,QCQP和SILP。所有实施例在2G内存和2.99GHZ的CPU的电脑环境下展开。实施例参数的选择如下:
1、选择60%的数据作为训练数据集,每组训练数据集都有相应的标准分类标签相对应;
2、选择高斯函数和多项式函数作为核函数的形式,高斯函数的参数范围在(2-6~26)之间,多项式函数的参数分别为1,2,3;
3、在学习C参数的实施例中,构成和矩阵组时多了一项,把其加在核矩阵组中的第一项,参与后面的计算;
参图2、图3所示,具体实施步骤包括:
1、选定高斯核函数和多项式核函数;
2、载入数据集,将其做归一化处理,随机抽出测试数据的60%作为训练数据集,剩下的40%作为测试数据集,其中测试数据集相应的分类标签作为标准分类标签;
3、分别将训练数据集的单独一维特征值和每一维特征值进行混合,得到核矩阵组,作为构造多核学习目标函数的特征值;
4、通过训练集数据,核函数的形式以及核函数参数,利用多核算法计算相应的核矩阵的权重参数。自适应学习参数C中,在核矩阵权重求解时,核矩阵组多添加一个单位矩阵,求出来的权重参数组的第一项为其相对应的权重参数也即参数C的倒数。在不学习C的算法中,C的确定是通过训练数据集的交叉验证获得的;
5、通过六种不同的算法,计算各个算法的分类准确率以及所用时间,各个算法的实施例步骤如下:
(1)、在不学习C的一组实施例中,将[0.01-100]分为20个部分,通过交叉验证求出最佳的C,而在学习C的实施例中,C的求解通过多核学习的核参数的求解自动学习得到;
(2)、通过计算二次约束二次规划、半正定规划、半无限线性规划问题得出分类模型;
(3)、将测试数据集通过分类模型得到分类结果,也即分类标签,并且记录此次分类的时间;
(4)、利用分类标签和标准分类标签获得此次分类准确率,计算公式如下:
分类准确率=(分类标签向量-标准分类标签向量=0的个数)/测试数据集的个数。
(5)、每个实施例重复做10次,通过平均值得出最终的分类准确率和所消耗时间。
其中,测试数据库来自于加州大学欧文分校(University of California Irvine)提供的用于机器学习的数据库UCI,以上实施例采用了其中的三组数据集Hepatitis,Liver和Australian,实施例结果如下表一、表二和表三:
表一.六种算法在数据集Hepatitis下的分类结果
方法 |
正确率 |
消耗时间 |
参数C |
SDP |
78.94 |
57.01 |
297.64 |
SDP_C |
79.02 |
53.20 |
264.32 |
QCQP |
78.94 |
20.54 |
48.33 |
QCQP_C |
79.72 |
18.70 |
278413.04 |
SILP |
79.15 |
17.90 |
48.33 |
SILP_C |
80.24 |
13.36 |
61485.61 |
表二.六种算法在数据集Liver下的分类结果
方法 |
正确率 |
消耗时间 |
参数C |
SDP |
- |
- |
- |
SDP_C |
- |
- |
- |
QCQP |
67.08 |
12.73 |
297.63 |
QCQP_C |
67.50 |
11.62 |
4760977.00 |
SILP |
68.40 |
15.56 |
545.56 |
SILP_C |
70.21 |
7.00 |
71923.01 |
表三.六种算法在数据集Australian下的分类结果
方法 |
正确率 |
消耗时间 |
参数C |
SDP |
- |
- |
- |
SDP_C |
- |
- |
- |
QCQP |
- |
- |
- |
QCQP_C |
- |
- |
- |
SILP |
87.07 |
147.07 |
545.5 |
SILP_C |
89.59 |
140.57 |
25532.90 |
从标准测试数据实施例的结果可以看出,在准确率相似的同等条件下,学习C的各个算法所花费的时间比不学习C而要交叉验证的算法少;在三组实施例数据中,SILP表现出了良好的解决大规模数据的性能,三组数据均能顺利完成,而半正定规划只能在Hepatitis数据中完成分类,二次约束二次规划只能在两组数据中完成分类。
第二实施方式:
扩展实施例为了测试各个算法的性能,分为两部分:
1、在核数量扩展试验中使用512个点作为输入数据,核选择高斯核,其参数选择范围为[2-20-26];SILP_C算法能解决的最大核数量为720,QCQP_C最多可解决180个核的问题,而SDP_C算法只能达到48。实施例结果如图4所示。
2、在输入数据扩展试验中,选择17个高斯核,参数选择范围为[2-20-26],第一次选择256个样本点,后续每次增加256个样本点,SILP最多可以跑2816个输入数据,QCQP的数据最大为1536,而SDP的范围只能达到768。实施例结果如图5所示。
以上扩展实施例的结果表明半无限线性规划算法在解决大规模数据方面,有着及其优良的性能。
多核学习方法是当前核机器学习领域的热点,核方法是解决非线性模式分析问题的一种有效方法,但在一些复杂情形下,由单个核函数构成的核机器并不能满足诸如数据异构或不规则、样本规模巨大、样本不平坦分布等实际的应用需求。多核学习在解释性上比传统支持向量机要强,通过核权重可以明显的看到各个基核中哪些核起的作用大,哪些基核在一起合作效果比较好,因此将多个核函数进行组合,以获得更好分类的结果。本发明在多核学习的基础上提出了一种解决大规模数据分类的多方法,与传统的解决多核学习问题的方法相比不同点在于:
1、传统的多核学习问题的求解,是将目标问题化为半正定规划和二次约束二次规划优化问题来求解,但这两种方法对于解决大规模数据的问题,无论是核的数量或是输入数据的数量均有着局限性,只能在小范围解决多核问题。而本发明将多核学习目标函数转化为半无限线性规划问题,解决了基于大规模数据的多核学习问题;
2、传统的多核学习问题中,正则参数C的求解是通过在训练数据集中采用交叉验证的方法获得的,通常是4折或5折,这种方法很耗时,且最终求得的C参数不一定是最优。在本发明中,通过对多核学习问题目标函数的变化,引入自适应求解C参数的方法,从而在求解各个基核权重参数的同时即把C参数一起求出,避免了繁琐复杂的交叉验证,节省了大量时间,大大降低了多核学习问题求解的复杂度。
综上所述,传统的多核学习问题常常化为半正定规划或二次约束二次规划优化问题来解,不能解决大规模数据问题,且传统的多核学习中的正则参数C的求解通过交叉验证的方式获得,非常耗时繁琐。
与现有技术相比,本发明具有以下有益效果:
将多核学习问题转化为半正定线性规划优化问题,解决了大规模数据问题,无论是数据或核的规模;
将正则化惩罚因子参数C的求解放入了核权重参数的求解中,能够自适应学习C参数,提高了求解效率,避免了繁琐交叉验证过程。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。