【预测模型】基于帝国竞争算法优化最小二乘支持向量机
lssvm实现数据预测matlab代码
1 简介
本文提出一种帝国竞争算法优化基于最小二乘支持向量机的数据预测方法。LSSVM 是一种新型机器学习
算法,其在传统支持向量机 SVM 基础上,将二次规划问题中的不等式约束改为等式约束,极大地方便了
求解过程,克服了数据集粗糙、数据集波动性大等问题造成的异常回归,能有效避免 BP 神经网络等方
法中出现的局部最优等问题。
帝国竞争算法是 2007 年Atashpaz-Gargari等提出的一种社会政治进化算法, 是对人类社会殖民竞争过程
的一种模拟. 帝国竞争算法的主要过程如下:第一步是形成帝国. 帝国竞争算法首先通过随机方法生成初始
国家, 每个国家代表所求问题的一个解.这些国家依据权力大小(求解质量) 分为殖民国家和殖民地两个类
别. 权力最大的前若干国家成为殖民国家. 然后按照殖民国家权力大小依次将剩余国家作为殖民地分配给
殖民国家, 权力越大的殖民国家所分配的殖民地越多. 殖民国家与其所属的殖民地统称为帝国.第二步是同
化与革命. 在帝国形成后, 必然伴随着殖民地的经济、文化、语言等属性趋向于所属殖民国家, 这一过程叫
作同化. 同化的目的在于提升所有国家求解质量的同时, 能够增加殖民国家对殖民地的影响. 为了与历史相
符, 殖民地趋向帝国的过程总是有一定偏移, 极端情况下甚至会出现反向偏移, 即殖民地革命. 如果殖民地
在同化与革命过程中权力超过了所属殖民国家, 则此时殖民地将取代殖民国家建立新的帝国.最后一步是
殖民竞争. 帝国之间存在着竞争, 帝国间势力的此消彼长使得弱小帝国的殖民地会被强大帝国所剥夺, 直至
弱小帝国消失. 同时, 在竞争过程中会不断出现新的帝国. 经过数代的同化、革命、竞争后, 理想情况下只
会留存一个帝国, 且所有国家都为该帝国的成员. 帝国竞争算法正是通过这样一系列的进化操作, 最终找到
全局范围内的最优解.
算法流程如下:
步骤1,采集时间序列的样本数据;
步骤2,建立基于帝国竞争算法优化参数的LSSVM数据预测模型;
步骤3,应用预测模型对训练样本进行预测,得到训练样本的相对误差和预测值;步骤4,预测模型对训练样本
的相对误差进行预测,从而得到相对误差的预测值;步骤5,对相对误差的预测值进行校正,从而得到预测速
率;解决了由于最小二乘支持向量机核函数参数和惩罚参数的经验性赋值而导致的预测精度不足的问题.
2 部分代码
%=====================================================================
%初始化
clc
close all
clear
format long
tic
%==============================================================
%%导入数据
data=xlsread('1.xlsx');
[row,col]=size(data);
x=data(:,1:col-1);
y=data(:,col);