PLSRegression#
- classsklearn.cross_decomposition.PLSRegression(n_components=2,*,scale=True,max_iter=500,tol=1e-06,copy=True)[source]#
PLS regression.
PLSRegression is also known as PLS2 or PLS1, depending on the number oftargets.
For a comparison between other cross decomposition algorithms, seeCompare cross decomposition methods.
Read more in theUser Guide.
Added in version 0.8.
- Parameters:
- n_componentsint, default=2
Number of components to keep. Should be in
[1,n_features].- scalebool, default=True
Whether to scale
Xandy.- max_iterint, default=500
The maximum number of iterations of the power method when
algorithm='nipals'. Ignored otherwise.- tolfloat, default=1e-06
The tolerance used as convergence criteria in the power method: thealgorithm stops whenever the squared norm of
u_i-u_{i-1}is lessthantol, whereucorresponds to the left singular vector.- copybool, default=True
Whether to copy
Xandyinfit before applying centering,and potentially scaling. IfFalse, these operations will be doneinplace, modifying both arrays.
- Attributes:
- x_weights_ndarray of shape (n_features, n_components)
The left singular vectors of the cross-covariance matrices of eachiteration.
- y_weights_ndarray of shape (n_targets, n_components)
The right singular vectors of the cross-covariance matrices of eachiteration.
- x_loadings_ndarray of shape (n_features, n_components)
The loadings of
X.- y_loadings_ndarray of shape (n_targets, n_components)
The loadings of
y.- x_scores_ndarray of shape (n_samples, n_components)
The transformed training samples.
- y_scores_ndarray of shape (n_samples, n_components)
The transformed training targets.
- x_rotations_ndarray of shape (n_features, n_components)
The projection matrix used to transform
X.- y_rotations_ndarray of shape (n_targets, n_components)
The projection matrix used to transform
y.- coef_ndarray of shape (n_target, n_features)
The coefficients of the linear model such that
yis approximated asy=X@coef_.T+intercept_.- intercept_ndarray of shape (n_targets,)
The intercepts of the linear model such that
yis approximated asy=X@coef_.T+intercept_.Added in version 1.1.
- n_iter_list of shape (n_components,)
Number of iterations of the power method, for eachcomponent.
- n_features_in_int
Number of features seen duringfit.
- feature_names_in_ndarray of shape (
n_features_in_,) Names of features seen duringfit. Defined only when
Xhas feature names that are all strings.Added in version 1.0.
See also
PLSCanonicalPartial Least Squares transformer and regressor.
Examples
>>>fromsklearn.cross_decompositionimportPLSRegression>>>X=[[0.,0.,1.],[1.,0.,0.],[2.,2.,2.],[2.,5.,4.]]>>>y=[[0.1,-0.2],[0.9,1.1],[6.2,5.9],[11.9,12.3]]>>>pls2=PLSRegression(n_components=2)>>>pls2.fit(X,y)PLSRegression()>>>y_pred=pls2.predict(X)
For a comparison between PLS Regression and
PCA, seePrincipal Component Regression vs Partial Least Squares Regression.- fit(X,y)[source]#
Fit model to data.
- Parameters:
- Xarray-like of shape (n_samples, n_features)
Training vectors, where
n_samplesis the number of samples andn_featuresis the number of predictors.- yarray-like of shape (n_samples,) or (n_samples, n_targets)
Target vectors, where
n_samplesis the number of samples andn_targetsis the number of response variables.
- Returns:
- selfobject
Fitted model.
- fit_transform(X,y=None)[source]#
Learn and apply the dimension reduction on the train data.
- Parameters:
- Xarray-like of shape (n_samples, n_features)
Training vectors, where
n_samplesis the number of samples andn_featuresis the number of predictors.- yarray-like of shape (n_samples, n_targets), default=None
Target vectors, where
n_samplesis the number of samples andn_targetsis the number of response variables.
- Returns:
- selfndarray of shape (n_samples, n_components)
Return
x_scoresifyis not given,(x_scores,y_scores)otherwise.
- get_feature_names_out(input_features=None)[source]#
Get output feature names for transformation.
The feature names out will prefixed by the lowercased class name. Forexample, if the transformer outputs 3 features, then the feature namesout are:
["class_name0","class_name1","class_name2"].- Parameters:
- input_featuresarray-like of str or None, default=None
Only used to validate feature names with the names seen in
fit.
- Returns:
- feature_names_outndarray of str objects
Transformed feature names.
- get_metadata_routing()[source]#
Get metadata routing of this object.
Please checkUser Guide on how the routingmechanism works.
- Returns:
- routingMetadataRequest
A
MetadataRequestencapsulatingrouting information.
- get_params(deep=True)[source]#
Get parameters for this estimator.
- Parameters:
- deepbool, default=True
If True, will return the parameters for this estimator andcontained subobjects that are estimators.
- Returns:
- paramsdict
Parameter names mapped to their values.
- inverse_transform(X,y=None)[source]#
Transform data back to its original space.
- Parameters:
- Xarray-like of shape (n_samples, n_components)
New data, where
n_samplesis the number of samplesandn_componentsis the number of pls components.- yarray-like of shape (n_samples,) or (n_samples, n_components)
New target, where
n_samplesis the number of samplesandn_componentsis the number of pls components.
- Returns:
- X_originalndarray of shape (n_samples, n_features)
Return the reconstructed
Xdata.- y_originalndarray of shape (n_samples, n_targets)
Return the reconstructed
Xtarget. Only returned whenyis given.
Notes
This transformation will only be exact if
n_components=n_features.
- predict(X,copy=True)[source]#
Predict targets of given samples.
- Parameters:
- Xarray-like of shape (n_samples, n_features)
Samples.
- copybool, default=True
Whether to copy
Xor perform in-place normalization.
- Returns:
- y_predndarray of shape (n_samples,) or (n_samples, n_targets)
Returns predicted values.
Notes
This call requires the estimation of a matrix of shape
(n_features,n_targets), which may be an issue in high dimensionalspace.
- score(X,y,sample_weight=None)[source]#
Returncoefficient of determination on test data.
The coefficient of determination,\(R^2\), is defined as\((1 - \frac{u}{v})\), where\(u\) is the residualsum of squares
((y_true-y_pred)**2).sum()and\(v\)is the total sum of squares((y_true-y_true.mean())**2).sum().The best possible score is 1.0 and it can be negative (because themodel can be arbitrarily worse). A constant model that always predictsthe expected value ofy, disregarding the input features, would geta\(R^2\) score of 0.0.- Parameters:
- Xarray-like of shape (n_samples, n_features)
Test samples. For some estimators this may be a precomputedkernel matrix or a list of generic objects instead with shape
(n_samples,n_samples_fitted), wheren_samples_fittedis the number of samples used in the fitting for the estimator.- yarray-like of shape (n_samples,) or (n_samples, n_outputs)
True values for
X.- sample_weightarray-like of shape (n_samples,), default=None
Sample weights.
- Returns:
- scorefloat
\(R^2\) of
self.predict(X)w.r.t.y.
Notes
The\(R^2\) score used when calling
scoreon a regressor usesmultioutput='uniform_average'from version 0.23 to keep consistentwith default value ofr2_score.This influences thescoremethod of all the multioutputregressors (except forMultiOutputRegressor).
- set_output(*,transform=None)[source]#
Set output container.
SeeIntroducing the set_output APIfor an example on how to use the API.
- Parameters:
- transform{“default”, “pandas”, “polars”}, default=None
Configure output of
transformandfit_transform."default": Default output format of a transformer"pandas": DataFrame output"polars": Polars outputNone: Transform configuration is unchanged
Added in version 1.4:
"polars"option was added.
- Returns:
- selfestimator instance
Estimator instance.
- set_params(**params)[source]#
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects(such as
Pipeline). The latter haveparameters of the form<component>__<parameter>so that it’spossible to update each component of a nested object.- Parameters:
- **paramsdict
Estimator parameters.
- Returns:
- selfestimator instance
Estimator instance.
- set_predict_request(*,copy:bool|None|str='$UNCHANGED$')→PLSRegression[source]#
Configure whether metadata should be requested to be passed to the
predictmethod.Note that this method is only relevant when this estimator is used as asub-estimator within ameta-estimator and metadata routing is enabledwith
enable_metadata_routing=True(seesklearn.set_config).Please check theUser Guide on how the routingmechanism works.The options for each parameter are:
True: metadata is requested, and passed topredictif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it topredict.None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED) retains theexisting request. This allows you to change the request for someparameters and not others.Added in version 1.3.
- Parameters:
- copystr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
copyparameter inpredict.
- Returns:
- selfobject
The updated object.
- set_score_request(*,sample_weight:bool|None|str='$UNCHANGED$')→PLSRegression[source]#
Configure whether metadata should be requested to be passed to the
scoremethod.Note that this method is only relevant when this estimator is used as asub-estimator within ameta-estimator and metadata routing is enabledwith
enable_metadata_routing=True(seesklearn.set_config).Please check theUser Guide on how the routingmechanism works.The options for each parameter are:
True: metadata is requested, and passed toscoreif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it toscore.None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED) retains theexisting request. This allows you to change the request for someparameters and not others.Added in version 1.3.
- Parameters:
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
sample_weightparameter inscore.
- Returns:
- selfobject
The updated object.
- set_transform_request(*,copy:bool|None|str='$UNCHANGED$')→PLSRegression[source]#
Configure whether metadata should be requested to be passed to the
transformmethod.Note that this method is only relevant when this estimator is used as asub-estimator within ameta-estimator and metadata routing is enabledwith
enable_metadata_routing=True(seesklearn.set_config).Please check theUser Guide on how the routingmechanism works.The options for each parameter are:
True: metadata is requested, and passed totransformif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it totransform.None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED) retains theexisting request. This allows you to change the request for someparameters and not others.Added in version 1.3.
- Parameters:
- copystr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
copyparameter intransform.
- Returns:
- selfobject
The updated object.
- transform(X,y=None,copy=True)[source]#
Apply the dimension reduction.
- Parameters:
- Xarray-like of shape (n_samples, n_features)
Samples to transform.
- yarray-like of shape (n_samples, n_targets), default=None
Target vectors.
- copybool, default=True
Whether to copy
Xandy, or perform in-place normalization.
- Returns:
- x_scores, y_scoresarray-like or tuple of array-like
Return
x_scoresifyis not given,(x_scores,y_scores)otherwise.
Gallery examples#
Principal Component Regression vs Partial Least Squares Regression
