-
-
머신러닝을 활용한 웹 최적화 - A/B 테스트, 메타휴리스틱, 슬롯머신 알고리즘에서 베이즈 최적화까지
이쓰카 슈헤이 지음, 김연수 옮김 / 한빛미디어 / 2021년 6월
평점 :
미국대통령 선거에서 오바마가 공식 웹사이트에서 여러이미지와 버튼의 조합중
조합의 등록률을 살표본결과 가족과 함꼐 찍은 이미지와 learn more 이라고 적힌 버튼의 조합이 가장 많은 등록률이 높았다고 한다.
이처럼 작은 변화가 웹사이트에 큰 영향을 끼치는 영향에 대해 이책은 방향을 제시하는 책이라 볼수있다.
1장에서는 머신러닝에 대해나 이론적인 내용을 주로 다루고 있다.
# 0이상 1이하의 범위를 1001개로 분할한 배열 thetas를 준비한다.
import numpy as np
thetas = np.linspace(0, 1, 1001)
print(thetas)
#가능도 함수 likelihood를 작성한다.
likelihood = lambda r: thetas if r else (1 - thetas)
#사후부포는 가능도 함수와 사전함수의 곱이 합계가 1이 되도록 정규화 한다.
def posterior(r, prior):
lp = likelihood(r) * prior
return lp / lp.sum()
#각 theta 가 같은 확률을 갖도록 확률을 나눕니다.
p = np.array([1 / len(thetas) for _ in thetas])
print(p)
#베이즈 추론을 한다. 클릭이 한번 일어났을때 r =1이 주어졌을때의 사후분포를 계산한다.
p = posterior(1, p) # 클릭
print(p)
#맵플롯립은 그래프를 그리기 위한 모듈이다.
from matplotlib import pyplot as plt
#가로축에는 thetas 세로축에는 p를 전달한다.
plt.plot(thetas, p)
plt.xlabel(r'$\theta$')
plt.ylabel(r'$p(\theta)$')
plt.show()
clicks = 2
noclicks = 38
p = np.array([1 / len(thetas) for theta in thetas])
for _ in range(clicks):
p = posterior(1, p)
for _ in range(noclicks):
p = posterior(0, p)
plt.plot(thetas, p)
plt.xlabel(r'$\theta$')
plt.ylabel(r'$p(\theta)$')
plt.show()
시각화 과 0.05 부근으로 폭이 넓어지는 곡선이 생겼다.
조금씩 따라해보면서 이해해고 있는데 생각보다 내용이 쉽지는 않았다.
하지만 생소한 또하나의 분석기법이 될것같아 해당분야에 관심이 있는 사람이라면
머신러닝을 활용한 또하나의 분야를 파악해보는 계기가 될 것 같다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."