2章確率的プログラミング: コンピュータの助けを借りる
前章ではシンプルなA/Bテストを題材としてベイズ推論の流れ、そして統計的仮説検定の方法を学びました。ある確率でデータが0または1を取るというシンプルなベルヌーイ試行から出発し、確率計算を施すことでさまざまな知見を引き出すことができました。
しかし、常にこのように簡単に物事が運ぶとは限りません。今までは比較的簡単な計算で事後分布が導けましたが、対象となるデータの種類が異なればまた一から計算を展開する必要があります。たとえば、ECサイトでユーザあたりの購入点数を最大化したい場合にはデータは0以上の整数(0点、1点…… )で表されます。一方、ユーザの滞在時間を最大化したい場合には0以上の連続値(5.3秒、10.8秒など)で表されると考えられるでしょう。このように、最適化したい対象が変わるたびに計算をするのは大変そうです。
そこで強力な武器になるのが1.5節でも触れた統計モデルです。データが生成される過程を統計モデルのかたちで記述することで、具体的な問題を抽象化し、他者と、そしてコンピュータと共有できるようになります。さらに統計モデルと観測されたデータを確率的プログラミング言語(probabilistic programming language, PPL)で記述すると、コンピュータが事後分布をはじめとするさまざまな統計量を計算して出力してくれます。つまり、分析者はひとまず具体的な計算のことは忘れて、目の前の問題を統計モデルに落とし込む創造的な作業に集中できるのです!
確率的プログラミングとは統計モデルをソースコードとして記述し、自動で推論を行う枠組みのことです。特にそのようなプログラミングをサポートする言語やライブラリのことを確率的プログラミング言語と呼びます。本章では、なかでもPythonで利用できる確率的プログラミングライブラリPyMC3を取り上げて、ソフトウェアドリブンなベイズ推論の方法を紹介します。この章を読み終えた頃には、クリック率以外の指標を最適化するA/Bテストも自信を持って設計・分析できるようになっているでしょう。 ...
Get ウェブ最適化ではじめる機械学習 ―A/Bテスト、メタヒューリスティクス、バンディットアルゴリズムからベイズ最適化まで now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.