def _apply_dynamics(self, weight): prior = util.prior_weight() adjusted_variance = weight.variance * prior.variance / \ ((1.0 - self._config.epsilon) * prior.variance + self._config.epsilon * weight.variance) adjusted_mean = adjusted_variance * ( (1.0 - self._config.epsilon) * weight.mean / weight.variance + self._config.epsilon * prior.mean / prior.variance) adjusted = pb.Gaussian(mean=adjusted_mean, variance=adjusted_variance) logger.debug("Adjusting weight %s to %s", util.pp(weight), util.pp(adjusted)) return adjusted
def test_dynamics_neutral_for_prior(self): p = self._create_predictor(epsilon=0.05) initial = util.prior_weight() adjusted = p._apply_dynamics(initial) self.assertAlmostEqual(initial.mean, adjusted.mean) self.assertAlmostEqual(initial.variance, adjusted.variance)
def _get_weight(self, feature): return self._weights.get(util.serialize_feature(feature), util.prior_weight())
def _get_weight(self, feature): return self._weights.get( util.serialize_feature(feature), util.prior_weight())