421. Rock, Paper, Scissors | rock-paper-scissors
很幸运,我在这次比赛中获得了第12名。
对我来说,这是一次非常有趣且愉快的经历。
我想分享一下我在这次比赛中的解决方案。
我使用了4个 LightGBM 预测器,基于最近50场比赛进行训练。
对于每个预测器,有3种策略,分别使用胜手、平手和负手。
因此,总共有12种不同的策略。
每场比赛后,改变每种策略的权重。
如果智能体(Agent)赢得了上一场比赛,上一场比赛所用策略的权重就会增加;如果输了,权重就会减少。
同时也会改变相关策略(使用相同预测器的策略)的权重。
如果预测器输出的概率非常相似(例如 [0.30, 0.35, 0.35]),这个结果对评估策略有用吗?
因此,我设置了“确认阈值”。
如果最高概率 > 阈值,智能体将使用该策略。否则,智能体使用随机策略。
例如,预测器输出的对手出招概率为 [R: 0.45, P: 0.50, S: 0.05]。
在这种情况下,“S”(剪刀)是理论上胜率最高的策略,但“S”有45%的概率会输。
而“P”(布)不是理论上胜率最高的策略,但“P”有45%的概率赢,50%的概率平,只有5%的概率输,这是一个合理的策略。
因此,我设置了“安全阈值”。
如果最低概率 < 阈值,智能体将使用该策略。
这里有很多超参数。
例如:
每天,我都会稍微调整一下超参数,并提交智能体。