Maison  >  Article  >  développement back-end  >  Exemple de régression Ridge en Python

Exemple de régression Ridge en Python

WBOY
WBOYoriginal
2023-06-10 22:39:521305parcourir

La régression Ridge est une méthode de régression linéaire couramment utilisée. Elle peut obtenir de meilleurs résultats que la régression des moindres carrés ordinaire lorsqu'il s'agit de problèmes de multicolinéarité et peut également être utilisée pour la sélection de caractéristiques.

Python est un langage de programmation puissant, et il est très pratique d'utiliser Python pour l'analyse de régression de crête. Cet article expliquera comment utiliser Python pour effectuer une analyse de régression de crête à travers un exemple.

Tout d'abord, nous devons importer les bibliothèques requises, comme indiqué ci-dessous :

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

Les données utilisées dans cet exemple sont des données sur les prix des logements à Boston. Cet ensemble de données contient des informations sur 13 caractéristiques et prix différents des maisons de la région de Boston. années 1970. Nous pouvons lire les données via la fonction read_csv dans la bibliothèque pandas, comme indiqué ci-dessous :

data = pd.read_csv('Boston.csv')

Ensuite, nous devons diviser l'ensemble de données en un ensemble d'entraînement et un ensemble de test. Ceci peut être réalisé en utilisant la fonction train_test_split dans la bibliothèque scikit-learn, comme indiqué ci-dessous :

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)

Avant d'entraîner le modèle de régression de crête, nous devons normaliser les données pour nous assurer qu'elles peuvent être utilisées lorsque les plages de valeurs des différentes caractéristiques sont très différents. Comparez leurs effets sur la variable cible. Nous pouvons utiliser la fonction StandardScaler dans la bibliothèque scikit-learn pour la standardisation, le code est le suivant :

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

Ensuite, nous pouvons définir un modèle de régression de crête et le mettre dans notre ensemble de données d'entraînement pour l'entraînement, le code est le suivant :

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

La valeur alpha est un hyperparamètre et le modèle doit être optimisé en ajustant les paramètres. Nous pouvons choisir les hyperparamètres optimaux en évaluant les prédictions sur les ensembles de formation et de test. Dans cet exemple, nous choisissons d'effectuer une validation croisée sur la valeur alpha pour sélectionner les hyperparamètres optimaux. Le code est le suivant :

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'])

Grâce à la validation croisée, nous choisissons que la valeur alpha optimale soit de 0,1.

Ensuite, nous pouvons faire des prédictions sur l'ensemble de test et évaluer les résultats des prédictions. Nous pouvons calculer l'erreur quadratique moyenne en utilisant la fonction mean_squared_error dans la bibliothèque scikit-learn, le code est le suivant :

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

Enfin, nous pouvons utiliser la bibliothèque matplotlib pour dessiner un nuage de points de valeurs prédites et vraies pour mieux comprendre l’effet de prédiction du modèle. Le code est le suivant :

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

En bref, l'analyse de régression de crête en Python est très pratique, et l'utilisation des fonctions de la bibliothèque scikit-learn peut nous aider à évaluer et visualiser facilement les résultats de la prédiction.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn