from configparser import ConfigParser from sys import argv import numpy as np import pandas as pd from scipy import special class BayesianSmoothing(object): def __init__(self, alpha, beta): self.alpha = alpha self.beta = beta def update(self, imps, clks, iter_num, epsilon): for i in range(iter_num): new_alpha, new_beta = self.__fixed_point_iteration(imps, clks, self.alpha, self.beta) if abs(new_alpha - self.alpha) < epsilon and abs(new_beta - self.beta) < epsilon: break self.alpha = new_alpha self.beta = new_beta def __fixed_point_iteration(self, imps, clks, alpha, beta): numerator_alpha = 0.0 numerator_beta = 0.0 denominator = 0.0 for i in range(len(imps)): numerator_alpha += (special.digamma(clks[i] + alpha) - special.digamma(alpha)) numerator_beta += (special.dig
贝叶斯平滑
最新推荐文章于 2024-07-17 10:29:37 发布
该博客介绍了如何利用贝叶斯平滑(BayesianSmoothing)类进行参数更新。通过固定点迭代(__fixed_point_iteration)方法计算新的α和β值,直到达到预设的收敛条件。在示例中,从输入文件中采样数据,然后使用贝叶斯平滑更新样本的分子和分母,最后将估计的参数写入配置文件。
摘要由CSDN通过智能技术生成