gpt4 book ai didi

python - 使用高斯过程回归 (GPR) 预测 radio 信号强度 (RSS)

转载 作者:行者123 更新时间:2023-11-30 09:47:59 39 4
gpt4 key购买 nike

我想使用 GPR 来预测来自已部署接入点 (AP) 的 RSS。由于 GPR 也给出平均 RSS 及其方差,因此 GPR 在定位和导航系统中非常有用。我阅读了探地雷达相关的出版期刊并获得了它的理论见解。现在,我想用真实数据(RSS)来实现它。在我的系统中,输入和相应的输出(观察)是:

X:二维笛卡尔坐标点

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

网上搜索后发现可以用sklearn软件(使用Python)。我安装了 sklearn 并成功测试了示例代码。示例 python 脚本适用于 1D GPR。由于我的输入集是二维坐标,因此我想修改示例代码。我发现其他人也尝试这样做,例如:How to correctly use scikit-learn's Gaussian Process for a 2D-inputs, 1D-output regression? , How to make a 2D Gaussian Process Using GPML (Matlab) for regression? ,和Is kringing suitable for high dimensional regression problems? .

预期(预测)值应与y类似。我得到的值(value)是非常不同的。我想要预测RSS的测试台的大小是16*16平方米。我想预测每隔一米的 RSS。我假设高斯过程预测器是使用示例代码中的高斯体面算法进行训练的。我想用 Firefly 算法优化超参数(theta:使用 yX 训练)。

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

请帮助我提出您的建议和意见。

非常感谢。

最佳答案

我稍微简化了代码以说明潜在的问题:

import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor

x_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])

# This is a test set?
x1min = 0
x1max = 16
x2min = 0
x2max = 16
x1 = np.linspace(x1min, x1max)
x2 = np.linspace(x2min, x2max)
x_test =(np.array([x1, x2])).T

gp = GaussianProcessRegressor()
gp.fit(x_train, y_train)

# predict on training data
y_pred_train = gp.predict(x_train)
print('Avg MSE: ', ((y_train - y_pred_train)**2).mean()) # MSE is 0

# predict on test (?) data
y_pred_test = gp.predict(x_test)
# it is unclear how good this result without y_test (e.g., held out labeled test samples)

The expected (predicted) values should be similar to y.

为了清楚起见,我已将 y 重命名为 y_train。在拟合 GP 并预测 x_train 后,我们看到模型完美地预测了训练样本,这可能就是您的意思。我不确定您是否错误地写了小写的x,我称之为x_test(而不是大写的X,我称之为x_train) >)在问题中。如果我们对 x_test 进行预测,如果没有相应的 y_test 值,我们就无法真正知道预测有多好。所以,这个基本示例正如我所期望的那样工作。

您似乎还试图为 x_test 创建网格,但当前代码并未执行此操作。此处,每个位置的 x1x2 始终相同。如果你想要网格,请看np.meshgrid .

关于python - 使用高斯过程回归 (GPR) 预测 radio 信号强度 (RSS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49852494/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com