Advertisement
Guest User

Untitled

a guest
Aug 24th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. #By Tim Sheerman-Chase, 2016
  2. #CC0 license
  3. class RunningWeightedAverage(object):
  4. def __init__(self):
  5. self.val = 0.0
  6. self.weightTotal = 0.0
  7.  
  8. def update(self, valIn, weight = 1.0):
  9. scaling = weight / float(self.weightTotal + weight)
  10. self.val = valIn * scaling + self.val * (1.0 - scaling)
  11. self.weightTotal += weight
  12. return self.val
  13.  
  14. def get(self):
  15. return self.val
  16.  
  17. def extend(self, vals, weights):
  18. for v, w in zip(vals, weights):
  19. self.update(v, w)
  20. return self.val
  21.  
  22. if __name__ == "__main__":
  23. rwa = RunningWeightedAverage()
  24. print rwa.extend([5, 6, 2], [0.25, 0.25, 0.5])
  25. print "correct answer", 3.75
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement