今天中午吃什么-bandit算法

解决问题

参考帖子
赌场中多个老虎机,如何收益最大化

Thompson Sampling

假设每个臂的收益概率为p,进一步假设p概率分布符合beta(wins, lose)
通过beta分布生成的随机数大小,随机选出最大数对应的臂。有收益则wins+1,反之lose+1

# python实现的Thompson Sample
choice = numpy.argmax(pymc.rbeta(1 + self.wins, 1 + self.trials - self.wins))

UCB: Upper Confidence Bound

每个臂都试一次,然后选择\overline x_j(t)+\sqrt{\frac{2\ln t}{T_{j, t}}}公式最大值的臂
表达的含义是均值+标准差来均衡exploit和explore两方面

Epsilon-Greedy

选择(0,1)中较小值epsilon,每次做选择前抽取一个(0,1)的随机数e
如果e<epsilon,则随机选一个臂,否则选择目前平均收益最高的臂

朴素

先试几次,然后每次选择平均收益最高的臂

10000次遗憾模拟
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。