Question

La définition habituelle de la régression (pour autant que je sache) 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, il produit donc une sortie catégorique.

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

Était-ce utile?

La solution

La régression logistique est la régression, avant tout. Il devient un classificateur en ajoutant une règle de décision. Je donnerai un exemple qui recule. 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 comment c'est vraiment un problème de régression.

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

$$ frac {p (a)} {1 - p (a)} $$

Les cotes du journal sont donc:

$$ log Left ( frac {p (a)} {1 - p (a)} droite) $$

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

$$ operatorname {logit} = b_0 + b_1x_1 + b_2x_2 + cdots $$

Imaginez qu'on nous donne un modèle pour savoir 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:

Les chances logarithmiques des cheveux gris = -10 + 0,25 *

...Régression! Voici un 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")

plot of the log odds for our toy example

Maintenant, faisons-en un classificateur. Tout d'abord, nous devons transformer les cotes du journal pour sortir notre probabilité $ p (a) $. Nous pouvons utiliser la fonction sigmoïde:

$$ p (a) = frac1 {1 + exp (- text {cotes de journal}))} $$

Voici le code:

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

plot of the probability of gray hair for our toy example

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 $ p (a)> 0,5 $. Nous adopterons cette règle, ce qui implique que notre classificateur prédire les cheveux gris chaque fois qu'une personne a plus de 40 ans et prédirera les cheveux non gris chaque fois qu'une personne est moins de 40 ans.

La régression logistique fonctionne très bien en tant que classificateur dans des exemples plus réalistes, mais avant qu'il ne puisse être un classificateur, ce doit être une technique de régression!

Autres conseils

Réponse courte

Oui, la régression logistique est un algorithme de régression et prédit un résultat continu: la probabilité d'un événement. Le fait que nous l'utilisons 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ée.

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 leur effet:

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

e est l'erreur.

Les modèles linéaires généralisés ne modélisent pas y directement. Au lieu de cela, ils utilisent des transformations pour étendre le domaine de y à tous les nombres réels. Cette transformation est appelée la 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

y est 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 le plus largement utilisé.

Comme vous discutez de la définition de la régression, prédisse une variable continue. Régression logistique est un classificateur binaire. La régression logistique est l'application d'une fonction logit sur la sortie d'une approche de régression habituelle. La fonction logit tourne (-inf, + inf) à [0,1]. Je pense que c'est juste pour des raisons historiques qui gardent ce nom.

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

Pour le dire simplement n'importe quelle fonction hypothétique $ f $ fait un algorithme de régression si $ f: x rightarrow mathbb {r} $. Donc fonction logistique qui est $ P (y = 1 | lambda, x) = dfrac {1} {1 + e ^ {- lambda ^ tx}} in [0,1] $ fait un algorithme de régression. Ici $ lambda $ est coefficient ou hyperplan trouvé à partir d'ensembles de données formés et $ x $ est un point de données. Ici, $ signe (p (y = 1 | lambda, x)) $ est pris en classe.

Licencié sous: CC-BY-SA avec attribution
scroll top