插值、预测、拟合是三个十分相近的概念。
(1)插值一般要求插值函数经过所有的样本点,形成复杂的插值函数。
插值有两大基本思路:
思路1:已知n个样本点,基于样本数据计算出唯一的插值函数f(x),使得f(x)经过每个样本点,再根据f(x)计算新的x-new对应的y值(即插值)。当获得f(x)后,可以对任意x进行插值计算。
这样的f(x)自然十分贴合样本点,但是往往函数次数十分高,即产生的f(x)是高次多项式,容易产生龙格现象,即边缘点的插值结果与样本点差异较大。
思路2:分段插值。插值结果仅取决于周围少数2个、3个点。最终形成复杂的分段函数。不过分段插值局限性比较明显,即新的x只能介于样本点的x区间内。如,已知样本点x的取值范围为【0,10】,则我们不能使用分段插值法计算x = 11的插值y。
(2)拟合方法指根据样本点形成一个拟合函数f(x),拟合函数不一定经过所有的样本点,它要求拟合值与实际值之间的误差之和最小,即总体误差最小即可。可以基于获得的拟合函数f(x)预测新的任意x对应的y。
1.分段一次插值法(也称:分段线性插值法)【常用~】
分段线性将每两个相邻的节点用直线连起来,如此形成的一条折线就是分段线性插值函数。图片来源:清风老师课件
计算点xi的插值时,只用到左(Xi-1)右(Xi+1)的两个点,因此计算效率较高。
python代码示例:
from scipy.interpolate import interp1d
import matplotlib.pyplot