Régression logistique
Fonctions :
-
LogisticRegression()
La fonction LogisticRegression() permet d'implémenter un modèle de régression logistique pour des tâches de classification binaire ou multiclasse. C’est un modèle très populaire pour prédire des classes en fonction des caractéristiques d’entrée. Ce modèle utilise la méthode de maximum de vraisemblance pour estimer les paramètres.
Importation :
from sklearn.linear_model import LogisticRegression
Attributs :
Paramètre
Description
penalty
Type de régularisation à utiliser. Les options sont 'l1'
,'l2'
,'elasticnet'
et'none'
. Par défaut, il est égal à'l2'
.dual
Si True
, le problème de la régularisation est formulé de manière duale. À utiliser uniquement avecsolver='liblinear'
. Par défaut,False
.tol
Critère de tolérance pour l'optimisation. Plus ce nombre est faible, plus l'optimisation doit être précise. Par défaut, il est égal à 1e-4
.C
Paramètre de régularisation. Plus la valeur est faible, plus la régularisation est forte. Par défaut, il est égal à 1.0
.fit_intercept
Booléen. Si True
, le modèle inclura un terme d'interception (biais). Par défaut, il est égal àTrue
.intercept_scaling
Un facteur de mise à l'échelle de l'interception. Utilisé uniquement lorsque solver='liblinear'
etfit_intercept=True
. Par défaut, il est égal à1
.class_weight
Poids des classes. Peut être None
(pas de poids spécifiques) ou un dictionnaire où les clés sont les classes et les valeurs les poids. Par défaut,None
.solver
Algorithme d'optimisation à utiliser. Les options sont 'newton-cg'
,'lbfgs'
,'liblinear'
,'sag'
, et'saga'
. Par défaut, il est égal à'lbfgs'
.max_iter
Le nombre maximal d'itérations pour l'optimiseur. Par défaut, il est égal à 100
.multi_class
Stratégie utilisée pour la classification multiclasse. Les options sont 'ovr'
(un contre tous) et'multinomial'
. Par défaut, il est égal à'ovr'
.warm_start
Booléen. Si True
, les solutions précédentes sont utilisées pour initialiser les paramètres au lieu de recommencer l'optimisation de zéro. Par défaut, il est égal àFalse
.n_jobs
Le nombre de jobs parallèles à utiliser. Par défaut, il est égal à None
(aucun parallélisme).l1_ratio
Le ratio de l'ElasticNet (utilisé uniquement lorsque penalty='elasticnet'
). Par défaut, il est égal àNone
.verbose
Si True
, affiche des informations détaillées pendant l'ajustement du modèle. Par défaut, il est égal à0
(aucune information).random_state
Contrôle la randomisation du modèle. Peut être un entier, une instance de générateur de nombres aléatoires ou None
. Par défaut, il est égal àNone
.Exemple de code :
# Importation de la classe LogisticRegression from sklearn.linear_model import LogisticRegression # Création d'un modèle de régression logistique model = LogisticRegression(C=1.0, penalty='l2', solver='lbfgs') # Entraînement du modèle sur des données d'exemple X_train = [[1, 2], [2, 3], [3, 4]] y_train = [0, 1, 0] model.fit(X_train, y_train) # Prédiction sur de nouvelles données X_test = [[2, 3], [3, 4]] predictions = model.predict(X_test) # Affichage des prédictions print(predictions)
Explication du code :
Création d’un modèle de régression logistique
model = LogisticRegression(C=1.0, penalty='l2', solver='lbfgs')
crée un modèle de régression logistique avec les paramètres suivants :C=1.0
: paramètre d'inverse de la régularisation. Une valeur plus faible deC
applique une régularisation plus forte (plus de pénalité sur les grands coefficients).penalty='l2'
: indique que la régularisation utilisée est de type L2 (norme quadratique), qui tend à éviter les coefficients extrêmes.solver='lbfgs'
: algorithme d’optimisation utilisé pour entraîner le modèle. Ici,lbfgs
est un solveur efficace pour les petits jeux de données.Entraînement du modèle
X_train = [[1, 2], [2, 3], [3, 4]]
définit les données d’entraînement sous forme de liste de listes (3 échantillons avec 2 caractéristiques chacun).y_train = [0, 1, 0]
contient les étiquettes cibles associées à chaque échantillon d’entraînement. Ce sont ici des classes binaires (0 ou 1).model.fit(X_train, y_train)
entraîne le modèle de régression logistique sur les données d’entréeX_train
et les étiquettesy_train
. Le modèle apprend à distinguer les classes 0 et 1.Prédiction sur de nouvelles données
X_test = [[2, 3], [3, 4]]
définit de nouvelles données pour lesquelles on souhaite prédire la classe.predictions = model.predict(X_test)
utilise le modèle entraîné pour prédire les classes associées aux échantillons deX_test
. Le résultat est stocké dans la variablepredictions
.Affichage des prédictions
print(predictions)
affiche les classes prédites (0 ou 1) pour les données de test fournies. Cela donne un aperçu de la capacité du modèle à classer correctement de nouvelles entrées.