10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google Colaboratoryで誰でも使える簡易ベイジアンABテストツールを作成してみた

Last updated at Posted at 2022-01-08

概要

実装例は沢山あるものの,簡単に使えるWebツール的なものが見当たらなかったため作ってみました.Google Colaboratoryで作ったので「簡単に使える」とは言えないかもしれませんが,CoLabのフォーム機能を使用しつつ使い方を記載しているので,データエンジニアでない方でも使えるかと思います.今回は作ったツールの共有とざっくりとした感想が主です.

以下がそのツール

コード
https://github.com/o93/bayesian-ab

ベイジアンABテストについては過去記事にしています.
難しく考えずにベイジアンABテストを試してみた

前提条件(2022/1/9追記

過去記事も含めて理論的な説明をする記事ではないため(そもそも自分の実力では現状それができない),出てくるワードの意味が間違っているかもしれません.指摘は頂けると有り難いです.最近,個人的に,「役立つなら良いじゃん」,「ちゃんと理解しないと..」という両方の思いがせめぎ合っていますが,詳細を理解せずに使っている人が居てこそ,世の中がより速く発展していけるとも感じています.

使い方

ここにアクセスします
右上の接続ボタンを押します
スクリーンショット 2022-01-08 18.26.58.png

接続ボタンがあったところにRAM・ディスクが表示されると,ツールが動作可能になります

使い方を読んだ上で,入力欄に必要な情報を入力します
初期値が入力されているので,必要に応じて差し替えてください
スクリーンショット 2022-01-08 18.33.14.png

フォームの左上にある再生ボタンを押します
スクリーンショット 2022-01-08 19.21.13.png
確率分布のグラフやベイジアンABテストの結果が表示されるかと思います

前回の記事と異なる部分

Google ColaboratoryのUI機能がめっちゃ便利!

値を入力できるフォームを利用しました.デザイン的な制限はありますが,APIやWebサービスを立ち上げなくても簡単なデータ分析機能を提供することができます!計算リソースはそれぞれ使用者のGoogleアカウントに紐づいて使用されるため,提供者がサーバー費用を負担する必要もありません.コード丸見えですけど..

フォームは以下のような記述だけで実装できます.

#@markdown しきい値を入力
threshold = 0.9 #@param {type:"number", min:0.0, max:1.0}

スクリーンショット 2022-01-08 19.41.58.png

参考: ColabにUIをつける小技集

今回使用していませんが,ボタンは以下のように参考記事よりシンプルに実装できます.

import ipywidgets as widgets
from IPython.display import display

def on_clicked(b):
  with output:
    print('Click!')

button = widgets.Button(description='Submit')
output = widgets.Output()

button.on_click(on_clicked)
display(button, output)

グラフ表示範囲を大事な箇所に絞る工夫

サンプルデータが極端に少ない場合を除いてCV率の確率分布が0.01.0に広がっているとは限らないため,グラフ表示の際に表示データを以下のように絞っています.

# 表示範囲を限定
plot_index = np.where((pa > 0.00001) | (pb > 0.00001))
p_pa = pa[plot_index]
p_pb = pb[plot_index]

極端に確率の値が低い範囲を除外した配列のindexnp.whereで取得して適用しています.

感想と今後

最初はStreamlitCloud Runにデプロイ,みたいなことを目論んでいましたが,めんどくさくなってCoLabで実装してみたところ,思っていたより汎用的に利用できることが分かりました.簡単なパラメータ調整はフォーム機能があるし,ファイルはドラッグ&ドロップでアップロードできます.UIに拘らなければ色んな検証・分析ツールが作れそうでした!

今後は以下のようなことを考えています,,時間あるときにできたらいいな..

  • PyMC3を使用したビジュアライズ
  • より汎用的なベイズ推論,因果推論のツール化
10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?