2026a

# fitrgp


拟合高斯过程回归(GPR)模型

函数库: TyMachineLearning

# 语法

clf = fitrgp(X, y)

# 说明

clf = fitrgp(X, y)基于转换格式后的预测数据X和对应的响应变量y返回高斯过程回归(GPR)模型clf。

# 示例

基于fitrgp高斯过程回归(GPR)模型
加载数据集,该数据集中的fitgp_x是在区间[-10,10]中生成1000个数,fitgp_y是指定函数下的因变量值。
using CSV
using TyMachineLearning
using DataFrames
using TyPlot 
file1 = joinpath(pkgdir(TyMachineLearning), "data/Regression/fitgp_x.csv")
file2 = joinpath(pkgdir(TyMachineLearning), "data/Regression/fitgp_y.csv")
fgdata_x = CSV.read(file1, DataFrame; header=0)
fgdata_y = CSV.read(file2, DataFrame; header=0)
fgdata_x1 = Matrix(fgdata_x)
fgdata_y1 = Array(fgdata_y)
fgdata_y1 = fgdata_y1[:,1]

可视化数据。

scatter(fgdata_x1,fgdata_y1)
基于fitrgp高斯过程回归(GPR)模型。
clf = fitrgp(fgdata_x1, fgdata_y1)

查看模型属性。

clf.get_params()
Dict{Any, Any} with 7 entries:
  "normalize_y"          => false
  "optimizer"            => "fmin_l_bfgs_b"
  "alpha"                => 1.0e-10
  "kernel"               => nothing
  "random_state"         => nothing
  "n_restarts_optimizer" => 0
  "copy_X_train"         => true

计算训练数据的似然log_marginal。

clf.log_marginal_likelihood()
-1.8760644282993073e11

输出结果不会完全一致

通过predict属性拟合数据并与样本数据的响应变量对比。

figure()
hold("on")
plot(fgdata_y1)
xlabel("Number")
ylabel("Value")
clf = fitrgp(fgdata_x1, fgdata_y1)
plot(clf.predict(fgdata_x1))
legend(["data", "fit data"])
hold("off")
计算模型拟合的准确度。
clf.score(fgdata_x1, fgdata_y1)
0.850451620870191

输出结果不会完全一致

# 输入参数

X - 样本数据
表格
预测变量数据,指定为 n×p 数值矩阵。X 的行对应于各个观测值,列对应于预测变量。

数据类型:Matrix

y - 转换格式的响应变量
表格型数值向量
响应数据,指定为 n×1 数值向量。y 的行对应于不同观测值。y 的行数必须与 X 的行数相同。

数据类型: Vector

# 输出参数

clf - 高斯过程回归(GPR)模型
模型对象
返回高斯过程回归模型,模型的调用属性参数总结如下:
模型属性 描述
mdf.get_params() 获取高斯过程回归模型的参数属性
mdf.fit(X1,y1) 模型的拟合
mdf.score(x1,y1) 返回模型拟合的精确度
mdf.predict(x1) 返回每个测试样本的回归值

数据类型: 模型对象

# 另请参阅

predict | loss | partialDependence