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 LogisticRegressionAttributs :
Paramètre
Description
penaltyType de régularisation à utiliser. Les options sont 'l1','l2','elasticnet'et'none'. Par défaut, il est égal à'l2'.dualSi True, le problème de la régularisation est formulé de manière duale. À utiliser uniquement avecsolver='liblinear'. Par défaut,False.tolCritè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.CParamètre de régularisation. Plus la valeur est faible, plus la régularisation est forte. Par défaut, il est égal à 1.0.fit_interceptBooléen. Si True, le modèle inclura un terme d'interception (biais). Par défaut, il est égal àTrue.intercept_scalingUn facteur de mise à l'échelle de l'interception. Utilisé uniquement lorsque solver='liblinear'etfit_intercept=True. Par défaut, il est égal à1.class_weightPoids 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.solverAlgorithme d'optimisation à utiliser. Les options sont 'newton-cg','lbfgs','liblinear','sag', et'saga'. Par défaut, il est égal à'lbfgs'.max_iterLe nombre maximal d'itérations pour l'optimiseur. Par défaut, il est égal à 100.multi_classStratégie utilisée pour la classification multiclasse. Les options sont 'ovr'(un contre tous) et'multinomial'. Par défaut, il est égal à'ovr'.warm_startBoolé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_jobsLe nombre de jobs parallèles à utiliser. Par défaut, il est égal à None(aucun parallélisme).l1_ratioLe ratio de l'ElasticNet (utilisé uniquement lorsque penalty='elasticnet'). Par défaut, il est égal àNone.verboseSi True, affiche des informations détaillées pendant l'ajustement du modèle. Par défaut, il est égal à0(aucune information).random_stateContrô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 deCapplique 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,lbfgsest 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_trainet 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.