RBF在函数逼近上有非常好的表现,这里给出了RBF在单自变量单因变量,以及二自变量单因变量的逼近方法,进行Python实现,多维问题的逼近同样很方便,只需增加相应的维度即可,只是需要更多的数据。
一、原理(公式难写,如需具体文档可私信)
假设有n个样本,每个样本有m个属性,设第i个样本Xi的第j个属性为aij,其对应的目标值为fi,那么可以构建逼近函数F=A*a,A为n*m阶的矩阵,a为m*1阶的矩阵,Aij=Fine(dist(Xi-Xj)),Fine为基函数,常见的有MQ基函数,高斯基函数,多项式基函数,dist为距离,距离的定义可任性点,我这里选用的是欧氏距离。
将每个点代入这个逼近方程,可以得到一个求解大型线性方程组的问题,这样求出a后就能得到函数的逼近方程。
二、实现(分别对一维和二维给出了逼近的类,能可视化,其效果一般来说,都是非常好的,有兴趣的可以尝试,对于工程和互联网中的连续性变量预测问题,也能有非常好的应用,目前工程上应用偏多)
# -*- coding: utf-8 -*-
"""
Created on Fri Oct 07 09:29:46 2016
@author: zhangweiguo
"""
'''
这里用RBF解决一维和二维的数据拟合问题
所选用基函数有MQ,高斯,多项式
'''
import numpy
from matplotlib import py