Regressione lineare: apprendimento automatico
Questo articolo continua dal precedente: Data Preprocessing .
In generale, ci sono 4 tipi principali di apprendimento:
1. Apprendimento
supervisionato 2. Apprendimento non supervisionato
3. Apprendimento trasferito
4. Apprendimento rinforzato
I modelli di regressione sono sotto apprendimento supervisionato e vengono utilizzati per prevedere un valore numerico continuo come i prezzi delle case, lo stipendio, le azioni, ecc.
Prima di approfondire la regressione lineare, dobbiamo prima capire: regressione lineare semplice .
Regressione lineare semplice
Questo potrebbe suonare familiare, dato che tutti abbiamo visto la formula ' y = mx + c' ad un certo punto della nostra vita, e bene, questa equazione è l' equazione per la regressione lineare .
Di nuovo la matematica? Non preoccuparti, inizierò spiegando il significato della formula, nudo con me.
Utilizzando il seguente set di dati come esempio:
(Immagina di provare a prevedere il reddito di una persona in base agli anni di esperienza che questa persona ha lavorato e i dati esistenti sono riportati di seguito)
Dopo aver tracciato tutti i punti dati , la linea di adattamento migliore su di essi sarà:
In questo caso, la formula y = mx + c:
> y: il valore che stiamo cercando di prevedere (stipendio, variabile dipendente)
> x: gli anni di esperienza (caratteristica, variabile indipendente )
> c: y-intercetta, la stipendio dove quando x = 0
> m: coefficiente di pendenza, quanto dello stipendio aumenta se aumentiamo gli anni di esperienza (linea di best fit).
Dopo aver ottenuto la linea del miglior adattamento, tutte le previsioni future che abbiamo fatto saranno i valori lungo la linea del miglior adattamento.
Uff! Non è così difficile vero?
Regressione lineare multipla
Dopo aver compreso la regressione lineare semplice, scommetto che la regressione lineare multipla non è un argomento difficile per te ora.
In poche parole, è solo una regressione lineare semplice con più funzionalità .
Dall'esempio sopra, cosa succede se abbiamo una colonna in più "Età"?
> In questo caso, sia "Età" che "Anni di esperienza" influenzeranno entrambi il risultato finale della variabile dipendente, lo stipendio.
La seguente equazione è l'equazione per la regressione lineare multipla :
Seguendo l'equazione di cui sopra, possiamo trattare X1 come "Anni di esperienza" e X2 come "Età".
Simile alla regressione lineare semplice, ogni caratteristica (Xn) in un set di dati ha il proprio coefficiente di pendenza (bn) e sommiamo semplicemente il prodotto di ogni Xn & bn e infine vi aggiungiamo l'intercetta y .
Te l'avevo detto! Non è così difficile, vero?
Applicazione del modello di regressione lineare
Ora arriva la parte divertente, addestriamo un modello usando la regressione lineare.
Come accennato nell'articolo precedente, utilizzeremo le nostre fantastiche librerie: NumPy, Pandas, Matplotlib e Scikit-Learn.
Per prima cosa, importiamo i nostri dati:
df = pd.read_csv('data.csv')
df.head() # Showing only the first 5 rows
X = df.drop('Profit', axis=1).values # Dropping 'Profit' column
y = df['Profit'].values # Keeping only 'Profit' column
Come accennato nell'articolo precedente, dobbiamo trasformare i dati categorici in dati numerici e, in questo caso, è la colonna "Stato".
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
# Transformer is the tool that actually transforms our values in the column
# OneHotEncoder is the tool we use to encode our categorical values
stateTransformer = ColumnTransformer(transformers=[('encoder',
OneHotEncoder(),
[3])], # Our data located in column index 3
remainder='passthrough') # Keep other values in other columns
X = ct.fit_transform(X)
Le prime 3 colonne sono i valori categorici codificati.
> Poiché ci sono un totale di 3 categorie in una colonna, sono state create 3 nuove colonne.
Suddivisione del set di dati
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
Addestrare il modello
Ora arriva la parte divertente, iniziamo ad addestrare il nostro modello!
Con Scikit-Learn le cose non possono essere più facili.
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)
Previsione del set di test utilizzando il nostro modello addestrato
y_preds = regressor.predict(X_test)
Sorprendente! Non è vero?
Per vedere come sta andando bene il nostro modello, possiamo:
Carino! Su 1, otteniamo 0,9347!
Non è stato difficile vero?
Nonostante la teoria possa essere un po' complicata, tuttavia, la sua applicazione diventa così facile, grazie a Scikit-Learn!
Nonostante le applicazioni degli algoritmi ML siano facili, vale la pena sapere cosa c'è sotto il cofano, soprattutto per dare un'idea di come funzionano i modelli.
Non lasciarti intimidire da ciò che sta arrivando, tutti questi sono stati curati per te da Scikit-Learn quando lo applichi.
Presupposti per l'applicazione della regressione lineare
C'è un'immagine straordinaria dihttps://www.superdatascience.com/, come mostrato di seguito.
Credo che l'immagine sopra indichi chiaramente quando applicare correttamente la regressione lineare.
Eliminazione delle funzionalità non necessarie nella regressione lineare
Immagina di avere 20 caratteristiche per prevedere un singolo valore, c'è un'alta probabilità che alcune delle caratteristiche non siano necessarie .
Se addestriamo il nostro modello con tutte le funzionalità non necessarie, ciò potrebbe comportare un processo di addestramento scadente.
Alcuni dei modi comuni per costruire i nostri modelli sono:
- Eliminazione all'indietro
- Selezione in avanti
- Eliminazione bidirezionale
- Tutti i modelli possibili
> Continua a leggere (Regressione polinomiale): continua…

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































