Cross decomposition
CCA¶
Module Sklearn.Cross_decomposition.CCA
wraps Python class sklearn.cross_decomposition.CCA
.
type t
create¶
constructor and attributes create
val create :
?n_components:int ->
?scale:bool ->
?max_iter:int ->
?tol:float ->
?copy:bool ->
unit ->
t
CCA Canonical Correlation Analysis.
CCA inherits from PLS with mode='B' and deflation_mode='canonical'.
Read more in the :ref:User Guide <cross_decomposition>
.
Parameters
-
n_components : int, (default 2). number of components to keep.
-
scale : boolean, (default True) whether to scale the data?
-
max_iter : an integer, (default 500) the maximum number of iterations of the NIPALS inner loop
-
tol : non-negative real, default 1e-06. the tolerance used in the iterative algorithm
-
copy : boolean Whether the deflation be done on a copy. Let the default value to True unless you don't care about side effects
Attributes
-
x_weights_ : array, [p, n_components] X block weights vectors.
-
y_weights_ : array, [q, n_components] Y block weights vectors.
-
x_loadings_ : array, [p, n_components] X block loadings vectors.
-
y_loadings_ : array, [q, n_components] Y block loadings vectors.
-
x_scores_ : array, [n_samples, n_components] X scores.
-
y_scores_ : array, [n_samples, n_components] Y scores.
-
x_rotations_ : array, [p, n_components] X block to latents rotations.
-
y_rotations_ : array, [q, n_components] Y block to latents rotations.
-
coef_ : array of shape (p, q) The coefficients of the linear model:
Y = X coef_ + Err
-
n_iter_ : array-like Number of iterations of the NIPALS inner loop for each component.
Notes
For each component k, find the weights u, v that maximizes
max corr(Xk u, Yk v), such that |u| = |v| = 1
Note that it maximizes only the correlations between the scores.
The residual matrix of X (Xk+1) block is obtained by the deflation on the current X score: x_score.
The residual matrix of Y (Yk+1) block is obtained by deflation on the current Y score.
Examples
>>> from sklearn.cross_decomposition import CCA
>>> X = [[0., 0., 1.], [1.,0.,0.], [2.,2.,2.], [3.,5.,4.]]
>>> Y = [[0.1, -0.2], [0.9, 1.1], [6.2, 5.9], [11.9, 12.3]]
>>> cca = CCA(n_components=1)
>>> cca.fit(X, Y)
CCA(n_components=1)
>>> X_c, Y_c = cca.transform(X, Y)
References
Jacob A. Wegelin. A survey of Partial Least Squares (PLS) methods, with emphasis on the two-block case. Technical Report 371, Department of Statistics, University of Washington, Seattle, 2000.
In french but still a reference: Tenenhaus, M. (1998). La regression PLS: theorie et pratique. Paris: Editions Technic.
See also
PLSCanonical PLSSVD
fit¶
method fit
val fit :
x:[>`ArrayLike] Np.Obj.t ->
y:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
t
Fit model to data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
Y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
fit_transform¶
method fit_transform
val fit_transform :
?y:[>`ArrayLike] Np.Obj.t ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Learn and apply the dimension reduction on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
Returns
x_scores if Y is not given, (x_scores, y_scores) otherwise.
get_params¶
method get_params
val get_params :
?deep:bool ->
[> tag] Obj.t ->
Dict.t
Get parameters for this estimator.
Parameters
- deep : bool, default=True If True, will return the parameters for this estimator and contained subobjects that are estimators.
Returns
- params : mapping of string to any Parameter names mapped to their values.
inverse_transform¶
method inverse_transform
val inverse_transform :
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Transform data back to its original space.
Parameters
- X : array-like of shape (n_samples, n_components) New data, where n_samples is the number of samples and n_components is the number of pls components.
Returns
- x_reconstructed : array-like of shape (n_samples, n_features)
Notes
This transformation will only be exact if n_components=n_features
predict¶
method predict
val predict :
?copy:bool ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Apply the dimension reduction learned on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
copy : boolean, default True Whether to copy X and Y, or perform in-place normalization.
Notes
This call requires the estimation of a p x q matrix, which may be an issue in high dimensional space.
score¶
method score
val score :
?sample_weight:[>`ArrayLike] Np.Obj.t ->
x:[>`ArrayLike] Np.Obj.t ->
y:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
float
Return the coefficient of determination R^2 of the prediction.
The coefficient R^2 is defined as (1 - u/v), where u is the residual sum 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 the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a R^2 score of 0.0.
Parameters
-
X : array-like of shape (n_samples, n_features) Test samples. For some estimators this may be a precomputed kernel matrix or a list of generic objects instead, shape = (n_samples, n_samples_fitted), where n_samples_fitted is the number of samples used in the fitting for the estimator.
-
y : array-like of shape (n_samples,) or (n_samples, n_outputs) True values for X.
-
sample_weight : array-like of shape (n_samples,), default=None Sample weights.
Returns
- score : float R^2 of self.predict(X) wrt. y.
Notes
The R2 score used when calling score
on a regressor uses
multioutput='uniform_average'
from version 0.23 to keep consistent
with default value of :func:~sklearn.metrics.r2_score
.
This influences the score
method of all the multioutput
regressors (except for
:class:~sklearn.multioutput.MultiOutputRegressor
).
set_params¶
method set_params
val set_params :
?params:(string * Py.Object.t) list ->
[> tag] Obj.t ->
t
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects
(such as pipelines). The latter have parameters of the form
<component>__<parameter>
so that it's possible to update each
component of a nested object.
Parameters
- **params : dict Estimator parameters.
Returns
- self : object Estimator instance.
transform¶
method transform
val transform :
?y:[>`ArrayLike] Np.Obj.t ->
?copy:bool ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Apply the dimension reduction learned on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
Y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
-
copy : boolean, default True Whether to copy X and Y, or perform in-place normalization.
Returns
x_scores if Y is not given, (x_scores, y_scores) otherwise.
x_weights_¶
attribute x_weights_
val x_weights_ : t -> Py.Object.t
val x_weights_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_weights_¶
attribute y_weights_
val y_weights_ : t -> Py.Object.t
val y_weights_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
x_loadings_¶
attribute x_loadings_
val x_loadings_ : t -> Py.Object.t
val x_loadings_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_loadings_¶
attribute y_loadings_
val y_loadings_ : t -> Py.Object.t
val y_loadings_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
x_scores_¶
attribute x_scores_
val x_scores_ : t -> [>`ArrayLike] Np.Obj.t
val x_scores_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_scores_¶
attribute y_scores_
val y_scores_ : t -> [>`ArrayLike] Np.Obj.t
val y_scores_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
x_rotations_¶
attribute x_rotations_
val x_rotations_ : t -> Py.Object.t
val x_rotations_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_rotations_¶
attribute y_rotations_
val y_rotations_ : t -> Py.Object.t
val y_rotations_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
coef_¶
attribute coef_
val coef_ : t -> [>`ArrayLike] Np.Obj.t
val coef_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
n_iter_¶
attribute n_iter_
val n_iter_ : t -> [>`ArrayLike] Np.Obj.t
val n_iter_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
to_string¶
method to_string
val to_string: t -> string
Print the object to a human-readable representation.
show¶
method show
val show: t -> string
Print the object to a human-readable representation.
pp¶
method pp
val pp: Format.formatter -> t -> unit
Pretty-print the object to a formatter.
PLSCanonical¶
Module Sklearn.Cross_decomposition.PLSCanonical
wraps Python class sklearn.cross_decomposition.PLSCanonical
.
type t
create¶
constructor and attributes create
val create :
?n_components:int ->
?scale:bool ->
?algorithm:[`Nipals | `Svd] ->
?max_iter:int ->
?tol:float ->
?copy:bool ->
unit ->
t
PLSCanonical implements the 2 blocks canonical PLS of the original Wold algorithm [Tenenhaus 1998] p.204, referred as PLS-C2A in [Wegelin 2000].
This class inherits from PLS with mode='A' and deflation_mode='canonical', norm_y_weights=True and algorithm='nipals', but svd should provide similar results up to numerical errors.
Read more in the :ref:User Guide <cross_decomposition>
.
.. versionadded:: 0.8
Parameters
-
n_components : int, (default 2). Number of components to keep
-
scale : boolean, (default True) Option to scale data
-
algorithm : string, 'nipals' or 'svd' The algorithm used to estimate the weights. It will be called n_components times, i.e. once for each iteration of the outer loop.
-
max_iter : an integer, (default 500) the maximum number of iterations of the NIPALS inner loop (used only if algorithm='nipals')
-
tol : non-negative real, default 1e-06 the tolerance used in the iterative algorithm
-
copy : boolean, default True Whether the deflation should be done on a copy. Let the default value to True unless you don't care about side effect
Attributes
-
x_weights_ : array, shape = [p, n_components] X block weights vectors.
-
y_weights_ : array, shape = [q, n_components] Y block weights vectors.
-
x_loadings_ : array, shape = [p, n_components] X block loadings vectors.
-
y_loadings_ : array, shape = [q, n_components] Y block loadings vectors.
-
x_scores_ : array, shape = [n_samples, n_components] X scores.
-
y_scores_ : array, shape = [n_samples, n_components] Y scores.
-
x_rotations_ : array, shape = [p, n_components] X block to latents rotations.
-
y_rotations_ : array, shape = [q, n_components] Y block to latents rotations.
-
coef_ : array of shape (p, q) The coefficients of the linear model:
Y = X coef_ + Err
-
n_iter_ : array-like Number of iterations of the NIPALS inner loop for each component. Not useful if the algorithm provided is 'svd'.
Notes
-
Matrices::
-
T: x_scores_
-
U: y_scores_
-
W: x_weights_
-
C: y_weights_
-
P: x_loadings_
-
Q: y_loadings__
Are computed such that::
X = T P.T + Err and Y = U Q.T + Err
-
T[:, k] = Xk W[:, k] for k in range(n_components)
-
U[:, k] = Yk C[:, k] for k in range(n_components) x_rotations_ = W (P.T W)^(-1) y_rotations_ = C (Q.T C)^(-1)
where Xk and Yk are residual matrices at iteration k.
Slides explaining PLS
<http://www.eigenvector.com/Docs/Wise_pls_properties.pdf>
_
For each component k, find weights u, v that optimize::
max corr(Xk u, Yk v) * std(Xk u) std(Yk u), such that ``|u| = |v| = 1``
Note that it maximizes both the correlations between the scores and the intra-block variances.
The residual matrix of X (Xk+1) block is obtained by the deflation on the current X score: x_score.
The residual matrix of Y (Yk+1) block is obtained by deflation on the current Y score. This performs a canonical symmetric version of the PLS regression. But slightly different than the CCA. This is mostly used for modeling.
This implementation provides the same results that the 'plspm' package
provided in the R language (R-project), using the function plsca(X, Y).
Results are equal or collinear with the function
pls(..., mode = 'canonical')
of the 'mixOmics' package. The difference
relies in the fact that mixOmics implementation does not exactly implement
the Wold algorithm since it does not normalize y_weights to one.
Examples
>>> from sklearn.cross_decomposition import PLSCanonical
>>> 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]]
>>> plsca = PLSCanonical(n_components=2)
>>> plsca.fit(X, Y)
PLSCanonical()
>>> X_c, Y_c = plsca.transform(X, Y)
References
Jacob A. Wegelin. A survey of Partial Least Squares (PLS) methods, with emphasis on the two-block case. Technical Report 371, Department of Statistics, University of Washington, Seattle, 2000.
Tenenhaus, M. (1998). La regression PLS: theorie et pratique. Paris: Editions Technic.
See also
CCA PLSSVD
fit¶
method fit
val fit :
x:[>`ArrayLike] Np.Obj.t ->
y:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
t
Fit model to data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
Y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
fit_transform¶
method fit_transform
val fit_transform :
?y:[>`ArrayLike] Np.Obj.t ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Learn and apply the dimension reduction on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
Returns
x_scores if Y is not given, (x_scores, y_scores) otherwise.
get_params¶
method get_params
val get_params :
?deep:bool ->
[> tag] Obj.t ->
Dict.t
Get parameters for this estimator.
Parameters
- deep : bool, default=True If True, will return the parameters for this estimator and contained subobjects that are estimators.
Returns
- params : mapping of string to any Parameter names mapped to their values.
inverse_transform¶
method inverse_transform
val inverse_transform :
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Transform data back to its original space.
Parameters
- X : array-like of shape (n_samples, n_components) New data, where n_samples is the number of samples and n_components is the number of pls components.
Returns
- x_reconstructed : array-like of shape (n_samples, n_features)
Notes
This transformation will only be exact if n_components=n_features
predict¶
method predict
val predict :
?copy:bool ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Apply the dimension reduction learned on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
copy : boolean, default True Whether to copy X and Y, or perform in-place normalization.
Notes
This call requires the estimation of a p x q matrix, which may be an issue in high dimensional space.
score¶
method score
val score :
?sample_weight:[>`ArrayLike] Np.Obj.t ->
x:[>`ArrayLike] Np.Obj.t ->
y:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
float
Return the coefficient of determination R^2 of the prediction.
The coefficient R^2 is defined as (1 - u/v), where u is the residual sum 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 the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a R^2 score of 0.0.
Parameters
-
X : array-like of shape (n_samples, n_features) Test samples. For some estimators this may be a precomputed kernel matrix or a list of generic objects instead, shape = (n_samples, n_samples_fitted), where n_samples_fitted is the number of samples used in the fitting for the estimator.
-
y : array-like of shape (n_samples,) or (n_samples, n_outputs) True values for X.
-
sample_weight : array-like of shape (n_samples,), default=None Sample weights.
Returns
- score : float R^2 of self.predict(X) wrt. y.
Notes
The R2 score used when calling score
on a regressor uses
multioutput='uniform_average'
from version 0.23 to keep consistent
with default value of :func:~sklearn.metrics.r2_score
.
This influences the score
method of all the multioutput
regressors (except for
:class:~sklearn.multioutput.MultiOutputRegressor
).
set_params¶
method set_params
val set_params :
?params:(string * Py.Object.t) list ->
[> tag] Obj.t ->
t
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects
(such as pipelines). The latter have parameters of the form
<component>__<parameter>
so that it's possible to update each
component of a nested object.
Parameters
- **params : dict Estimator parameters.
Returns
- self : object Estimator instance.
transform¶
method transform
val transform :
?y:[>`ArrayLike] Np.Obj.t ->
?copy:bool ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Apply the dimension reduction learned on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
Y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
-
copy : boolean, default True Whether to copy X and Y, or perform in-place normalization.
Returns
x_scores if Y is not given, (x_scores, y_scores) otherwise.
x_weights_¶
attribute x_weights_
val x_weights_ : t -> [>`ArrayLike] Np.Obj.t
val x_weights_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_weights_¶
attribute y_weights_
val y_weights_ : t -> [>`ArrayLike] Np.Obj.t
val y_weights_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
x_loadings_¶
attribute x_loadings_
val x_loadings_ : t -> [>`ArrayLike] Np.Obj.t
val x_loadings_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_loadings_¶
attribute y_loadings_
val y_loadings_ : t -> [>`ArrayLike] Np.Obj.t
val y_loadings_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
x_scores_¶
attribute x_scores_
val x_scores_ : t -> [>`ArrayLike] Np.Obj.t
val x_scores_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_scores_¶
attribute y_scores_
val y_scores_ : t -> [>`ArrayLike] Np.Obj.t
val y_scores_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
x_rotations_¶
attribute x_rotations_
val x_rotations_ : t -> [>`ArrayLike] Np.Obj.t
val x_rotations_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_rotations_¶
attribute y_rotations_
val y_rotations_ : t -> [>`ArrayLike] Np.Obj.t
val y_rotations_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
coef_¶
attribute coef_
val coef_ : t -> [>`ArrayLike] Np.Obj.t
val coef_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
n_iter_¶
attribute n_iter_
val n_iter_ : t -> [>`ArrayLike] Np.Obj.t
val n_iter_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
to_string¶
method to_string
val to_string: t -> string
Print the object to a human-readable representation.
show¶
method show
val show: t -> string
Print the object to a human-readable representation.
pp¶
method pp
val pp: Format.formatter -> t -> unit
Pretty-print the object to a formatter.
PLSRegression¶
Module Sklearn.Cross_decomposition.PLSRegression
wraps Python class sklearn.cross_decomposition.PLSRegression
.
type t
create¶
constructor and attributes create
val create :
?n_components:int ->
?scale:bool ->
?max_iter:int ->
?tol:float ->
?copy:bool ->
unit ->
t
PLS regression
PLSRegression implements the PLS 2 blocks regression known as PLS2 or PLS1 in case of one dimensional response. This class inherits from _PLS with mode='A', deflation_mode='regression', norm_y_weights=False and algorithm='nipals'.
Read more in the :ref:User Guide <cross_decomposition>
.
.. versionadded:: 0.8
Parameters
-
n_components : int, (default 2) Number of components to keep.
-
scale : boolean, (default True) whether to scale the data
-
max_iter : an integer, (default 500) the maximum number of iterations of the NIPALS inner loop (used only if algorithm='nipals')
-
tol : non-negative real Tolerance used in the iterative algorithm default 1e-06.
-
copy : boolean, default True Whether the deflation should be done on a copy. Let the default value to True unless you don't care about side effect
Attributes
-
x_weights_ : array, [p, n_components] X block weights vectors.
-
y_weights_ : array, [q, n_components] Y block weights vectors.
-
x_loadings_ : array, [p, n_components] X block loadings vectors.
-
y_loadings_ : array, [q, n_components] Y block loadings vectors.
-
x_scores_ : array, [n_samples, n_components] X scores.
-
y_scores_ : array, [n_samples, n_components] Y scores.
-
x_rotations_ : array, [p, n_components] X block to latents rotations.
-
y_rotations_ : array, [q, n_components] Y block to latents rotations.
-
coef_ : array, [p, q] The coefficients of the linear model:
Y = X coef_ + Err
-
n_iter_ : array-like Number of iterations of the NIPALS inner loop for each component.
Notes
-
Matrices::
-
T: x_scores_
-
U: y_scores_
-
W: x_weights_
-
C: y_weights_
-
P: x_loadings_
-
Q: y_loadings_
Are computed such that::
X = T P.T + Err and Y = U Q.T + Err
-
T[:, k] = Xk W[:, k] for k in range(n_components)
-
U[:, k] = Yk C[:, k] for k in range(n_components) x_rotations_ = W (P.T W)^(-1) y_rotations_ = C (Q.T C)^(-1)
where Xk and Yk are residual matrices at iteration k.
Slides explaining
PLS <http://www.eigenvector.com/Docs/Wise_pls_properties.pdf>
_
For each component k, find weights u, v that optimizes:
max corr(Xk u, Yk v) * std(Xk u) std(Yk u)
, such that |u| = 1
Note that it maximizes both the correlations between the scores and the intra-block variances.
The residual matrix of X (Xk+1) block is obtained by the deflation on the current X score: x_score.
The residual matrix of Y (Yk+1) block is obtained by deflation on the current X score. This performs the PLS regression known as PLS2. This mode is prediction oriented.
This implementation provides the same results that 3 PLS packages provided in the R language (R-project):
- 'mixOmics' with function pls(X, Y, mode = 'regression')
- 'plspm ' with function plsreg2(X, Y)
- 'pls' with function oscorespls.fit(X, Y)
Examples
>>> from sklearn.cross_decomposition import PLSRegression
>>> 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)
References
Jacob A. Wegelin. A survey of Partial Least Squares (PLS) methods, with emphasis on the two-block case. Technical Report 371, Department of Statistics, University of Washington, Seattle, 2000.
In french but still a reference: Tenenhaus, M. (1998). La regression PLS: theorie et pratique. Paris: Editions Technic.
fit¶
method fit
val fit :
x:[>`ArrayLike] Np.Obj.t ->
y:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
t
Fit model to data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
Y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
fit_transform¶
method fit_transform
val fit_transform :
?y:[>`ArrayLike] Np.Obj.t ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Learn and apply the dimension reduction on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
Returns
x_scores if Y is not given, (x_scores, y_scores) otherwise.
get_params¶
method get_params
val get_params :
?deep:bool ->
[> tag] Obj.t ->
Dict.t
Get parameters for this estimator.
Parameters
- deep : bool, default=True If True, will return the parameters for this estimator and contained subobjects that are estimators.
Returns
- params : mapping of string to any Parameter names mapped to their values.
inverse_transform¶
method inverse_transform
val inverse_transform :
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Transform data back to its original space.
Parameters
- X : array-like of shape (n_samples, n_components) New data, where n_samples is the number of samples and n_components is the number of pls components.
Returns
- x_reconstructed : array-like of shape (n_samples, n_features)
Notes
This transformation will only be exact if n_components=n_features
predict¶
method predict
val predict :
?copy:bool ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Apply the dimension reduction learned on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
copy : boolean, default True Whether to copy X and Y, or perform in-place normalization.
Notes
This call requires the estimation of a p x q matrix, which may be an issue in high dimensional space.
score¶
method score
val score :
?sample_weight:[>`ArrayLike] Np.Obj.t ->
x:[>`ArrayLike] Np.Obj.t ->
y:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
float
Return the coefficient of determination R^2 of the prediction.
The coefficient R^2 is defined as (1 - u/v), where u is the residual sum 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 the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a R^2 score of 0.0.
Parameters
-
X : array-like of shape (n_samples, n_features) Test samples. For some estimators this may be a precomputed kernel matrix or a list of generic objects instead, shape = (n_samples, n_samples_fitted), where n_samples_fitted is the number of samples used in the fitting for the estimator.
-
y : array-like of shape (n_samples,) or (n_samples, n_outputs) True values for X.
-
sample_weight : array-like of shape (n_samples,), default=None Sample weights.
Returns
- score : float R^2 of self.predict(X) wrt. y.
Notes
The R2 score used when calling score
on a regressor uses
multioutput='uniform_average'
from version 0.23 to keep consistent
with default value of :func:~sklearn.metrics.r2_score
.
This influences the score
method of all the multioutput
regressors (except for
:class:~sklearn.multioutput.MultiOutputRegressor
).
set_params¶
method set_params
val set_params :
?params:(string * Py.Object.t) list ->
[> tag] Obj.t ->
t
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects
(such as pipelines). The latter have parameters of the form
<component>__<parameter>
so that it's possible to update each
component of a nested object.
Parameters
- **params : dict Estimator parameters.
Returns
- self : object Estimator instance.
transform¶
method transform
val transform :
?y:[>`ArrayLike] Np.Obj.t ->
?copy:bool ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Apply the dimension reduction learned on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
Y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
-
copy : boolean, default True Whether to copy X and Y, or perform in-place normalization.
Returns
x_scores if Y is not given, (x_scores, y_scores) otherwise.
x_weights_¶
attribute x_weights_
val x_weights_ : t -> Py.Object.t
val x_weights_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_weights_¶
attribute y_weights_
val y_weights_ : t -> Py.Object.t
val y_weights_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
x_loadings_¶
attribute x_loadings_
val x_loadings_ : t -> Py.Object.t
val x_loadings_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_loadings_¶
attribute y_loadings_
val y_loadings_ : t -> Py.Object.t
val y_loadings_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
x_scores_¶
attribute x_scores_
val x_scores_ : t -> [>`ArrayLike] Np.Obj.t
val x_scores_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_scores_¶
attribute y_scores_
val y_scores_ : t -> [>`ArrayLike] Np.Obj.t
val y_scores_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
x_rotations_¶
attribute x_rotations_
val x_rotations_ : t -> Py.Object.t
val x_rotations_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_rotations_¶
attribute y_rotations_
val y_rotations_ : t -> Py.Object.t
val y_rotations_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
coef_¶
attribute coef_
val coef_ : t -> [>`ArrayLike] Np.Obj.t
val coef_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
n_iter_¶
attribute n_iter_
val n_iter_ : t -> [>`ArrayLike] Np.Obj.t
val n_iter_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
to_string¶
method to_string
val to_string: t -> string
Print the object to a human-readable representation.
show¶
method show
val show: t -> string
Print the object to a human-readable representation.
pp¶
method pp
val pp: Format.formatter -> t -> unit
Pretty-print the object to a formatter.
PLSSVD¶
Module Sklearn.Cross_decomposition.PLSSVD
wraps Python class sklearn.cross_decomposition.PLSSVD
.
type t
create¶
constructor and attributes create
val create :
?n_components:int ->
?scale:bool ->
?copy:bool ->
unit ->
t
Partial Least Square SVD
Simply perform a svd on the crosscovariance matrix: X'Y There are no iterative deflation here.
Read more in the :ref:User Guide <cross_decomposition>
.
.. versionadded:: 0.8
Parameters
-
n_components : int, default 2 Number of components to keep.
-
scale : boolean, default True Whether to scale X and Y.
-
copy : boolean, default True Whether to copy X and Y, or perform in-place computations.
Attributes
-
x_weights_ : array, [p, n_components] X block weights vectors.
-
y_weights_ : array, [q, n_components] Y block weights vectors.
-
x_scores_ : array, [n_samples, n_components] X scores.
-
y_scores_ : array, [n_samples, n_components] Y scores.
Examples
>>> import numpy as np
>>> from sklearn.cross_decomposition import PLSSVD
>>> X = np.array([[0., 0., 1.],
... [1.,0.,0.],
... [2.,2.,2.],
... [2.,5.,4.]])
>>> Y = np.array([[0.1, -0.2],
... [0.9, 1.1],
... [6.2, 5.9],
... [11.9, 12.3]])
>>> plsca = PLSSVD(n_components=2)
>>> plsca.fit(X, Y)
PLSSVD()
>>> X_c, Y_c = plsca.transform(X, Y)
>>> X_c.shape, Y_c.shape
((4, 2), (4, 2))
See also
PLSCanonical CCA
fit¶
method fit
val fit :
x:[>`ArrayLike] Np.Obj.t ->
y:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
t
Fit model to data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
Y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
fit_transform¶
method fit_transform
val fit_transform :
?y:[>`ArrayLike] Np.Obj.t ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Learn and apply the dimension reduction on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
Returns
x_scores if Y is not given, (x_scores, y_scores) otherwise.
get_params¶
method get_params
val get_params :
?deep:bool ->
[> tag] Obj.t ->
Dict.t
Get parameters for this estimator.
Parameters
- deep : bool, default=True If True, will return the parameters for this estimator and contained subobjects that are estimators.
Returns
- params : mapping of string to any Parameter names mapped to their values.
set_params¶
method set_params
val set_params :
?params:(string * Py.Object.t) list ->
[> tag] Obj.t ->
t
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects
(such as pipelines). The latter have parameters of the form
<component>__<parameter>
so that it's possible to update each
component of a nested object.
Parameters
- **params : dict Estimator parameters.
Returns
- self : object Estimator instance.
transform¶
method transform
val transform :
?y:[>`ArrayLike] Np.Obj.t ->
x:[>`ArrayLike] Np.Obj.t ->
[> tag] Obj.t ->
[>`ArrayLike] Np.Obj.t
Apply the dimension reduction learned on the train data.
Parameters
-
X : array-like of shape (n_samples, n_features) Training vectors, where n_samples is the number of samples and n_features is the number of predictors.
-
Y : array-like of shape (n_samples, n_targets) Target vectors, where n_samples is the number of samples and n_targets is the number of response variables.
x_weights_¶
attribute x_weights_
val x_weights_ : t -> Py.Object.t
val x_weights_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_weights_¶
attribute y_weights_
val y_weights_ : t -> Py.Object.t
val y_weights_opt : t -> (Py.Object.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
x_scores_¶
attribute x_scores_
val x_scores_ : t -> [>`ArrayLike] Np.Obj.t
val x_scores_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
y_scores_¶
attribute y_scores_
val y_scores_ : t -> [>`ArrayLike] Np.Obj.t
val y_scores_opt : t -> ([>`ArrayLike] Np.Obj.t) option
This attribute is documented in create
above. The first version raises Not_found
if the attribute is None. The _opt version returns an option.
to_string¶
method to_string
val to_string: t -> string
Print the object to a human-readable representation.
show¶
method show
val show: t -> string
Print the object to a human-readable representation.
pp¶
method pp
val pp: Format.formatter -> t -> unit
Pretty-print the object to a formatter.