Ridge regression example in Python

WBOY
Release: 2023-06-10 22:39:52
Original
1173 people have browsed it

Ridge regression is a commonly used linear regression method. It can achieve better results than ordinary least squares regression when dealing with multicollinearity problems, and can also be used for feature selection.

Python is a powerful programming language, and it is very convenient to use Python for ridge regression analysis. This article will introduce how to use Python to perform ridge regression analysis through an example.

First, we need to import the required libraries, as shown below:

import pandas as pd
import numpy as np
from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
Copy after login

The data used in this example is Boston housing price data. This data set contains 13 different housing prices in the Boston area in the 1970s. Information on features and their prices. We can read the data in through the read_csv function in the pandas library, as shown below:

data = pd.read_csv('Boston.csv')
Copy after login

Next, we need to divide the data set into a training set and a test set. This can be achieved using the train_test_split function in the scikit-learn library, as shown below:

X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
Copy after login

Before training the ridge regression model, we need to normalize the data to ensure that the value ranges of different features vary greatly. can compare their effects on the target variable. We can use the StandardScaler function in the scikit-learn library for standardization, the code is as follows:

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)
Copy after login

Then we can define a ridge regression model and put it into our training data set for training, the code is as follows Shown:

ridge = Ridge(alpha=0.1)
ridge.fit(X_train, y_train)
Copy after login

The alpha value is a hyperparameter, and the model needs to be optimized by adjusting parameters. We can choose the optimal hyperparameters by evaluating the predictions on the training and test sets. In this example, we choose to perform cross-validation on the alpha value to select the optimal hyperparameters. The code is as follows:

from sklearn.model_selection import GridSearchCV
ridge_params = {'alpha': [0.001, 0.01, 0.1, 1, 10]}
ridge_grid = GridSearchCV(estimator=Ridge(), param_grid=ridge_params, cv=10, scoring='neg_mean_squared_error')
ridge_grid.fit(X_train, y_train)
print("Best alpha:", ridge_grid.best_params_['alpha'])
Copy after login

Through cross-validation, we choose the optimal alpha value to be 0.1.

Next, we can make predictions on the test set and evaluate the prediction results. We can use the mean_squared_error function in the scikit-learn library to calculate the mean square error, the code is as follows:

y_pred = ridge.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)
Copy after login

Finally, we can use the matplotlib library to draw a scatter plot of predicted values ​​and true values ​​for better Understand the prediction effect of the model. The code is as follows:

import matplotlib.pyplot as plt
plt.scatter(y_test, y_pred)
plt.xlabel("True Values")
plt.ylabel("Predictions")
plt.show()
Copy after login

In short, ridge regression analysis in Python is very convenient. Using the functions of the scikit-learn library can help us easily evaluate and visualize the prediction results.

The above is the detailed content of Ridge regression example in Python. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!