python 合并数据 openAI gym

python binning data openAI gym

我正在尝试使用 openAI gym 创建一个用于强化学习的自定义环境。我需要在名为 observation_space 的变量中表示环境将看到的所有可能值。代理可以使用 3 种可能的操作,称为 action_space

更具体地说,observation_space 是一个温度传感器,它的可能范围是 50 到 150 度,我想我可以通过以下方式表示所有这些:

编辑,我的 action_space numpy 数组错误

import numpy as np
action_space = np.array([ 0,  1,  2])
observation_space = np.arange(50,150,1)

对于observation_space,我可以使用更好的方法对数据进行分类吗? IE,制作 20 个 bin 50-55、55-60、60-65 等...

我认为我所拥有的东西会起作用,但看起来有点麻烦...而且我相信有更好的做法,因为我对这个主题没有太多的智慧。这将打印出一个 Q table:

action_size = action_space.shape[0]
state_size = observation_space.shape[0]

qtable = np.zeros((state_size, action_size))
print(qtable)

这与编程没有太大关系,所以也许 stats.stackexchange 您可能会得到更好的答案。无论如何,这仅取决于您想要多少准确性。我猜您想根据传感器读数改变温度(升高、降低、不改变)。 50 和 51 之间是否有很大差异(就最佳行动而言)?如果不是,那么您可以每 2 度将状态 space 离散化。等等。

更一般地说,这样做是在使用 RL 中称为 "features" 的东西。在状态区间 space 上的离散化称为 tile coding,通常效果很好。

如果您是 RL 新手,我真的建议您阅读 this book,或者至少阅读与您正在做的事情相关的第 1、3、4 章。