趋势预测方法(四)高斯过程回归_时序概率性预测

高斯过程回归(GPR)

a基本原理:

利用高斯过程回归将可能的数据趋势曲线都保存下来(每条趋势曲线都有自己的置信度,在区间内呈高斯分布),最后在一张图中显示出来,再判断总体的趋势情况。

趋势预测方法(四)高斯过程回归_时序概率性预测

b算法原理:

高斯过程GP

趋势预测方法(四)高斯过程回归_时序概率性预测

高斯过程回归GPR

趋势预测方法(四)高斯过程回归_时序概率性预测

核函数Kernel

支持向量机(SVM)通过某非线性变换 φ( x) ,将输入空间映射到高维特征空间。特征空间的维数可能非常高。如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K(x, x′) ,它恰好等于在高维空间中这个内积,即K( x, x′) =

推荐几种可以用到时序预测的核函数。

RBF(径向基核函数)

Rational Quadratic (有理二次核函数)

Dot Product (点乘核函数)

White (白噪声核函数)

c方法优缺点:

优点

  1. 预测值是观察值的插值,观察起来相对容易。
  2. 预测值在置信区间内是承高斯分布的,可以选出自己感兴趣的组重新拟合。
  3. 可以根据不同的特征数据来选择合适的核函数。

缺点

  1. 需要使用大量的样本数据。
  2. 特征数量过多的时候,在高维空间失去了有效性。

d算法入口:

sklearn.gaussian_process.GaussianProcessRegressor(Kernel,Alpha,n_restarts_optimizer,nor malize_y)

Kernel内核函数,输入一个带参数的内核函数。

Alpha拟合期间将一个高斯白噪声添加到核矩阵的对角线上,防止拟合过程中潜在的数 值问题。

n_restarts_optimizer 优化器的启动次数,用来查找最大化对数边际可能性的内核参 数。注:n_restarts_optimizer == 0表示执行了一次运行。

normalize_y 无论目标值y是否被归一化,目标值的均值和方差分别设置为等于0和1。 对于使用零均值,单位方差先验的情况,建议使用此方法。

e实例参考:

'''
    高斯过程回归,Kernel为径向基核函数
'''

import numpy as np
import matplotlib.pyplot as plt
from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C
from sklearn.gaussian_process import GaussianProcessRegressor

生成高斯过程回归模型
kernel = C(1.0, (1e-3, 1e3)) * RBF(10, (0.5, 2))  # 常数核*径向基核函数
gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=9)

生成历史数据
xobs = np.array([1, 1.5, -3]).reshape(-1, 1)
yobs = np.array([3, 0, 1])

使用历史数据拟合模型
gp.fit(xobs, yobs)

预测
x_set = np.arange(-6, 6, 0.1).reshape(-1, 1)
means, sigmas = gp.predict(x_set, return_std=True)

作图
plt.errorbar(x_set, means, yerr=sigmas, alpha=0.5)
plt.plot(x_set, means, 'g', linewidth=4)
colors = ['g', 'r', 'b', 'k']
for c in colors:
    y_set = gp.sample_y(x_set, random_state=np.random.randint(1000))
    plt.plot(x_set, y_set, c + '--', alpha=0.5)

plt.show()

运行结果

趋势预测方法(四)高斯过程回归_时序概率性预测

f参考文献:

通俗理解高斯过程及其应用 https://zhuanlan.zhihu.com/p/73832253

高斯过程的优点和缺点 https://blog.csdn.net/raby_gyl/article/details/72957483

高斯过程 Gaussian Processes 原理、可视化及代码实现 https://zhuanlan.zhihu.com/p/75589452

高斯过程回归(三)贝叶斯定理 https://blog.csdn.net/qq_42295125/article/details/116763149

高斯过程回归GPR(sklearn.gaussian_process+python实现)https://blog.csdn.net/A_L_A_N/article/details/93888883

Original: https://blog.csdn.net/aaakirito/article/details/117123227
Author: aaakirito
Title: 趋势预测方法(四)高斯过程回归_时序概率性预测

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/630670/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球