myfm.VariationalFMRegressor¶
- class myfm.VariationalFMRegressor(rank: int, init_stdev: float = 0.1, random_seed: int = 42, alpha_0: float = 1.0, beta_0: float = 1.0, gamma_0: float = 1.0, mu_0: float = 0.0, reg_0: float = 1.0, fit_w0: bool = True, fit_linear: bool = True)[source]¶
Bases:
myfm.base.RegressorMixin
[myfm._myfm.VariationalFM
,myfm._myfm.VariationalFMHyperParameters
],myfm.variational.MyFMVariationalBase
Variational Inference for Regression Task.
- __init__(rank: int, init_stdev: float = 0.1, random_seed: int = 42, alpha_0: float = 1.0, beta_0: float = 1.0, gamma_0: float = 1.0, mu_0: float = 0.0, reg_0: float = 1.0, fit_w0: bool = True, fit_linear: bool = True)¶
Setup the configuration.
- Parameters
rank (int) – The number of factors.
init_stdev (float, optional (defalult = 0.1)) – The standard deviation for initialization. The factorization machine weights are randomely sampled from Normal(0, init_stdev ** 2).
random_seed (integer, optional (default = 0.1)) – The random seed used inside the whole learning process.
alpha_0 (float, optional (default = 1.0)) – The half of alpha parameter for the gamma-distribution prior for alpha, lambda_w and lambda_V. Together with beta_0, the priors for these parameters are alpha, lambda_w, lambda_v ~ Gamma(alpha_0 / 2, beta_0 / 2)
beta_0 (float, optional (default = 1.0)) – See the explanation for alpha_0 .
gamma_0 (float, optional (default = 1.0)) – Inverse variance of the prior for mu_w, mu_v. Together with mu_0, the priors for these parameters are mu_w, mu_v ~ Normal(mu_0, 1 / gamma_0)
mu_0 (float, optional (default = 0.0)) – See the explanation for gamma_0.
reg_0 (float, optional (default = 0.0)) – Inverse variance of the prior for w0. w0 ~ Normal(0, 1 / reg_0)
fit_w0 (bool, optional (default = True)) – whether to fit w0, by default True.
fit_linear (bool, optional (default = True)) – whether to fit linear coefficients, by default True.
Methods
__init__
(rank[, init_stdev, random_seed, ...])Setup the configuration.
fit
(X, y[, X_rel, X_test, y_test, ...])Performs batch variational inference fit the data.
predict
(X[, X_rel])Make a prediction based on variational mean.
Attributes
Mean of variational posterior distribution of factorized quadratic coefficnent V.
Variance of variational posterior distribution of factorized quadratic coefficnent V.
Mean of variational posterior distribution of global bias w0.
Variance of variational posterior distribution of global bias w0.
Mean of variational posterior distribution of linear coefficnent w.
Variance of variational posterior distribution of linear coefficnent w.
- property V_mean: Optional[numpy.ndarray]¶
Mean of variational posterior distribution of factorized quadratic coefficnent V. If the model is not fit yet, returns None.
- Returns:
Mean of variational posterior distribution of factorized quadratic coefficient V.
- property V_var: Optional[numpy.ndarray]¶
Variance of variational posterior distribution of factorized quadratic coefficnent V. If the model is not fit yet, returns None.
- Returns:
Variance of variational posterior distribution of factorized quadratic coefficient V.
- fit(X: Union[numpy.ndarray, scipy.sparse.csr.csr_matrix], y: numpy.ndarray, X_rel: List[myfm._myfm.RelationBlock] = [], X_test: Optional[Union[numpy.ndarray, scipy.sparse.csr.csr_matrix]] = None, y_test: Optional[numpy.ndarray] = None, X_rel_test: List[myfm._myfm.RelationBlock] = [], n_iter: int = 100, grouping: Optional[List[int]] = None, group_shapes: Optional[List[int]] = None, callback: Optional[Callable[[int, myfm._myfm.VariationalFM, myfm._myfm.VariationalFMHyperParameters, myfm._myfm.VariationalLearningHistory], Tuple[bool, Optional[str]]]] = None, config_builder: Optional[myfm._myfm.ConfigBuilder] = None) myfm.variational.VariationalFMRegressor [source]¶
Performs batch variational inference fit the data.
- Parameters
X (2D array-like.) – Input variable.
y (1D array-like.) – Target variable.
X_rel (list of RelationBlock, optional (default=[])) – Relation blocks which supplements X.
n_iter (int, optional (default = 100)) – Iterations to perform.
grouping (Integer List, optional (default = None)) – If not None, this specifies which column of X belongs to which group. That is, if grouping[i] is g, then, \(w_i\) and \(V_{i, r}\) will be distributed according to \(\mathcal{N}(\mu_w[g], \lambda_w[g])\) and \(\mathcal{N}(\mu_V[g, r], \lambda_V[g,r])\), respectively. If None, all the columns of X are assumed to belong to a single group, 0.
group_shapes (Integer array, optional (default = None)) – If not None, this specifies each variable group’s size. Ignored if grouping is not None. For example, if
group_shapes = [n_1, n_2]
, this is equivalent togrouping = [0] * n_1 + [1] * n_2
callback (function(int, fm, hyper, history) -> bool, optional(default = None)) – Called at the every end of each Gibbs iteration.
- predict(X: Optional[Union[numpy.ndarray, scipy.sparse.csr.csr_matrix]], X_rel: List[myfm._myfm.RelationBlock] = []) numpy.ndarray [source]¶
Make a prediction based on variational mean.
- Parameters
X (Optional[ArrayLike]) – Main Table. When None, treated as a matrix without columns.
X_rel (List[RelationBlock], optional) – Relations, by default []
- Returns
[description]
- Return type
np.ndarray
- property w0_mean: Optional[float]¶
Mean of variational posterior distribution of global bias w0. If the model is not fit yet, returns None.
- Returns:
Mean of variational posterior distribution of global bias w0.
- property w0_var: Optional[float]¶
Variance of variational posterior distribution of global bias w0. If the model is not fit yet, returns None.
- Returns:
Variance of variational posterior distribution of global bias w0.
- property w_mean: Optional[numpy.ndarray]¶
Mean of variational posterior distribution of linear coefficnent w. If the model is not fit yet, returns None.
- Returns:
Mean of variational posterior distribution of linear coefficnent w.
- property w_var: Optional[numpy.ndarray]¶
Variance of variational posterior distribution of linear coefficnent w. If the model is not fit yet, returns None.
- Returns:
Variance of variational posterior distribution of linear coefficnent w.