SVM 支持向量机的回归拟合(matlab实现)

1.分块算法
分块算法()的理论依据是支持向量机的最优解只与支持向量有关,而与非支持向量无关 。该算法的基本步骤如下:
(1)将原始优化问题分解为一系列规模较小的QP子集,首先随机选择一个QP子集,利用其中的训练样本进行训练,剔除其中的非支持向量,保留支持向量 。
(2)将提取出的支持向量加入另一个QP子集中,并对新的QP子集进行求解,同时提取出其中的支持向量 。
(3)逐步求解,直至所有的QP子集计算完毕 。
2.Osuna算法
Osuna算法最先是由Osuna等人提出的,其基本思路是将训练样本划分为工作样本集B和非工作样本集N,迭代过程中保持工作样本集B的规模固定 。在求解时,先计算工作样本集B的QP问题,然后采取一些替换策略,用非工作样本集N中的样本替换工作样本集B中的一些样本,同时保证工作样本集B的规模不变,并重新进行求解 。如此循环,直到满足一定的终止条件 。
【SVM支持向量机的回归拟合(matlab实现)】3.序列最小优化算法
与分块算法和Osuna算法相同,序列最小优化算法(,SMO)的基本思想也是把一个大规模的QP问题分解为一系列小规模的QP子集优化问题 。SMO算法可以看做是Osuna算法的一个特例,即将工作样本集B的规模固定为2,每次只求解两个训练样本的QP问题,其最优解可以直接采用解析方法获得,而无需采用反复迭代的数值解法,这在很大程度上提高了算法的求解速度 。
4.增量学习算法
上述3种训练算法的实现均是离线完成的,若训练样本是在线实时采集的,则需要用到增量学习算法( ) 。增量学习算法将训练样本逐个加入进来,训练时只对与新加入的训练样本有关的部分结果进行修改和调整,而保持其他部分的结果不变 。其最大的特点是可以在线实时地对训练样本进行学习,从而获得动态的模型 。
简而言之,分块算法可以减小算法占用的系统内存,然而当训练样本的规模很大时,其算法复杂度仍然较大 。Osuna算法的关键在于如何划分工作样本集与非工作样本集、如何确定工作样本集的大小、如何选择替换策略以及如何设定迭代终止条件等 。SMO算法采用解析的方法对QP问题进行求解,从而避免了数值解法的反复迭代过程以及由数值解法引起的误差积累问题,这大大提高了求解的速度和精度 。同时,SMO算法占用的内存资源与训练样本的规模呈线性增长,因此其占用的系统内存亦较小 。增量学习算法适用于在线实时训练学习 。
2 案例背景2.1 问题描述
近年来,随着房屋建筑、水利、交通等土木工程的大力发展,我国的混凝土年用量逐年攀升 。相关统计数据表明,目前我国的混凝土年用量约为24~30亿立方米,混凝土结构约占全部工程结构的90%上,可以预见,混凝土将是现阶段及未来一段时间内我国主导的工程结构材料 。
混凝土是由水泥、砂、石、飞灰和水等构成的混合物,且在使用时往往需要添加增塑剂等 。因此,与其他结构材料相比,混凝土具有更复杂的力学性能 。混凝土的强度是决定混凝土结构和性能的关键因素,也是评价混凝土结构和性能的重要指标 。其中,混凝土的立方米抗压强度是其各种性能指标的综合反映,与混凝土轴心抗拉强度、轴心抗压强度、弯曲抗压强度、疲劳强度等有良好的相关性,因此混凝土的立方米抗压强度是评价混凝土强度的最基本指标 。
随着技术的不断发展,混凝土抗压强度检测手段也愈来愈多,基本上可以分为局部破损法和非破损法两类,其中局部破损法主要是钻芯法,非破损法主要包括回弹法和超声法 。工程上常采用钻芯法、修正回弹法,并结合《回弹法检测混凝土抗压强度技术规程》、《建筑结构检测技术标准》等规定的方法来推定混凝土的抗压强度 。按照传统的方法,通常需要先对混凝土试件进行28天标准养护,然后再进行测试 。若能够提前预测出混凝土的28天抗压强度,则对于提高施工质量和进度都具有重要的参考意义和实用价值 。