Class MatrixFactorization (2.6.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

NameDescription
feedback_type'explicit' 'implicit'

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

num_factorsint or auto, default auto

Specifies the number of latent factors to use.

user_colstr

The user column name.

item_colstr

The item column name.

l2_regfloat, 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
NameDescription
Xbigframes.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.

ydefault None

Ignored.

Returns
TypeDescription
bigframes.ml.decomposition.MatrixFactorizationFitted estimator.

get_params

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

Get parameters for this estimator.

Parameter
NameDescription
deepbool, default True

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

Returns
TypeDescription
DictionaryA 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
NameDescription
Xbigframes.dataframe.DataFrame or bigframes.series.Series or pandas.core.frame.DataFrame or pandas.core.series.Series

Series or a DataFrame to predict.

Returns
TypeDescription
bigframes.dataframe.DataFramePredicted 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
NameDescription
vertex_ai_model_idOptional[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
NameDescription
Xbigframes.dataframe.DataFrame bigframes.series.Series None

DataFrame of shape (n_samples, n_features). Test samples.

ybigframes.dataframe.DataFrame bigframes.series.Series None

DataFrame of shape (n_samples,) or (n_samples, n_outputs). True labels for X.

Returns
TypeDescription
bigframes.dataframe.DataFrameDataFrame that represents model metrics.

to_gbq

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

Save the model to BigQuery.

Parameters
NameDescription
model_namestr

The name of the model.

replacebool, default False

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

Returns
TypeDescription
MatrixFactorizationSaved model.