Introduction régression linéaire vs. Régression logistique

Introduction régression linéaire vs. Régression logistique
Bien que l'apprentissage automatique ne soit pas nouveau, il y a maintenant plus de données que jamais auparavant, contribuant à sa popularité récente. Nous examinerons deux algorithmes populaires d'apprentissage automatique: la régression linéaire et la régression logistique avec les mathématiques et la mise en œuvre.

Qu'est-ce que la régression linéaire?

La régression linéaire est un algorithme d'apprentissage automatique supervisé simple mais efficace pour prédire les variables continues. La régression linéaire cherche à déterminer comment la variable d'entrée (variable explicative) varie de la variable de sortie (variable de réponse). De nombreux algorithmes avancés d'apprentissage automatique supervisé sont basés sur des concepts de régression linéaire. La régression linéaire est couramment utilisée dans les problèmes d'apprentissage automatique pour prédire les variables continues où les variables cibles et caractéristiques ont une relation linéaire.

Voici les principaux composants d'une régression linéaire simple: variable d'entrée continue, variable de réponse continue et les hypothèses de régression linéaire sont respectées.

Hypothèses de régression linéaire:

  1. Les variables d'entrée (x) ont une relation linéaire avec la variable cible (Y). De plus, les coefficients de variable d'entrée ne doivent pas être corrélés les uns avec les autres.
  2. Le terme d'erreur est distribué également autour de 0, de sorte que la valeur attendue du terme d'erreur est e (e) = 0.

Comment fonctionne la régression linéaire?

Un modèle de régression linéaire tente d'ajuster une ligne qui passe par le nombre le plus significatif de points tout en minimisant la distance carrée (fonction de coût) des points vers les valeurs de ligne ajustées compte tenu d'un ensemble d'entrées de points de données (x) et de réponses (y).

En conséquence, la fonction de coût est finalement minimisée. La fonction de coût pour la régression linéaire est généralement Erreur carrée moyenne:

L'équation de régression est écrite comme y = β1x + βo.

Le terme C représente l'ordonnée, M représente la pente de la ligne de régression, x représente la variable d'entrée et y représente la valeur prévue de la variable de réponse.

Nous savons à partir des mathématiques de base qu'une ligne droite est identifiée par deux paramètres: pente et interception. L'algorithme de régression linéaire sélectionne certains paramètres initiaux et les met à jour en continu pour minimiser l'écart type. Vous trouverez ci-dessous l'image montrant la ligne de régression (bleu), les écarts (vert) et les points de données (rouge).

La régression linéaire peut également être étendue à plusieurs variables d'entrée, et l'approche reste exactement la même. L'équation de la ligne pour plusieurs variables est représentée par:

Une démo sur la régression linéaire

Prédions une variable cible à l'aide d'une seule variable d'entrée. L'exemple ci-dessous et l'ensemble de données proviennent du scikit-apprend documentation officielle. Scikit-Learn est une bibliothèque largement utilisée pour développer des modèles d'apprentissage automatique.

Importer Matplotlib.pypllot comme plt
Importer Numpy comme NP
De Sklearn Import DataSets, linear_model
de Sklearn.Les métriques importent Mean_squared_error, R2_Score
# Chargez l'ensemble de données de diabète
Diabetes_x, Diabetes_y = ensembles de données.load_diabetes (return_x_y = true)
# Utiliser une seule fonctionnalité
diabetes_x = diabète_x [:, np.Newaxis, 2]
# Divisez les données en ensembles de formation / test
diabetes_x_train = diabète_x [: - 20]
diabetes_x_test = diabetes_x [-20:]
# Divisez les cibles en ensembles de formation / test
diabetes_y_train = diabetes_y [: - 20]
diabetes_y_test = diabetes_y [-20:]
# Créer un objet de régression linéaire
regr = linear_model.Régression linéaire()
# Entraîner le modèle en utilisant les ensembles de formation
regr.fit (diabète_x_train, diabète_y_train)
# Faire des prédictions en utilisant l'ensemble de tests
diabète_y_pred = regr.prédire (diabète_x_test)
# L'erreur moyenne au carré
Imprimer ("Erreur carrée moyenne:%.2f "% mean_squared_error (diabète_y_test, diabetes_y_pred))

Sortir

Erreur moyenne au carré: 2548.07

Qu'est-ce que la régression logistique?

La régression logistique est un algorithme de classification. Il s'agit d'un algorithme de prise de décision, ce qui signifie qu'il cherche les limites entre deux classes, et il simule les probabilités d'une seule classe. Parce que l'entrée est discrète et peut prendre deux valeurs, elle est généralement utilisée pour la classification binaire.

La variable cible dans la régression linéaire est continue, ce qui signifie qu'elle peut prendre n'importe quelle valeur de nombre réel, tandis que, dans la régression logistique, nous voulons que notre sortie soit des probabilités (entre 0 et 1). La régression logistique est dérivée de la régression linéaire, mais elle ajoute une couche supplémentaire de fonction sigmoïde pour garantir que la sortie reste entre 0 et 1.

Comment fonctionne la régression logistique?

La régression logistique est un algorithme d'apprentissage automatique simple et largement utilisé, en particulier pour les problèmes de classification binaire. Cette extension de l'algorithme de régression linéaire utilise une fonction d'activation sigmoïde pour limiter la variable de sortie entre 0 et 1. Supposons que nous devons construire un modèle d'apprentissage automatique, alors chaque point de données variable indépendant sera x1 * W1 + X2 * W2… et ainsi de suite, et cela donnera une valeur entre 0 et 1 lors de la transmission de la fonction d'activation si nous utilisons 0.50 comme valeur ou seuil décisif. Ensuite, tout résultat supérieur à 0.5 est considéré comme un 1, et tout résultat inférieur à celui-ci est considéré comme un 0. La fonction d'activation sigmoïde est représentée comme:

Nous pouvons voir sur le graphique que la variable de sortie est limitée entre 0 et 1.

Dans des scénarios de plus de deux classes, nous utilisons un VS. Toute approche de classification. La division de l'ensemble de données multi-classes en plusieurs problèmes de classification binaire est ce que l'on vs. Le repos est tout à propos.

Sur chaque problème de classification binaire, un classificateur binaire est formé et les prédictions sont faites en utilisant le modèle avec la plus haute confiance.

Implémentation de régression logistique

Vous trouverez ci-dessous le script de la documentation officielle de Scikit-Learn pour classer la fleur d'iris en fonction de diverses fonctionnalités.

>>> de Sklearn.Les ensembles de données importent Load_iris
>>> de Sklearn.linear_model importer la logistiquegression
>>> x, y = load_iris (return_x_y = true)
>>> clf = logisticRegression (random_state = 0).ajustement (x, y)
>>> CLF.prédire (x [: 2 ,:])
Array ([0, 0])
>>> CLF.Predict_proba (x [: 2 ,:])
Array ([[9.8… E-01, 1.8… E-02, 1.4… E-08],
[9.7… E-01, 2.8… E-02,… E-08]])
>>> CLF.Score (x, y)
0.97…

Conclusion

Nous avons traversé l'introduction de la régression logistique et linéaire, discuté des mathématiques sous-jacentes impliquées et traversé la partie de mise en œuvre de chacun d'eux. Nous pouvons conclure que la régression linéaire aide à prédire les variables continues tandis que la régression logistique est utilisée dans le cas de variables cibles discrètes. La régression logistique le fait en appliquant la fonction d'activation sigmoïde sur l'équation de régression linéaire.