支持向量机(Support Vector Machines,SVM)是根据统计学理论中最小化原则提出来的,由有限数据得到的判别函数,对独立的测试样本能够得到较小的误差,包括支持向量分类机 (Support Vector Classification,SVC)和支持向量回归机(Support Vector Regression,SVR)。此文用的就是SVR算法,其目的是构造一个回归估计函数,将非线性函数的回归估计问题转化为一个具有线性等式约束和线性不等式约束的二次规划问题。可以得到唯一的全局最优解。此最优解,在预测桨距角中就是最佳桨距角。
1 SVR
1.1 SVR的引入
现有的预测桨距角算法有基于BP算法和基于LV算法的神经网络,BP算法收敛速度慢、精度低,LV算法泛化能力差,因此,能改变现有算法不足的支持向量机算法应运而生。SVM方法最早是针对模式识别问题提出的,随着对ε不敏感损失函数的引入,现已推广应用到非线性回归估计和曲线拟合中,得到了用于曲线拟合的回归型支持向量机SVR,表现出很好的学习效果。
1.2 回归算法原理
标准的SVR算法,分为线性和非线性两种。SVR的基本思想是:将输入样本空间非线性变换到另一个特征空间,在这个特征空间构造回归估计数,这种非线性变换是通过定义适当的核函数K(xi,xj)来实现的。其中K(xi,xj)=φ(xi)·φ(xj),φ(x)为某一非线性函数。
假设给定了训练数据,{(xi,yi),i=1,2,...,n},xi为学习样本,yi为对应的目标值。定义线性ε不敏感损失函数为:
即如果目标y值和经过学习构造的回归估计函数f(x)的值之间的差别小于ε,则损失等于0。
假设非线性情形的回归估计函数为:
要寻找w、b对,使在式(1)不变的前提下最小化
。
同时考虑到当约束条件不可实现时将松弛变量
引入,这样最优化问题为:
利用拉格朗日乘子法来求解这个约束最优化问题,因此构造拉格朗日函数
其中NNSV为标准支持向量数量。由式(7)和式(8)知,尽管通过非线性函数将样本数据映射到具有高维甚至无穷维的特征空间,但在计算回归估计函数时并不需要显式计算该非线性函数,而只需计算核函数,从而避免高维特征空间引起维数灾难问题。
2 桨距角预测与Matlab仿真
2.1 样本的获取与预处理
要使风速改变时,桨距角随之改变的值为最佳桨距角,就要选择合适的学习样本,用来训练和检验。由于自然界风速处于不断变化中,较短时间3~4 s内的风速上升或下降总是不断发生,因此变桨距机构也在不断动作,在转子电流控制器的作用下,将桨距角的实际变化情况选做样本。共选取128组样本数据,其中学习样本80个,用来检验的预测样本48个。选择的训练样本和测试样本形式如下表1所示。
并将此样本存为.txt格式,以便于在Matlab仿真时的数据输入。
用户评论
共 0 条评论