Introduzione Regressione lineare vs. Regressione logistica

Introduzione Regressione lineare vs. Regressione logistica
Mentre l'apprendimento automatico non è nuovo, ora ci sono più dati che mai, che contribuiscono alla sua recente popolarità. Esamineremo due popolari algoritmi di apprendimento automatico: regressione lineare e regressione logistica con matematica e implementazione.

Cos'è la regressione lineare?

La regressione lineare è un algoritmo di apprendimento automatico semplice ma efficace per prevedere variabili continue. La regressione lineare cerca di determinare come la variabile di input (variabile esplicativa) varia dalla variabile di output (variabile di risposta). Molti algoritmi avanzati di apprendimento automatico supervisionato si basano su concetti di regressione lineare. La regressione lineare è comunemente usata nei problemi di apprendimento automatico per prevedere variabili continue in cui le variabili target e caratteristiche hanno una relazione lineare.

Di seguito sono riportati i componenti principali di una semplice regressione lineare: variabile di input continua, variabile di risposta continua e le ipotesi di regressione lineare sono soddisfatte.

Ipotesi di regressione lineare:

  1. Le variabili di input (x) hanno una relazione lineare con la variabile target (y). Inoltre, i coefficienti variabili di input non devono essere correlati tra loro.
  2. Il termine di errore è distribuito equamente intorno a 0, quindi il valore atteso del termine di errore è E (e) = 0.

Come funziona la regressione lineare?

Un modello di regressione lineare tenta di adattarsi a una linea che passa attraverso il numero più significativo di punti minimizzando la distanza quadrata (funzione di costo) dei punti ai valori della linea adattati dati un set di input di punti dati (x) e risposte (Y).

Di conseguenza, la funzione di costo viene infine ridotta al minimo. La funzione di costo per la regressione lineare è di solito Errore quadrato medio:

L'equazione di regressione è scritta come y = β1x + βo.

Il termine c rappresenta l'intercetta, m rappresenta la pendenza della linea di regressione, x rappresenta la variabile di input e y rappresenta il valore previsto della variabile di risposta.

Sappiamo dalla matematica di base che una linea retta è identificata da due parametri: pendenza e intercettazione. L'algoritmo di regressione lineare seleziona alcuni parametri iniziali e li aggiorna continuamente per ridurre al minimo la deviazione standard. Di seguito è riportata l'immagine che mostra la linea di regressione (blu), le deviazioni (verde) e i punti dati (rosso).

La regressione lineare può anche essere estesa a più variabili di input e l'approccio rimane esattamente lo stesso. L'equazione della linea per più variabili è rappresentata da:

Una demo sulla regressione lineare

Prevediamo una variabile target usando una singola variabile di input. L'esempio e il set di dati seguenti provengono da Scikit-learn Documentazione ufficiale. Scikit-Learn è una libreria ampiamente utilizzata per lo sviluppo di modelli di apprendimento automatico.

Importa matplotlib.Pyplot come Plt
Importa Numpy come NP
Da set di dati di importazione Sklearn, linear_model
da Sklearn.Metriche Importa Mean_Squared_error, R2_SCORE
# Carica il set di dati del diabete
diabetes_x, diabetes_y = set di dati.load_diabetes (return_x_y = true)
# Usa solo una funzione
diabetes_x = diabetes_x [:, np.newaxis, 2]
# Dividi i dati in set di formazione/test
diabetes_x_train = diabetes_x [:-20]
diabetes_x_test = diabetes_x [-20:]
# Dividi gli obiettivi in ​​set di allenamento/test
diabetes_y_train = diabetes_y [:-20]
diabetes_y_test = diabetes_y [-20:]
# Crea oggetto di regressione lineare
reg = linear_model.Regressione lineare()
# Allena il modello usando i set di allenamento
reg.fit (diabetes_x_train, diabetes_y_train)
# Fai previsioni utilizzando il set di test
diabetes_y_pred = reg.prevedere (diabetes_x_test)
# L'errore medio quadrato
Stampa ("Errore quadratico medio: %.2F " % mean_squared_error (diabetes_y_test, diabetes_y_pred))

Produzione

Errore quadrato medio: 2548.07

Cos'è la regressione logistica?

La regressione logistica è un algoritmo di classificazione. È un algoritmo decisionale, il che significa che cerca i confini tra due classi e simula le probabilità di una singola classe. Poiché l'input è discreto e può assumere due valori, in genere viene utilizzato per la classificazione binaria.

La variabile target nella regressione lineare è continua, il che significa che può assumere qualsiasi valore di numero reale, mentre, nella regressione logistica, vogliamo che il nostro output sia probabilità (tra 0 e 1). La regressione logistica deriva dalla regressione lineare, ma aggiunge un ulteriore livello di funzione sigmoide per garantire che l'output rimanga tra 0 e 1.

Come funziona la regressione logistica?

La regressione logistica è un algoritmo di apprendimento automatico semplice e ampiamente usato, in particolare per i problemi di classificazione binaria. Questa estensione dell'algoritmo di regressione lineare utilizza una funzione di attivazione sigmoideo per limitare la variabile di uscita tra 0 e 1. Supponiamo che dobbiamo creare un modello di apprendimento automatico, ogni punto dati variabile indipendente sarà x1 * w1 + x2 * w2 ... e così via, e questo darà un valore compreso tra 0 e 1 quando è passato attraverso la funzione di attivazione se usiamo 0.50 come valore o soglia decisiva. Quindi, qualsiasi risultato maggiore di 0.5 è considerato un 1 e qualsiasi risultato inferiore a quello è considerato 0. La funzione di attivazione sigmoideo è rappresentata come:

Dal grafico possiamo vedere che la variabile di output è limitata tra 0 e 1.

In scenari di più di due classi, ne usiamo una vs. Tutto l'approccio di classificazione. Dividere il set di dati multi-classe in più problemi di classificazione binaria è ciò che si è vs. Il riposo è tutto.

Ad ogni problema di classificazione binaria, viene addestrato un classificatore binario e le previsioni vengono fatte utilizzando il modello con la massima fiducia.

Implementazione della regressione logistica

Di seguito è riportato la sceneggiatura di Scikit-Learn Documentazione ufficiale per classificare il fiore dell'iride in base a varie caratteristiche.

>>> da Sklearn.set di dati Importa load_iris
>>> da Sklearn.LINEAR_MODEL Importa LogisticRegression
>>> x, y = load_iris (return_x_y = true)
>>> clf = logisticRegression (random_state = 0).Fit (x, y)
>>> clf.prevedere (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.Punteggio (x, y)
0.97 ..

Conclusione

Abbiamo esaminato l'introduzione della regressione logistica e lineare, abbiamo discusso della matematica sottostante coinvolta e abbiamo attraversato la parte di implementazione di ciascuno di essi. Possiamo concludere che la regressione lineare aiuta a prevedere variabili continue mentre la regressione logistica viene utilizzata nel caso di variabili target discrete. La regressione logistica lo fa applicando la funzione di attivazione del sigmoide sull'equazione di regressione lineare.