La régression logistique est-elle en fait un algorithme de régression?

11

La définition habituelle de la régression (pour autant que je sache) est de prédire une variable de sortie continue à partir d'un ensemble donné de variables d'entrée .

La régression logistique est un algorithme de classification binaire, elle produit donc une sortie catégorielle.

Est-ce vraiment un algorithme de régression? Si oui, pourquoi?

joews
la source

Réponses:

23

La régression logistique est d'abord une régression. Il devient un classifieur en ajoutant une règle de décision. Je vais donner un exemple qui revient en arrière. Autrement dit, au lieu de prendre des données et d'ajuster un modèle, je vais commencer par le modèle afin de montrer en quoi il s'agit vraiment d'un problème de régression.

Dans la régression logistique, nous modélisons les cotes de log, ou logit, qu'un événement se produit, qui est une quantité continue. Si la probabilité que l'événement se produise est , les chances sont:UNEP(UNE)

P(UNE)1-P(UNE)

Les cotes du journal sont donc:

Journal(P(UNE)1-P(UNE))

Comme dans la régression linéaire, nous modélisons cela avec une combinaison linéaire de coefficients et de prédicteurs:

logit=b0+b1X1+b2X2+

Imaginez qu'on nous donne un modèle indiquant si une personne a les cheveux gris. Notre modèle utilise l'âge comme seul prédicteur. Ici, notre événement A = une personne a les cheveux gris:

log cotes de cheveux gris = -10 + 0,25 * âge

...Régression! Voici du code Python et un tracé:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

x = np.linspace(0, 100, 100)

def log_odds(x):
    return -10 + .25 * x

plt.plot(x, log_odds(x))
plt.xlabel("age")
plt.ylabel("log odds of gray hair")

tracé des cotes du journal pour notre exemple de jouet

Maintenant, faisons-en un classificateur. Premièrement, nous devons transformer les cotes logarithmiques pour obtenir notre probabilité . Nous pouvons utiliser la fonction sigmoïde:P(UNE)

P(UNE)=11+exp(-journal des cotes))

Voici le code:

plt.plot(x, 1 / (1 + np.exp(-log_odds(x))))
plt.xlabel("age")
plt.ylabel("probability of gray hair")

tracé de la probabilité de cheveux gris pour notre exemple de jouet

La dernière chose dont nous avons besoin pour en faire un classificateur est d'ajouter une règle de décision. Une règle très courante consiste à classer un succès chaque fois que . Nous adopterons cette règle, ce qui implique que notre classificateur prédira les cheveux gris chaque fois qu'une personne aura plus de 40 ans et prédira les cheveux non gris chaque fois qu'une personne a moins de 40 ans.P(UNE)>0,5

La régression logistique fonctionne très bien comme classificateur dans des exemples plus réalistes aussi, mais avant de pouvoir être un classifieur, il doit s'agir d'une technique de régression!

Ben
la source
Bien qu'en pratique, les gens utilisent la régression logistique comme synonyme de régression logistique + classificateur binaire.
jinawee
10

Réponse courte

Oui, la régression logistique est un algorithme de régression et elle prédit un résultat continu: la probabilité d'un événement. Le fait que nous l'utilisions comme classificateur binaire est dû à l'interprétation du résultat.

Détail

La régression logistique est un type de modèle de régression linéaire généralisé.

Dans un modèle de régression linéaire ordinaire, un résultat continu y, est modélisé comme la somme du produit des prédicteurs et de leur effet:

y = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e

eest l'erreur.

Les modèles linéaires généralisés ne modélisent pas ydirectement. Au lieu de cela, ils utilisent des transformations pour étendre le domaine de ytous les nombres réels. Cette transformation est appelée fonction de liaison. Pour la régression logistique, la fonction de liaison est la fonction logit (généralement, voir la note ci-dessous).

La fonction logit est définie comme

ln(y/(1 + y))

Ainsi, la forme de régression logistique est:

ln(y/(1 + y)) = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e

yest la probabilité d'un événement.

Le fait que nous l'utilisions comme classificateur binaire est dû à l'interprétation du résultat.

Remarque: probit est une autre fonction de lien utilisée pour la régression logistique, mais logit est la plus utilisée.

Christopher Louden
la source
1

Pendant que vous discutez, la définition de la régression consiste à prédire une variable continue. La régression logistique est un classificateur binaire. La régression logistique est l'application d'une fonction logit à la sortie d'une approche de régression habituelle. La fonction Logit transforme (-inf, + inf) en [0,1]. Je pense que c'est juste pour des raisons historiques qui garde ce nom.

Dire quelque chose comme "J'ai fait une régression pour classer les images. En particulier, j'ai utilisé la régression logistique." est faux.

iliasfl
la source
2
La régression logistique peut être utilisée comme classificateur binaire, mais ce n'est pas intrinsèquement un. Vous pouvez l'utiliser pour estimer les chances ou déterminer la relation d'une variable prédictive avec le résultat.
MattBagg
0

FF:XRP(Oui=1|λ,X)=11+e-λTX[0,1]λXsjegn(P(Oui=1|λ,X))

M. Sigma.
la source