Source code for h2o.estimators.glrm

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
#
# This file is auto-generated by h2o-3/h2o-bindings/bin/gen_python.py
# Copyright 2016 H2O.ai;  Apache License Version 2.0 (see LICENSE for details)
#
from .estimator_base import H2OEstimator


[docs]class H2OGeneralizedLowRankEstimator(H2OEstimator): """ Generalized Low Rank Modeling Builds a generalized low rank model of a H2O dataset. Parameters ---------- model_id : str Destination id for this model; auto-generated if not specified. training_frame : str Id of the training data frame (Not required, to allow initial validation of model parameters). validation_frame : str Id of the validation data frame. ignored_columns : list(str) Names of columns to ignore for training. ignore_const_cols : bool Ignore constant columns. Default: True score_each_iteration : bool Whether to score during each iteration of model training. Default: False loading_name : str Frame key to save resulting X transform : "NONE" | "STANDARDIZE" | "NORMALIZE" | "DEMEAN" | "DESCALE" Transformation of training data Default: "NONE" k : int, required Rank of matrix approximation Default: 1 loss : "Quadratic" | "Absolute" | "Huber" | "Poisson" | "Hinge" | "Logistic" | "Periodic" Numeric loss function Default: "Quadratic" loss_by_col : list("Quadratic" | "Absolute" | "Huber" | "Poisson" | "Hinge" | "Logistic" | "Periodic" | "Categorical" | "Ordinal") Loss function by column (override) loss_by_col_idx : list(int) Loss function by column index (override) multi_loss : "Categorical" | "Ordinal" Categorical loss function Default: "Categorical" period : int Length of period (only used with periodic loss function) Default: 1 regularization_x : "None" | "Quadratic" | "L2" | "L1" | "NonNegative" | "OneSparse" | "UnitOneSparse" | "Simplex" Regularization function for X matrix Default: "None" regularization_y : "None" | "Quadratic" | "L2" | "L1" | "NonNegative" | "OneSparse" | "UnitOneSparse" | "Simplex" Regularization function for Y matrix Default: "None" gamma_x : float Regularization weight on X matrix Default: 0.0 gamma_y : float Regularization weight on Y matrix Default: 0.0 max_iterations : int Maximum number of iterations Default: 1000 max_updates : int Maximum number of updates Default: 2000 init_step_size : float Initial step size Default: 1.0 min_step_size : float Minimum step size Default: 0.0001 seed : int RNG seed for initialization Default: -1 init : "Random" | "SVD" | "PlusPlus" | "User" Initialization mode Default: "PlusPlus" svd_method : "GramSVD" | "Power" | "Randomized" Method for computing SVD during initialization (Caution: Power and Randomized are currently experimental and unstable) Default: "Randomized" user_y : str User-specified initial Y user_x : str User-specified initial X expand_user_y : bool Expand categorical columns in user-specified initial Y Default: True impute_original : bool Reconstruct original training data by reversing transform Default: False recover_svd : bool Recover singular values and eigenvectors of XY Default: False max_runtime_secs : float Maximum allowed runtime in seconds for model training. Use 0 to disable. Default: 0.0 """ def __init__(self, **kwargs): super(H2OGeneralizedLowRankEstimator, self).__init__() self._parms = {} for name in ["model_id", "training_frame", "validation_frame", "ignored_columns", "ignore_const_cols", "score_each_iteration", "loading_name", "transform", "k", "loss", "loss_by_col", "loss_by_col_idx", "multi_loss", "period", "regularization_x", "regularization_y", "gamma_x", "gamma_y", "max_iterations", "max_updates", "init_step_size", "min_step_size", "seed", "init", "svd_method", "user_y", "user_x", "expand_user_y", "impute_original", "recover_svd", "max_runtime_secs"]: pname = name[:-1] if name[-1] == '_' else name self._parms[pname] = kwargs[name] if name in kwargs else None self._parms["_rest_version"] = 3 @property def training_frame(self): return self._parms["training_frame"] @training_frame.setter def training_frame(self, value): self._parms["training_frame"] = value @property def validation_frame(self): return self._parms["validation_frame"] @validation_frame.setter def validation_frame(self, value): self._parms["validation_frame"] = value @property def ignored_columns(self): return self._parms["ignored_columns"] @ignored_columns.setter def ignored_columns(self, value): self._parms["ignored_columns"] = value @property def ignore_const_cols(self): return self._parms["ignore_const_cols"] @ignore_const_cols.setter def ignore_const_cols(self, value): self._parms["ignore_const_cols"] = value @property def score_each_iteration(self): return self._parms["score_each_iteration"] @score_each_iteration.setter def score_each_iteration(self, value): self._parms["score_each_iteration"] = value @property def loading_name(self): return self._parms["loading_name"] @loading_name.setter def loading_name(self, value): self._parms["loading_name"] = value @property def transform(self): return self._parms["transform"] @transform.setter def transform(self, value): self._parms["transform"] = value @property def k(self): return self._parms["k"] @k.setter def k(self, value): self._parms["k"] = value @property def loss(self): return self._parms["loss"] @loss.setter def loss(self, value): self._parms["loss"] = value @property def loss_by_col(self): return self._parms["loss_by_col"] @loss_by_col.setter def loss_by_col(self, value): self._parms["loss_by_col"] = value @property def loss_by_col_idx(self): return self._parms["loss_by_col_idx"] @loss_by_col_idx.setter def loss_by_col_idx(self, value): self._parms["loss_by_col_idx"] = value @property def multi_loss(self): return self._parms["multi_loss"] @multi_loss.setter def multi_loss(self, value): self._parms["multi_loss"] = value @property def period(self): return self._parms["period"] @period.setter def period(self, value): self._parms["period"] = value @property def regularization_x(self): return self._parms["regularization_x"] @regularization_x.setter def regularization_x(self, value): self._parms["regularization_x"] = value @property def regularization_y(self): return self._parms["regularization_y"] @regularization_y.setter def regularization_y(self, value): self._parms["regularization_y"] = value @property def gamma_x(self): return self._parms["gamma_x"] @gamma_x.setter def gamma_x(self, value): self._parms["gamma_x"] = value @property def gamma_y(self): return self._parms["gamma_y"] @gamma_y.setter def gamma_y(self, value): self._parms["gamma_y"] = value @property def max_iterations(self): return self._parms["max_iterations"] @max_iterations.setter def max_iterations(self, value): self._parms["max_iterations"] = value @property def max_updates(self): return self._parms["max_updates"] @max_updates.setter def max_updates(self, value): self._parms["max_updates"] = value @property def init_step_size(self): return self._parms["init_step_size"] @init_step_size.setter def init_step_size(self, value): self._parms["init_step_size"] = value @property def min_step_size(self): return self._parms["min_step_size"] @min_step_size.setter def min_step_size(self, value): self._parms["min_step_size"] = value @property def seed(self): return self._parms["seed"] @seed.setter def seed(self, value): self._parms["seed"] = value @property def init(self): return self._parms["init"] @init.setter def init(self, value): self._parms["init"] = value @property def svd_method(self): return self._parms["svd_method"] @svd_method.setter def svd_method(self, value): self._parms["svd_method"] = value @property def user_y(self): return self._parms["user_y"] @user_y.setter def user_y(self, value): self._parms["user_y"] = value @property def user_x(self): return self._parms["user_x"] @user_x.setter def user_x(self, value): self._parms["user_x"] = value @property def expand_user_y(self): return self._parms["expand_user_y"] @expand_user_y.setter def expand_user_y(self, value): self._parms["expand_user_y"] = value @property def impute_original(self): return self._parms["impute_original"] @impute_original.setter def impute_original(self, value): self._parms["impute_original"] = value @property def recover_svd(self): return self._parms["recover_svd"] @recover_svd.setter def recover_svd(self, value): self._parms["recover_svd"] = value @property def max_runtime_secs(self): return self._parms["max_runtime_secs"] @max_runtime_secs.setter def max_runtime_secs(self, value): self._parms["max_runtime_secs"] = value