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是指定函数下的因变量值。
基于fitrgp高斯过程回归(GPR)模型。
计算模型拟合的准确度。
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) | 返回每个测试样本的回归值 |
数据类型: 模型对象