베스를 통해 변화점(감마-파송 분포) 검출
개요
감마포야슨 분포로 베스탄 모델링을 조립하고 싶어서 해봤어요.
나는 괜찮은 계수 데이터를 찾았지만 (파송 분포를 사용하고 싶어서) 도무지 찾을 수 없었다
이번에 구글 트렌드에서 90일 가까이 검색한 csv를 출력했습니다.
https://trends.google.co.jp/trends/?geo=JP
출력 데이터에 대해 베일스 모델링을 하고 변화점 검측을 실시했다.
최근 90일간의'미진현사'검색수
2019년 8월부터 검색량이 늘었다.
결실
pymc3의 샘플링 결과입니다.
시각화.유행을 잘 감지할 수 있을 것 같다.
코드 import pandas as pd
import numpy as np
import pymc3 as pm
import matplotlib.pyplot as plt
#前処理
df = pd.read_csv("../desktop/yonezu.csv")
df["日"] = pd.to_datetime(df["日"])
df.index = df["日"]
df.drop(["日"], axis=1, inplace=True)
#モデリング
weeks = df.reset_index().index
with pm.Model() as model:
switchpoint = pm.DiscreteUniform('sp',
lower=weeks.min(),
upper=weeks.max())
lambda1 = pm.Gamma('lambda1', alpha=1, beta=1)
lambda2 = pm.Gamma('lambda2', alpha=1, beta=1)
lambda_ = pm.math.switch(switchpoint>=weeks, lambda1, lambda2)
k = pm.Poisson('k', lambda_, observed = df["米津玄師"].values)
with model:
trace = pm.sample(10000)
burnin = 100
chain = trace[burnin:]
#出力
pm.traceplot(chain)
df["bayes"] = np.hstack([np.array([chain.lambda1.mean()] * int(chain.sp.mean())), np.array([chain.lambda2.mean()] * (df.index.size - int(chain.sp.mean())))])
df.plot(subplots=False, sharex=True, figsize=(10, 8), title="ベイズによる米津玄師の変化点検知")
감상
변화점 검측, 실제 데이터 분석에 유용할 것 같아서 더 익숙해지고 싶어요.
나는 더욱 신경 쓰는 일을 하고 싶다.
참고 자료
Reference
이 문제에 관하여(베스를 통해 변화점(감마-파송 분포) 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gekko_datasci/items/91bf5c16cbee246742c0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
2019년 8월부터 검색량이 늘었다.
결실
pymc3의 샘플링 결과입니다.
시각화.유행을 잘 감지할 수 있을 것 같다.
코드 import pandas as pd
import numpy as np
import pymc3 as pm
import matplotlib.pyplot as plt
#前処理
df = pd.read_csv("../desktop/yonezu.csv")
df["日"] = pd.to_datetime(df["日"])
df.index = df["日"]
df.drop(["日"], axis=1, inplace=True)
#モデリング
weeks = df.reset_index().index
with pm.Model() as model:
switchpoint = pm.DiscreteUniform('sp',
lower=weeks.min(),
upper=weeks.max())
lambda1 = pm.Gamma('lambda1', alpha=1, beta=1)
lambda2 = pm.Gamma('lambda2', alpha=1, beta=1)
lambda_ = pm.math.switch(switchpoint>=weeks, lambda1, lambda2)
k = pm.Poisson('k', lambda_, observed = df["米津玄師"].values)
with model:
trace = pm.sample(10000)
burnin = 100
chain = trace[burnin:]
#出力
pm.traceplot(chain)
df["bayes"] = np.hstack([np.array([chain.lambda1.mean()] * int(chain.sp.mean())), np.array([chain.lambda2.mean()] * (df.index.size - int(chain.sp.mean())))])
df.plot(subplots=False, sharex=True, figsize=(10, 8), title="ベイズによる米津玄師の変化点検知")
감상
변화점 검측, 실제 데이터 분석에 유용할 것 같아서 더 익숙해지고 싶어요.
나는 더욱 신경 쓰는 일을 하고 싶다.
참고 자료
Reference
이 문제에 관하여(베스를 통해 변화점(감마-파송 분포) 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gekko_datasci/items/91bf5c16cbee246742c0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import pandas as pd
import numpy as np
import pymc3 as pm
import matplotlib.pyplot as plt
#前処理
df = pd.read_csv("../desktop/yonezu.csv")
df["日"] = pd.to_datetime(df["日"])
df.index = df["日"]
df.drop(["日"], axis=1, inplace=True)
#モデリング
weeks = df.reset_index().index
with pm.Model() as model:
switchpoint = pm.DiscreteUniform('sp',
lower=weeks.min(),
upper=weeks.max())
lambda1 = pm.Gamma('lambda1', alpha=1, beta=1)
lambda2 = pm.Gamma('lambda2', alpha=1, beta=1)
lambda_ = pm.math.switch(switchpoint>=weeks, lambda1, lambda2)
k = pm.Poisson('k', lambda_, observed = df["米津玄師"].values)
with model:
trace = pm.sample(10000)
burnin = 100
chain = trace[burnin:]
#出力
pm.traceplot(chain)
df["bayes"] = np.hstack([np.array([chain.lambda1.mean()] * int(chain.sp.mean())), np.array([chain.lambda2.mean()] * (df.index.size - int(chain.sp.mean())))])
df.plot(subplots=False, sharex=True, figsize=(10, 8), title="ベイズによる米津玄師の変化点検知")
감상
변화점 검측, 실제 데이터 분석에 유용할 것 같아서 더 익숙해지고 싶어요.
나는 더욱 신경 쓰는 일을 하고 싶다.
참고 자료
Reference
이 문제에 관하여(베스를 통해 변화점(감마-파송 분포) 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gekko_datasci/items/91bf5c16cbee246742c0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(베스를 통해 변화점(감마-파송 분포) 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gekko_datasci/items/91bf5c16cbee246742c0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)