Source code for embedded_voting.ratings.ratings_generator_uniform
import numpy as np
from embedded_voting.ratings.ratings import Ratings
from embedded_voting.ratings.ratings_generator import RatingsGenerator
[docs]class RatingsGeneratorUniform(RatingsGenerator):
"""
Generate uniform random ratings.
Examples
--------
>>> np.random.seed(42)
>>> generator = RatingsGeneratorUniform(n_voters=5)
>>> generator(n_candidates=4)
Ratings([[0.37454012, 0.95071431, 0.73199394, 0.59865848],
[0.15601864, 0.15599452, 0.05808361, 0.86617615],
[0.60111501, 0.70807258, 0.02058449, 0.96990985],
[0.83244264, 0.21233911, 0.18182497, 0.18340451],
[0.30424224, 0.52475643, 0.43194502, 0.29122914]])
"""
def __init__(self, n_voters, minimum_rating=0, maximum_rating=1):
super().__init__(n_voters=n_voters)
self.minimum_rating = minimum_rating
self.maximum_rating = maximum_rating
self.amplitude = self.maximum_rating - self.minimum_rating
def __call__(self, n_candidates):
return Ratings(np.random.rand(self.n_voters, n_candidates)) * self.amplitude + self.minimum_rating