Golangでバンディットアルゴリズムを実装した。
以下の書籍を参考にGolangでバンディットアルゴリズムを実装してみた。
書籍に載っているEpsilon-Greedy、Softmax、UCB1を実装してから、Epsilon-GreedyとSoftmaxはAnnealingを追加してみた。
書籍ではPythonでtsvファイルを生成してからRで可視化しているけれど、今回はGolangでグラフを描画した。
書籍と同じようなグラフができたので、たぶん同じように実装できているはず。
Annealingを追加したグラフは書籍には載っていないけれど、EpsilonとかTemperatureにあまり影響されない結果になった。
Bandit Algorithms for Website Optimization
- 作者: John Myles White
- 出版社/メーカー: O'Reilly Media
- 発売日: 2012/12/10
- メディア: Kindle版
- この商品を含むブログを見る
アルゴリズムを呼び出してシミュレートするコードはこんな感じ。