Class MatrixFactorization (2.0.0)

MatrixFactorization(
    *,
    feedback_type: typing.Literal["explicit", "implicit"] = "explicit",
    num_factors: int,
    user_col: str,
    item_col: str,
    rating_col: str = "rating",
    l2_reg: float = 1.0
)

Matrix Factorization (MF).

Examples:

>>> import bigframes.pandas as bpd
>>> from bigframes.ml.decomposition import MatrixFactorization
>>> bpd.options.display.progress_bar = None
>>> X = bpd.DataFrame({
... "row": [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6],
... "column": [0,1] * 7,
... "value": [1, 1, 2, 1, 3, 1.2, 4, 1, 5, 0.8, 6, 1, 2, 3],
... })
>>> model = MatrixFactorization(feedback_type='explicit', num_factors=6, user_col='row', item_col='column', rating_col='value', l2_reg=2.06)
>>> W = model.fit(X)

Parameters

Name Description
feedback_type 'explicit' 'implicit'

Specifies the feedback type for the model. The feedback type determines the algorithm that is used during training.

num_factors int or auto, default auto

Specifies the number of latent factors to use.

user_col str

The user column name.

item_col str

The item column name.

l2_reg float, default 1.0

A floating point value for L2 regularization. The default value is 1.0.

Properties

rating_col

str: The rating column name. Defaults to 'rating'.

Methods

__repr__

__repr__()

Print the estimator's constructor with all non-default parameter values.

fit

fit(
    X: typing.Union[
        bigframes.dataframe.DataFrame,
        bigframes.series.Series,
        pandas.core.frame.DataFrame,
        pandas.core.series.Series,
    ],
    y: typing.Optional[
        typing.Union[
            bigframes.dataframe.DataFrame,
            bigframes.series.Series,
            pandas.core.frame.DataFrame,
            pandas.core.series.Series,
        ]
    ] = None,
) -> bigframes.ml.base._T

Fit the model according to the given training data.

Parameters
Name Description
X bigframes.dataframe.DataFrame or bigframes.series.Series or pandas.core.frame.DataFrame or pandas.core.series.Series

Series or DataFrame of shape (n_samples, n_features). Training vector, where n_samples is the number of samples and n_features is the number of features.

y default None

Ignored.

Returns
Type Description
bigframes.ml.decomposition.MatrixFactorization Fitted estimator.

get_params

get_params(deep: bool = True) -> typing.Dict[str, typing.Any]

Get parameters for this estimator.

Parameter
Name Description
deep bool, default True

Default True. If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns
Type Description
Dictionary A dictionary of parameter names mapped to their values.

predict

predict(
    X: typing.Union[
        bigframes.dataframe.DataFrame,
        bigframes.series.Series,
        pandas.core.frame.DataFrame,
        pandas.core.series.Series,
    ],
) -> bigframes.dataframe.DataFrame

Generate a predicted rating for every user-item row combination for a matrix factorization model.

Parameter
Name Description
X bigframes.dataframe.DataFrame or bigframes.series.Series or pandas.core.frame.DataFrame or pandas.core.series.Series

Series or a DataFrame to predict.

Returns
Type Description
bigframes.dataframe.DataFrame Predicted DataFrames.

register

register(vertex_ai_model_id: typing.Optional[str] = None) -> bigframes.ml.base._T

Register the model to Vertex AI.

After register, go to the Google Cloud console (https://console.cloud.google.com/vertex-ai/models) to manage the model registries. Refer to https://cloud.google.com/vertex-ai/docs/model-registry/introduction for more options.

Parameter
Name Description
vertex_ai_model_id Optional[str], default None

Optional string id as model id in Vertex. If not set, will default to 'bigframes_{bq_model_id}'. Vertex Ai model id will be truncated to 63 characters due to its limitation.

score

score(X=None, y=None) -> bigframes.dataframe.DataFrame

Calculate evaluation metrics of the model.

Parameters
Name Description
X default None

Ignored.

y default None

Ignored.

Returns
Type Description
bigframes.dataframe.DataFrame DataFrame that represents model metrics.

to_gbq

to_gbq(
    model_name: str, replace: bool = False
) -> bigframes.ml.decomposition.MatrixFactorization

Save the model to BigQuery.

Parameters
Name Description
model_name str

The name of the model.

replace bool, default False

Determine whether to replace if the model already exists. Default to False.

Returns
Type Description
MatrixFactorization Saved model.