Domanda

La solita definizione di regressione (per quanto ne so) è Prevedere una variabile di output continua da un determinato set di variabili di input.

La regressione logistica è un algoritmo di classificazione binaria, quindi produce un output categorico.

È davvero un algoritmo di regressione? In tal caso, perché?

È stato utile?

Soluzione

La regressione logistica è la regressione, prima di tutto. Diventa un classificatore aggiungendo una regola decisionale. Farò un esempio che va indietro. Cioè, invece di prendere dati e adattare un modello, inizierò con il modello per mostrare come questo sia veramente un problema di regressione.

Nella regressione logistica, stiamo modellando le probabilità del registro, o logit, che si verifica un evento, che è una quantità continua. Se la probabilità che l'evento $ a $ si verifichi è $ p (a) $, le probabilità sono:

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

Le probabilità del registro, quindi, sono:

$$ log left ( frac {p (a)} {1 - p (a)} a destra) $$

Come nella regressione lineare, modelliamo questo con una combinazione lineare di coefficienti e predittori:

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

Immagina di aver dato un modello se una persona ha i capelli grigi. Il nostro modello utilizza l'età come unico predittore. Qui, il nostro evento A = una persona ha i capelli grigi:

Le probabilità di registro dei capelli grigi = -10 + 0,25 * età

...Regressione! Ecco un codice Python e una trama:

%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

Ora, facciamolo un classificatore. Innanzitutto, dobbiamo trasformare le probabilità del registro per ottenere la nostra probabilità $ p (a) $. Possiamo usare la funzione sigmoideo:

$$ p (a) = frac1 {1 + exp (- text {log ods}))} $$

Ecco il codice:

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

L'ultima cosa di cui abbiamo bisogno per rendere questo un classificatore è aggiungere una regola decisionale. Una regola molto comune è classificare un successo ogni volta che $ p (a)> 0,5 $. Adotteremo quella regola, il che implica che il nostro classificatore prevede i capelli grigi ogni volta che una persona ha più di 40 anni e prevederà i capelli non grigi ogni volta che una persona ha meno di 40 anni.

La regressione logistica funziona alla grande come classificatore anche in esempi più realistici, ma prima che possa essere un classificatore, deve essere una tecnica di regressione!

Altri suggerimenti

Risposta breve

Sì, la regressione logistica è un algoritmo di regressione e prevede un risultato continuo: la probabilità di un evento. Il fatto che lo usiamo come classificatore binario è dovuto all'interpretazione del risultato.

Dettaglio

La regressione logistica è un tipo di modello di regressione lineare generalizza.

In un normale modello di regressione lineare, un risultato continuo, y, è modellato come la somma del prodotto dei predittori e il loro effetto:

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

dove e è l'errore.

I modelli lineari generalizzati non modellano y direttamente. Invece, usano le trasformazioni per espandere il dominio di y a tutti i numeri reali. Questa trasformazione è chiamata funzione di collegamento. Per la regressione logistica la funzione di collegamento è la funzione logit (di solito, vedere la nota sotto).

La funzione logit è definita come

ln(y/(1 + y))

Quindi la forma della regressione logistica è:

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

dove y è la probabilità di un evento.

Il fatto che lo utilizziamo come classificatore binario è dovuto all'interpretazione del risultato.

Nota: il probit è un'altra funzione di collegamento utilizzata per la regressione logistica ma Logit è la più utilizzata.

Mentre discuti, la definizione di regressione è prevedere una variabile continua. Regressione logistica è un classificatore binario. La regressione logistica è l'applicazione di una funzione logit sull'output di un solito approccio di regressione. La funzione logit gira (-inf,+inf) in [0,1]. Penso che sia solo per motivi storici che mantiene quel nome.

Dire qualcosa come "Ho fatto qualche regressione per classificare le immagini. In particolare ho usato la regressione logistica". è sbagliato.

Per dirla semplicemente qualsiasi funzione ipotetica $ f $ fa per l'algoritmo di regressione se $ f: x destrorrow mathbb {r} $. Quindi funzione logistica che è $ P (y = 1 | lambda, x) = dfrac {1} {1+e^{- lambda^tx}} in [0,1] $ è un algoritmo di regressione. Qui $ lambda $ è coefficiente o iperplano trovato da set di dati addestrati e $ x $ è un punto dati. Qui, $ segno (p (y = 1 | lambda, x)) $ è preso come classe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top