Algoritmi di regressione - Panoramica

Introduzione alla regressione

La regressione è un altro strumento statistico e di apprendimento automatico importante e ampiamente utilizzato. L'obiettivo principale delle attività basate sulla regressione è prevedere le etichette di output o le risposte che sono valori numerici continui, per i dati di input forniti. L'output sarà basato su ciò che il modello ha appreso in fase di formazione. Fondamentalmente, i modelli di regressione utilizzano le caratteristiche dei dati di input (variabili indipendenti) ei loro corrispondenti valori numerici di output continui (variabili dipendenti o di risultato) per apprendere l'associazione specifica tra input e output corrispondenti.

Tipi di modelli di regressione

I modelli di regressione sono dei seguenti due tipi:

Simple regression model - Questo è il modello di regressione più elementare in cui le previsioni sono formate da una singola caratteristica univariata dei dati.

Multiple regression model - Come suggerisce il nome, in questo modello di regressione le previsioni sono formate da più caratteristiche dei dati.

Costruire un regressore in Python

Il modello di regressore in Python può essere costruito proprio come abbiamo costruito il classificatore. Scikit-learn, una libreria Python per l'apprendimento automatico, può essere utilizzata anche per creare un regressore in Python.

Nell'esempio seguente, costruiremo un modello di regressione di base che adatterà una linea ai dati, cioè un regressore lineare. I passaggi necessari per costruire un regressore in Python sono i seguenti:

Passaggio 1: importazione del pacchetto Python necessario

Per costruire un regressore usando scikit-learn, dobbiamo importarlo insieme ad altri pacchetti necessari. Possiamo importare il utilizzando il seguente script:

import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt

Passaggio 2: importazione del set di dati

Dopo aver importato il pacchetto necessario, è necessario un set di dati per creare un modello di previsione della regressione. Possiamo importarlo dal set di dati sklearn o utilizzarne un altro secondo le nostre esigenze. Useremo i nostri dati di input salvati. Possiamo importarlo con l'aiuto del seguente script:

input = r'C:\linear.txt'

Successivamente, dobbiamo caricare questi dati. Stiamo usando la funzione np.loadtxt per caricarlo.

input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]

Passaggio 3: organizzazione dei dati in set di addestramento e test

Dato che dobbiamo testare il nostro modello su dati invisibili, divideremo il nostro set di dati in due parti: un set di addestramento e un set di test. Il seguente comando lo eseguirà:

training_samples = int(0.6 * len(X))
testing_samples = len(X) - num_training

X_train, y_train = X[:training_samples], y[:training_samples]

X_test, y_test = X[training_samples:], y[training_samples:]

Passaggio 4: valutazione e previsione del modello

Dopo aver diviso i dati in addestramento e test, è necessario creare il modello. Useremo la funzione LineaRegression () di Scikit-learn per questo scopo. Il seguente comando creerà un oggetto regressore lineare.

reg_linear= linear_model.LinearRegression()

Quindi, addestra questo modello con gli esempi di addestramento come segue:

reg_linear.fit(X_train, y_train)

Ora, finalmente, dobbiamo fare la previsione con i dati del test.

y_test_pred = reg_linear.predict(X_test)

Passaggio 5: trama e visualizzazione

Dopo la previsione, possiamo tracciarla e visualizzarla con l'aiuto del seguente script:

Example

plt.scatter(X_test, y_test, color='red')
plt.plot(X_test, y_test_pred, color='black', linewidth=2)
plt.xticks(())
plt.yticks(())
plt.show()

Output

Nell'output sopra, possiamo vedere la linea di regressione tra i punti dati.

Passaggio 6: calcolo delle prestazioni

Possiamo anche calcolare le prestazioni del nostro modello di regressione con l'aiuto di varie metriche delle prestazioni come segue:

Example

print("Regressor model performance:")
print("Mean absolute error(MAE) =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error(MSE) =", round(sm.mean_squared_error(y_test, y_test_pred), 2))
print("Median absolute error =", round(sm.median_absolute_error(y_test, y_test_pred), 2))
print("Explain variance score =", round(sm.explained_variance_score(y_test, y_test_pred), 2))
print("R2 score =", round(sm.r2_score(y_test, y_test_pred), 2))

Output

Regressor model performance:
Mean absolute error(MAE) = 1.78
Mean squared error(MSE) = 3.89
Median absolute error = 2.01
Explain variance score = -0.09
R2 score = -0.09

Tipi di algoritmi di regressione ML

L'algoritmo di regressione ML più utile e popolare è l'algoritmo di regressione lineare che si divide ulteriormente in due tipi:

  • Algoritmo di regressione lineare semplice

  • Algoritmo di regressione lineare multipla.

Ne discuteremo e lo implementeremo in Python nel prossimo capitolo.

Applicazioni

Le applicazioni degli algoritmi di regressione ML sono le seguenti:

Forecasting or Predictive analysis- Uno degli usi importanti della regressione è la previsione o l'analisi predittiva. Ad esempio, possiamo prevedere il PIL, i prezzi del petrolio o in parole semplici i dati quantitativi che cambiano con il passare del tempo.

Optimization- Possiamo ottimizzare i processi aziendali con l'aiuto della regressione. Ad esempio, un responsabile del negozio può creare un modello statistico per comprendere il momento in cui arrivano i clienti.

Error correction- Negli affari, prendere una decisione corretta è altrettanto importante dell'ottimizzazione del processo aziendale. La regressione può aiutarci a prendere la decisione corretta anche nel correggere la decisione già implementata.

Economics- È lo strumento più utilizzato in economia. Possiamo usare la regressione per prevedere l'offerta, la domanda, il consumo, l'investimento in scorte ecc.

Finance- Una società finanziaria è sempre interessata a ridurre al minimo il portafoglio di rischio e desidera conoscere i fattori che influenzano i clienti. Tutto ciò può essere previsto con l'aiuto del modello di regressione.