PLS regression is a Regression method that takes into account the latent structure in both datasets. Partial least squares regression performed well in MRI-based assessments for both single-label and multi-label learning reasons. PLSRegression acquires from PLS with mode=”A” and deflation_mode=”regression”. Additionally, known PLS2 or PLS in the event of a one-dimensional response.
Syntax: class sklearn.cross_decomposition.PLSRegression(n_components=2, *, scale=True, max_iter=500, tol=1e-06, copy=True)
Parameters:
This function accepts five parameters which are mentioned above and defined below:
- n_components:<int>: Its default value is 2, and it accepts the number of components that are needed to keep.
- scale:<bool>: Its default value is True, and it accepts whether to scale the data or not.
- max_iteran :<int>: Its default value is 500, and it accepts the maximum number of iteration of the NIPALS inner loop.
- tol: <non-negative real>: Its default value is 1e-06, and it accepts tolerance used in the iterative algorithm.
- copy:<bool>: Its default value is True, and it shows that deflection should be done on a copy. Don’t care about side effects when the default value is set True.
Return Value: PLSRegression is an approach for predicting response.
The below Example illustrates the use of the PLSRegression() Model.
Example:
import numpy as np
import pandas as pd
from sklearn import datasets
import matplotlib.pyplot as plt
from sklearn.cross_decomposition import PLSRegression
from sklearn.model_selection import train_test_split
# load boston data using sklearn datasets boston = datasets.load_boston()
# separate data and target values x = boston.data
y = boston.target
# tabular data structure with labeled axes # (rows and columns) using DataFrame df_x = pd.DataFrame(x, columns = boston.feature_names)
df_y = pd.DataFrame(y)
# create PLSRegression model pls2 = PLSRegression(n_components = 2 )
# split data x_train, x_test, y_train, y_test = train_test_split(
df_x, df_y, test_size = 0.30 , random_state = 1 )
# fit the model pls2.fit(x_train, y_train) # predict the values Y_pred = pls2.predict(x_test)
# plot the predicted Values plt.plot(Y_pred) plt.xticks(rotation = 90 )
plt.show() # print the predicted value print (Y_pred)
|
Output:
Plot the Predicted value using PLSRegression
Print the predicted value using trained model