Mercurial > hg > tvii
view tvii/dataset/gauss.py @ 87:9d5a5e9f5c3b
add kmeans + dataset
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sun, 17 Dec 2017 14:05:57 -0800 |
parents | |
children |
line wrap: on
line source
#!/usr/bin/env python """ generate a Gaussian dataset """ import random import sys from .cli import DatasetGenerationParser class GaussianSampler(object): def __init__(self, D, sigma=1., center=None): assert D > -1 self.D = D if center is None: self.center = [0]*self.D else: assert len(center) == self.D self.center = center self.sigma = sigma def __call__(self): """yield one point of a Gaussian distribution""" return [random.gauss(x, self.sigma) for x in self.center] def main(args=sys.argv[1:]): """CLI""" # parse command line parser = DatasetGenerationParser(description=__doc__) options = parser.parse_args(args) # point generator generator = GaussianSampler(D=options.dimensions) points = [generator() for _ in xrange(options.number)] # output parser.writer().writerows(points) if __name__ == '__main__': main()