Send feedback
Module decomposition (2.17.0)
Stay organized with collections
Save and categorize content based on your preferences.
Version latestkeyboard_arrow_down
Classes
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.
PCA (
n_components : typing . Optional [ typing . Union [ int , float ]] = None ,
* ,
svd_solver : typing . Literal [ "full" , "randomized" , "auto" ] = "auto"
)
Principal component analysis (PCA).
Examples:
>>> import bigframes.pandas as bpd
>>> from bigframes.ml.decomposition import PCA
>>> bpd.options.display.progress_bar = None
>>> X = bpd.DataFrame({"feat0": [-1, -2, -3, 1, 2, 3], "feat1": [-1, -1, -2, 1, 1, 2]})
>>> pca = PCA(n_components=2).fit(X)
>>> pca.predict(X) # doctest:+SKIP
principal_component_1 principal_component_2
0 -0.755243 0.157628
1 -1.05405 -0.141179
2 -1.809292 0.016449
3 0.755243 -0.157628
4 1.05405 0.141179
5 1.809292 -0.016449
<BLANKLINE>
[6 rows x 2 columns]
>>> pca.explained_variance_ratio_ # doctest:+SKIP
principal_component_id explained_variance_ratio
0 1 0.00901
1 0 0.99099
<BLANKLINE>
[2 rows x 2 columns]
Parameters
Name
Description
n_components
int, float or None, default None
Number of components to keep. If n_components is not set, all components are kept, n_components = min(n_samples, n_features). If 0 < n_components < 1, select the number of components such that the amount of variance that needs to be explained is greater than the percentage specified by n_components.
svd_solver
"full", "randomized" or "auto", default "auto"
The solver to use to calculate the principal components. Details: https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-create-pca#pca_solver .
Send feedback
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License , and code samples are licensed under the Apache 2.0 License . For details, see the Google Developers Site Policies . Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-25 UTC.
Need to tell us more?
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[],[],null,["# Module decomposition (2.17.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.17.0 (latest)](/python/docs/reference/bigframes/latest/bigframes.ml.decomposition)\n- [2.16.0](/python/docs/reference/bigframes/2.16.0/bigframes.ml.decomposition)\n- [2.15.0](/python/docs/reference/bigframes/2.15.0/bigframes.ml.decomposition)\n- [2.14.0](/python/docs/reference/bigframes/2.14.0/bigframes.ml.decomposition)\n- [2.13.0](/python/docs/reference/bigframes/2.13.0/bigframes.ml.decomposition)\n- [2.12.0](/python/docs/reference/bigframes/2.12.0/bigframes.ml.decomposition)\n- [2.11.0](/python/docs/reference/bigframes/2.11.0/bigframes.ml.decomposition)\n- [2.10.0](/python/docs/reference/bigframes/2.10.0/bigframes.ml.decomposition)\n- [2.9.0](/python/docs/reference/bigframes/2.9.0/bigframes.ml.decomposition)\n- [2.8.0](/python/docs/reference/bigframes/2.8.0/bigframes.ml.decomposition)\n- [2.7.0](/python/docs/reference/bigframes/2.7.0/bigframes.ml.decomposition)\n- [2.6.0](/python/docs/reference/bigframes/2.6.0/bigframes.ml.decomposition)\n- [2.5.0](/python/docs/reference/bigframes/2.5.0/bigframes.ml.decomposition)\n- [2.4.0](/python/docs/reference/bigframes/2.4.0/bigframes.ml.decomposition)\n- [2.3.0](/python/docs/reference/bigframes/2.3.0/bigframes.ml.decomposition)\n- [2.2.0](/python/docs/reference/bigframes/2.2.0/bigframes.ml.decomposition)\n- [2.1.0](/python/docs/reference/bigframes/2.1.0/bigframes.ml.decomposition)\n- [2.0.0](/python/docs/reference/bigframes/2.0.0/bigframes.ml.decomposition)\n- [1.42.0](/python/docs/reference/bigframes/1.42.0/bigframes.ml.decomposition)\n- [1.41.0](/python/docs/reference/bigframes/1.41.0/bigframes.ml.decomposition)\n- [1.40.0](/python/docs/reference/bigframes/1.40.0/bigframes.ml.decomposition)\n- [1.39.0](/python/docs/reference/bigframes/1.39.0/bigframes.ml.decomposition)\n- [1.38.0](/python/docs/reference/bigframes/1.38.0/bigframes.ml.decomposition)\n- [1.37.0](/python/docs/reference/bigframes/1.37.0/bigframes.ml.decomposition)\n- [1.36.0](/python/docs/reference/bigframes/1.36.0/bigframes.ml.decomposition)\n- [1.35.0](/python/docs/reference/bigframes/1.35.0/bigframes.ml.decomposition)\n- [1.34.0](/python/docs/reference/bigframes/1.34.0/bigframes.ml.decomposition)\n- [1.33.0](/python/docs/reference/bigframes/1.33.0/bigframes.ml.decomposition)\n- [1.32.0](/python/docs/reference/bigframes/1.32.0/bigframes.ml.decomposition)\n- [1.31.0](/python/docs/reference/bigframes/1.31.0/bigframes.ml.decomposition)\n- [1.30.0](/python/docs/reference/bigframes/1.30.0/bigframes.ml.decomposition)\n- [1.29.0](/python/docs/reference/bigframes/1.29.0/bigframes.ml.decomposition)\n- [1.28.0](/python/docs/reference/bigframes/1.28.0/bigframes.ml.decomposition)\n- [1.27.0](/python/docs/reference/bigframes/1.27.0/bigframes.ml.decomposition)\n- [1.26.0](/python/docs/reference/bigframes/1.26.0/bigframes.ml.decomposition)\n- [1.25.0](/python/docs/reference/bigframes/1.25.0/bigframes.ml.decomposition)\n- [1.24.0](/python/docs/reference/bigframes/1.24.0/bigframes.ml.decomposition)\n- [1.22.0](/python/docs/reference/bigframes/1.22.0/bigframes.ml.decomposition)\n- [1.21.0](/python/docs/reference/bigframes/1.21.0/bigframes.ml.decomposition)\n- [1.20.0](/python/docs/reference/bigframes/1.20.0/bigframes.ml.decomposition)\n- [1.19.0](/python/docs/reference/bigframes/1.19.0/bigframes.ml.decomposition)\n- [1.18.0](/python/docs/reference/bigframes/1.18.0/bigframes.ml.decomposition)\n- [1.17.0](/python/docs/reference/bigframes/1.17.0/bigframes.ml.decomposition)\n- [1.16.0](/python/docs/reference/bigframes/1.16.0/bigframes.ml.decomposition)\n- [1.15.0](/python/docs/reference/bigframes/1.15.0/bigframes.ml.decomposition)\n- [1.14.0](/python/docs/reference/bigframes/1.14.0/bigframes.ml.decomposition)\n- [1.13.0](/python/docs/reference/bigframes/1.13.0/bigframes.ml.decomposition)\n- [1.12.0](/python/docs/reference/bigframes/1.12.0/bigframes.ml.decomposition)\n- [1.11.1](/python/docs/reference/bigframes/1.11.1/bigframes.ml.decomposition)\n- [1.10.0](/python/docs/reference/bigframes/1.10.0/bigframes.ml.decomposition)\n- [1.9.0](/python/docs/reference/bigframes/1.9.0/bigframes.ml.decomposition)\n- [1.8.0](/python/docs/reference/bigframes/1.8.0/bigframes.ml.decomposition)\n- [1.7.0](/python/docs/reference/bigframes/1.7.0/bigframes.ml.decomposition)\n- [1.6.0](/python/docs/reference/bigframes/1.6.0/bigframes.ml.decomposition)\n- [1.5.0](/python/docs/reference/bigframes/1.5.0/bigframes.ml.decomposition)\n- [1.4.0](/python/docs/reference/bigframes/1.4.0/bigframes.ml.decomposition)\n- [1.3.0](/python/docs/reference/bigframes/1.3.0/bigframes.ml.decomposition)\n- [1.2.0](/python/docs/reference/bigframes/1.2.0/bigframes.ml.decomposition)\n- [1.1.0](/python/docs/reference/bigframes/1.1.0/bigframes.ml.decomposition)\n- [1.0.0](/python/docs/reference/bigframes/1.0.0/bigframes.ml.decomposition)\n- [0.26.0](/python/docs/reference/bigframes/0.26.0/bigframes.ml.decomposition)\n- [0.25.0](/python/docs/reference/bigframes/0.25.0/bigframes.ml.decomposition)\n- [0.24.0](/python/docs/reference/bigframes/0.24.0/bigframes.ml.decomposition)\n- [0.23.0](/python/docs/reference/bigframes/0.23.0/bigframes.ml.decomposition)\n- [0.22.0](/python/docs/reference/bigframes/0.22.0/bigframes.ml.decomposition)\n- [0.21.0](/python/docs/reference/bigframes/0.21.0/bigframes.ml.decomposition)\n- [0.20.1](/python/docs/reference/bigframes/0.20.1/bigframes.ml.decomposition)\n- [0.19.2](/python/docs/reference/bigframes/0.19.2/bigframes.ml.decomposition)\n- [0.18.0](/python/docs/reference/bigframes/0.18.0/bigframes.ml.decomposition)\n- [0.17.0](/python/docs/reference/bigframes/0.17.0/bigframes.ml.decomposition)\n- [0.16.0](/python/docs/reference/bigframes/0.16.0/bigframes.ml.decomposition)\n- [0.15.0](/python/docs/reference/bigframes/0.15.0/bigframes.ml.decomposition)\n- [0.14.1](/python/docs/reference/bigframes/0.14.1/bigframes.ml.decomposition)\n- [0.13.0](/python/docs/reference/bigframes/0.13.0/bigframes.ml.decomposition)\n- [0.12.0](/python/docs/reference/bigframes/0.12.0/bigframes.ml.decomposition)\n- [0.11.0](/python/docs/reference/bigframes/0.11.0/bigframes.ml.decomposition)\n- [0.10.0](/python/docs/reference/bigframes/0.10.0/bigframes.ml.decomposition)\n- [0.9.0](/python/docs/reference/bigframes/0.9.0/bigframes.ml.decomposition)\n- [0.8.0](/python/docs/reference/bigframes/0.8.0/bigframes.ml.decomposition)\n- [0.7.0](/python/docs/reference/bigframes/0.7.0/bigframes.ml.decomposition)\n- [0.6.0](/python/docs/reference/bigframes/0.6.0/bigframes.ml.decomposition)\n- [0.5.0](/python/docs/reference/bigframes/0.5.0/bigframes.ml.decomposition)\n- [0.4.0](/python/docs/reference/bigframes/0.4.0/bigframes.ml.decomposition)\n- [0.3.0](/python/docs/reference/bigframes/0.3.0/bigframes.ml.decomposition)\n- [0.2.0](/python/docs/reference/bigframes/0.2.0/bigframes.ml.decomposition) \nMatrix Decomposition models. This module is styled after Scikit-Learn's decomposition module:\n\u003chttps://scikit-learn.org/stable/modules/decomposition.html\u003e.\n\nClasses\n-------\n\n### [MatrixFactorization](/python/docs/reference/bigframes/latest/bigframes.ml.decomposition.MatrixFactorization)\n\n MatrixFactorization(\n *,\n feedback_type: typing.Literal[\"explicit\", \"implicit\"] = \"explicit\",\n num_factors: int,\n user_col: str,\n item_col: str,\n rating_col: str = \"rating\",\n l2_reg: float = 1.0\n )\n\nMatrix Factorization (MF).\n\n**Examples:** \n\n \u003e\u003e\u003e import bigframes.pandas as bpd\n \u003e\u003e\u003e from bigframes.ml.decomposition import MatrixFactorization\n \u003e\u003e\u003e bpd.options.display.progress_bar = None\n \u003e\u003e\u003e X = bpd.DataFrame({\n ... \"row\": [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6],\n ... \"column\": [0,1] * 7,\n ... \"value\": [1, 1, 2, 1, 3, 1.2, 4, 1, 5, 0.8, 6, 1, 2, 3],\n ... })\n \u003e\u003e\u003e model = MatrixFactorization(feedback_type='explicit', num_factors=6, user_col='row', item_col='column', rating_col='value', l2_reg=2.06)\n \u003e\u003e\u003e W = model.fit(X)\n\n### [PCA](/python/docs/reference/bigframes/latest/bigframes.ml.decomposition.PCA)\n\n PCA(\n n_components: typing.Optional[typing.Union[int, float]] = None,\n *,\n svd_solver: typing.Literal[\"full\", \"randomized\", \"auto\"] = \"auto\"\n )\n\nPrincipal component analysis (PCA).\n\n**Examples:** \n\n \u003e\u003e\u003e import bigframes.pandas as bpd\n \u003e\u003e\u003e from bigframes.ml.decomposition import PCA\n \u003e\u003e\u003e bpd.options.display.progress_bar = None\n \u003e\u003e\u003e X = bpd.DataFrame({\"feat0\": [-1, -2, -3, 1, 2, 3], \"feat1\": [-1, -1, -2, 1, 1, 2]})\n \u003e\u003e\u003e pca = PCA(n_components=2).fit(X)\n \u003e\u003e\u003e pca.predict(X) # doctest:+SKIP\n principal_component_1 principal_component_2\n 0 -0.755243 0.157628\n 1 -1.05405 -0.141179\n 2 -1.809292 0.016449\n 3 0.755243 -0.157628\n 4 1.05405 0.141179\n 5 1.809292 -0.016449\n \u003cBLANKLINE\u003e\n [6 rows x 2 columns]\n \u003e\u003e\u003e pca.explained_variance_ratio_ # doctest:+SKIP\n principal_component_id explained_variance_ratio\n 0 1 0.00901\n 1 0 0.99099\n \u003cBLANKLINE\u003e\n [2 rows x 2 columns]"]]