Come implementare la regressione lineare per il machine learning?



Questo articolo copre il concetto di regressione lineare per l'apprendimento automatico con varie terminologie e un caso d'uso per implementare la regressione lineare.

Il focus di ruota attorno alle variabili di input e output utilizzando un algoritmo per prevedere il risultato. Se una nuova variabile di input entra in scena. L'algoritmo di regressione lineare in è una tecnica di apprendimento supervisionato per approssimare la funzione di mappatura per ottenere le migliori previsioni. In questo articolo impareremo la regressione lineare per l'apprendimento automatico. I seguenti argomenti sono discussi in questo blog.

Cos'è la regressione?

L'obiettivo principale della regressione è la costruzione di un modello efficiente per prevedere gli attributi dipendenti da un gruppo di variabili di attributo. Un problema di regressione si verifica quando la variabile di output è un valore reale o continuo, ovvero stipendio, peso, area, ecc.





Possiamo anche definire la regressione come un mezzo statistico utilizzato in applicazioni come l'edilizia abitativa, gli investimenti, ecc. Viene utilizzato per prevedere la relazione tra una variabile dipendente e un gruppo di variabili indipendenti. Diamo uno sguardo a vari tipi di tecniche di regressione.

regressione lineare di esempio nell

Tipi di regressione

Di seguito sono riportati i tipi di regressione.



  1. Regressione lineare semplice
  2. Regressione polinomiale
  3. Supportare la regressione vettoriale
  4. Regressione dell'albero decisionale
  5. Regressione casuale della foresta

Regressione lineare semplice

Una delle tecniche di regressione più interessanti e comuni è la regressione lineare semplice. In questo, prevediamo il risultato di una variabile dipendente in base alle variabili indipendenti, la relazione tra le variabili è lineare. Da qui la parola regressione lineare.

Regressione polinomiale

In questa tecnica di regressione, trasformiamo le caratteristiche originali in caratteristiche polinomiali di un dato grado e quindi eseguiamo la regressione su di esse.

Supportare la regressione vettoriale

Per regressione o SVR, identifichiamo un iperpiano con il margine massimo tale che il numero massimo di punti dati rientri in quei margini. È abbastanza simile all'algoritmo di classificazione della macchina vettoriale di supporto.



Regressione dell'albero decisionale

PER può essere utilizzato sia per la regressione che per . In caso di regressione, utilizziamo l'algoritmo ID3 (Iterative Dichotomiser 3) per identificare il nodo di scissione riducendo la deviazione standard.

Regressione casuale della foresta

Nella regressione casuale della foresta, riuniamo le previsioni di diverse regressioni dell'albero decisionale. Ora che conosciamo i diversi tipi di regressione, diamo un'occhiata in dettaglio alla regressione lineare semplice.

Cos'è la regressione lineare?

La regressione lineare semplice è una tecnica di regressione in cui la variabile indipendente ha una relazione lineare con la variabile dipendente. La linea retta nel diagramma è la linea migliore. L'obiettivo principale della regressione lineare semplice è considerare i punti dati forniti e tracciare la linea di adattamento migliore per adattare il modello nel miglior modo possibile.

come creare parametri in tableau

Prima di passare a come funziona l'algoritmo di regressione lineare, diamo uno sguardo ad alcune importanti terminologie nella regressione lineare semplice.

Terminologie di regressione lineare

È importante conoscere le seguenti terminologie prima di passare all'algoritmo di regressione lineare.

Funzione di costo

La linea di adattamento migliore può essere basata sull'equazione lineare fornita di seguito.

  • La variabile dipendente che deve essere prevista è indicata con Y.
  • Una linea che tocca l'asse y è indicata dall'intercetta b0.
  • bunoè la pendenza della linea, x rappresenta le variabili indipendenti che determinano la previsione di Y.
  • L'errore nella previsione risultante è indicato da e.

La funzione costo fornisce i migliori valori possibili per b0e Bunoper creare la linea più adatta per i punti dati. Lo facciamo convertendo questo problema in un problema di minimizzazione per ottenere i migliori valori per b0e Buno. L'errore è ridotto al minimo in questo problema tra il valore effettivo e il valore previsto.

Scegliamo la funzione sopra per ridurre al minimo l'errore. Calcoliamo la differenza di errore e sommiamo l'errore su tutti i punti dati, la divisione tra il numero totale di punti dati. Quindi, il valore prodotto fornisce l'errore quadrato medio su tutti i punti dati.

È anche noto come MSE (Mean Squared Error) e cambiamo i valori di b0e Bunoin modo che il valore MSE sia fissato al minimo.

Discesa in gradiente

La prossima terminologia importante per comprendere la regressione lineare è discesa in pendenza. È un metodo di aggiornamento b0e Bunovalori per ridurre il MSE. L'idea alla base di questo è di continuare a iterare il b0e Bunovalori finché non riduciamo il MSE al minimo.

Per aggiornare b0e Buno, prendiamo gradienti dalla funzione di costo. Per trovare questi gradienti, prendiamo derivate parziali rispetto a b0e Buno. Queste derivate parziali sono i gradienti e servono per aggiornare i valori di b0e Buno.

Un tasso di apprendimento inferiore si avvicina al minimo, ma richiede più tempo e in caso di un tasso di apprendimento maggiore. Il tempo impiegato è prima, ma c'è la possibilità di superare il valore minimo. Ora che abbiamo finito con le terminologie della regressione lineare, diamo uno sguardo ad alcuni vantaggi e svantaggi della regressione lineare per l'apprendimento automatico.

Vantaggi e svantaggi

Vantaggi Svantaggi
La regressione lineare funziona eccezionalmente bene per i dati separabili linearmenteL'assunzione di linearità tra variabili dipendenti e indipendenti
Più facile da implementare, interpretare ed efficiente da addestrareSpesso è abbastanza incline al rumore e all'eccessivo adattamento
Gestisce l'overfitting abbastanza bene usando tecniche di riduzione dimensionale, regolarizzazione e convalida incrociataLa regressione lineare è abbastanza sensibile ai valori anomali
Un ulteriore vantaggio è l'estrapolazione oltre un set di dati specificoÈ incline alla multicollinearità

Casi d'uso della regressione lineare

  • Previsioni di vendita

  • Analisi del rischio

  • Applicazioni abitative per prevedere i prezzi e altri fattori

    trovare il numero più grande in un array java
  • Applicazioni finanziarie per prevedere i prezzi delle azioni, la valutazione degli investimenti, ecc.

L'idea di base alla base della regressione lineare è trovare la relazione tra le variabili dipendenti e indipendenti. Viene utilizzato per ottenere la migliore linea di adattamento che potrebbe prevedere il risultato con il minimo errore. Possiamo usare la regressione lineare in semplici situazioni di vita reale, come prevedere i punteggi SAT in relazione al numero di ore di studio e altri fattori decisivi.

Con questo in mente, diamo un'occhiata a un caso d'uso.

Caso d'uso - Implementazione della regressione lineare

Il processo si svolge nelle seguenti fasi:

  1. Caricamento dei dati
  2. Esplorare i dati
  3. Affettare i dati
  4. Addestra e divide i dati
  5. Genera il modello
  6. Valuta l'accuratezza

Entriamo nei dettagli di ciascuno dei passaggi per implementare la regressione lineare.

1. Caricamento dei dati

Possiamo iniziare con il set di dati di base sul diabete che è già presente nel modulo dei set di dati sklearn (scikit-learn) per iniziare il nostro viaggio con la regressione lineare.

da sklearn import set di dati malattia = datasets.load_diabetes () print (malattia)

Produzione:

2. Esplorazione dei dati

Dopo aver caricato i dati, possiamo iniziare l'esplorazione semplicemente controllando le etichette utilizzando il codice seguente.

print (disease.keys ())

Produzione:

Il codice precedente fornisce tutte le etichette dal set di dati, dopodiché possiamo suddividere i dati in modo da poter tracciare la linea alla fine. Useremo anche tutti i punti dati, per ora tagliamo la colonna 2 dai dati.

importa numpy come np disease_X = disease.data [:, np.newaxis, 2] print (disease_X)

Produzione:

Dopo questo passaggio, suddivideremo i dati in set di addestramento e test.

3. Suddivisione dei dati

funzione power in java per interi
malattia_X_train = malattia_X [: - 30] malattia_X_test = malattia_X [-20:] malattia_Y_train = malattia.target [: - 30] malattia_Y_test = malattia.target [-20:]

La parte successiva prevede la generazione del modello, che includerà l'importazione di linear_model da sklearn.

4. Generazione del modello

from sklearn import linear_model reg = linear_model.LinearRegression () reg.fit (disease_X_train, disease_Y_train) y_predict = reg.predict (disease_X_test)

Per valutare l'accuratezza del modello, useremo l'errore quadratico medio di scikit-learn.

5. Valutazione

accuratezza = mean_squared_error (disease_Y_test, y_predict,) print (accuratezza) weights = reg.coef_ intercept = reg.intercept_ print (weights, intercept)

Produzione:

Per essere più chiari su come appaiono i punti dati sul grafico, tracciamo anche i grafici.

importa matplotlib.pyplot come plt plt.scatter (disease_X_test, disease_Y_test) plt.plot (disease_X_test, y_predict) plt.show ()

Produzione:

Per ottenere un modello più accurato in questo scenario, possiamo utilizzare tutti i dati invece della sola colonna 2. Ciò fornirebbe una precisione come mostrato di seguito:

# apporta una piccola modifica al codice precedente e rimuovi il codice di tracciamento per evitare errori disease_X = disease.data

Produzione:

Questo ci porta alla fine di questo articolo, dove abbiamo appreso della regressione lineare per il machine learning. Spero che tu sia chiaro con tutto ciò che è stato condiviso con te in questo tutorial.

Se hai trovato pertinente questo articolo sulla 'Regressione lineare per il machine learning', consulta il una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo.

In caso di domande, non esitare a porre tutte le tue domande nella sezione commenti di 'Regressione lineare per il machine learning' e il nostro team sarà lieto di rispondere.