使用高斯过程回归(GPR)预测无线电信号强度(RSS)

我想使用GPR来预测从已部署的接入点(AP)接收到的RSS。由于GPR不仅能提供RSS的均值,还能提供其方差,因此GPR在定位和导航系统中可能非常有用。我阅读了与GPR相关的已发表的期刊,掌握了其理论基础。现在,我希望用真实数据(RSS)来实现它。在我的系统中,输入和相应的输出(观测值)是:

X:二维笛卡尔坐标点

y:在相应坐标处的RSS(-dBm)数组

在网上搜索后,我发现可以使用sklearn软件(使用Python)。我安装了sklearn并成功测试了样本代码。这些样本Python脚本是为1D GPR设计的。由于我的输入集是2D坐标,我希望修改样本代码。我发现其他人也尝试过同样的操作,例如:如何正确使用scikit-learn的高斯过程进行2D输入,1D输出的回归?如何使用GPML(Matlab)进行2D高斯过程回归?,以及克里金法是否适合高维回归问题?

预期(预测)的值应该与y相似。我得到的值却大不相同。我想要预测RSS的测试床大小为16*16平方米。我希望每隔一米预测一次RSS。我假设样本代码中的高斯过程预测器使用了高斯下降算法进行训练。我希望使用萤火虫算法优化超参数(theta:使用yX训练)。

为了使用我的数据(2D输入),我应该编辑哪一行代码?同样,我如何实现萤火虫算法(我已经通过pip安装了萤火虫算法)?

请提供您的建议和评论,谢谢您的帮助。

非常感谢您。


回答:

我简化了代码,以说明可能存在的问题:

import numpy as npfrom sklearn.gaussian_process import GaussianProcessRegressorx_train = np.array([[0,0],[2,0],[4,0],[6,0],[8,0],[10,0],[12,0],[14,0],[16,0],[0,2],                    [2,2],[4,2],[6,2],[8,2],[10,2],[12,2],[14,2],[16,2]])y_train = np.array([-54,-60,-62,-64,-66,-68,-70,-72,-74,-60,-62,-64,-66,                    -68,-70,-72,-74,-76])# 这是一个测试集吗?x1min = 0x1max = 16x2min = 0x2max = 16x1 = np.linspace(x1min, x1max)x2 = np.linspace(x2min, x2max)x_test =(np.array([x1, x2])).Tgp = GaussianProcessRegressor()gp.fit(x_train, y_train)# 在训练数据上预测y_pred_train = gp.predict(x_train)print('Avg MSE: ', ((y_train - y_pred_train)**2).mean()) # MSE 为 0# 在测试(?)数据上预测y_pred_test = gp.predict(x_test)# 如果没有y_test(例如,保留的标记测试样本),无法确定结果的优劣

预期(预测)的值应该与y相似。

在这里,我为了清晰起见将y重命名为y_train。在拟合GP并在x_train上预测后,我们看到模型完美地预测了训练样本,这可能是您所指的意思。我不确定您是否错误地写了小写的x,我称之为x_test(而不是大写的X,我称之为x_train)。如果我们在x_test上预测,没有相应的y_test值,我们真的无法知道预测的效果如何。因此,这个基本示例的运行情况符合我的预期。

看起来您还尝试为x_test创建一个网格,但当前代码并未实现这一点。这里,x1x2在每个位置总是相同的。如果您想要一个网格,请查看np.meshgrid

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注