def __init__(self, n_components, method="sklearn", init="rand_orth", orthogonalize=True, tol=1e-5, maxiter=100, seed=None): # Model options. self.n_components = n_components self.orthogonalize = orthogonalize # Optimization parameters. self.tol = tol self.maxiter = maxiter self.seed = seed # Model parameters. self._factors = None # Check that optimization method is recognized. METHODS = ("als", "sklearn") if method not in METHODS: raise_no_method(self, method, METHODS) else: self.method = method # Check that initialization method is recognized. INITS = ("rand_orth", ) if init not in INITS: raise_no_init(self, init, INITS) else: self.init = init
def __init__( self, n_components, method="em", init="rand", n_restarts=1, seed=None, tol=1e-5, maxiter=100): # Model options. self.n_components = n_components # Optimization parameters. self.maxiter = maxiter self.seed = seed self.tol = tol self.n_restarts = n_restarts # Model parameters. self._factors = None # Check that optimization method is recognized. METHODS = ("em",) if method not in METHODS: raise_no_method(self, method, METHODS) else: self.method = method # Check that initialization method is recognized. INITS = ("rand",) if init not in INITS: raise_no_init(self, init, INITS) else: self.init = init
def __init__(self, n_components, method="lloyds", init="rand", n_restarts=1, seed=None, maxiter=100, verbose=False): # Model options. self.n_components = n_components self.verbose = verbose # Optimization parameters. self.maxiter = maxiter self.n_restarts = n_restarts self.seed = seed # Model parameters. self._factors = None # Check that optimization method is recognized. METHODS = ("lloyds", ) if method not in METHODS: raise_no_method(self, method, METHODS) else: self.method = method # Check that initialization method is recognized. INITS = ("rand", "soft") if init not in INITS: raise_no_init(self, init, INITS) else: self.init = init
def __init__(self, n_components, loss, method="cd", init="randn", tol=1e-5, maxiter=100, seed=None): # Model options. self.n_components = n_components self.loss = loss LOSSES = ("poisson", ) if loss not in LOSSES: raise ValueError("Did not recognize 'loss' option. " "Saw '{}'. Expected one of {}." "".format(loss, LOSSES)) # Determine link and inverse link functions. INVLINKS = { "poisson": np.exp, } LINKS = {"poisson": np.log} self._invlink = INVLINKS[loss] self._link = LINKS[loss] # Optimization parameters. self.tol = tol self.maxiter = maxiter self.seed = seed # Model parameters. self._factors = None # Check that optimization method is recognized. METHODS = ("cd", ) if method not in METHODS: raise_no_method(self, method, METHODS) else: self.method = method # Check that initialization method is recognized. INITS = ("randn", ) if init not in INITS: raise_no_init(self, init, INITS) else: self.init = init
def __init__(self, n_components, method="hals", init="rand", n_restarts=1, tol=1e-5, maxiter=100, seed=None): # Model hyperparameters. self.n_components = n_components if n_components <= 0: raise ValueError("Expected n_components to be an integer >= 1.") # Optimization parameters. self.tol = tol self.maxiter = maxiter self.seed = seed self.n_restarts = n_restarts # Model parameters. self._factors = None # Check that optimization method is recognized. METHODS = ("hals", ) if method not in METHODS: raise_no_method(self, method, METHODS) else: self.method = method # Check that initialization method is recognized. INITS = ("rand", ) if init not in INITS: raise_no_init(self, init, INITS) else: self.init = init
def __init__(self, n_components, method="cd", tol=1e-5, maxiter=100, seed=None): # Model options. self.n_components = n_components # Optimization parameters. self.tol = tol self.maxiter = maxiter self.seed = seed # Model parameters. self._factors = None # Check that optimization method is recognized. METHODS = ("cd", ) if method not in METHODS: raise_no_method(self, method, METHODS) else: self.method = method