Source code for embedded_voting.embeddings.embeddings_generator_uniform
import numpy as np
from embedded_voting.embeddings.embeddings import Embeddings
from embedded_voting.embeddings.embeddings_generator import EmbeddingsGenerator
[docs]class EmbeddingsGeneratorUniform(EmbeddingsGenerator):
"""
Create random embeddings uniformly on the non-negative orthant.
The embedding of each voter is a unit vector that is uniformly drawn on the intersection
of the unit sphere with the non-negative orthant.
Examples
--------
>>> np.random.seed(42)
>>> generator = EmbeddingsGeneratorUniform(10, 2)
>>> generator()
Embeddings([[0.96337365, 0.26816265],
[0.39134578, 0.92024371],
[0.70713157, 0.70708199],
[0.89942118, 0.43708299],
[0.65433791, 0.75620229],
[0.70534506, 0.70886413],
[0.1254653 , 0.99209801],
[0.95076 , 0.30992809],
[0.95508537, 0.29633078],
[0.54080587, 0.84114744]])
"""
def __call__(self, *args):
return Embeddings(
np.abs(np.random.randn(self.n_voters, self.n_dim)),
norm=True
)