Informatica

Esempio di Machine Learning con Python: la Regressione lineare multipla

La regressione lineare multipla si differenzia dalla regressione lineare semplice perchè viene applicata a molteplici features, invece che a una sola. In questo esempio di machine learning andremo a vedere una regressione lineare multipla, quindi con più feature in input.

Prima di procedere, vi consiglio di leggere tre brevi articoli, dove troverete diverse definizioni:

  1. Che cos’è il Machine Learning, di cosa si occupa e obiettivi
  2. Tipologie di Machine Learning
  3. Esempio di Machine Learning con Python: la Regressione lineare semplice

Visto che useremo Python, se non lo avete ancora sul vostro PC, leggete anche Come installare Python in ambiente Microsoft Windows

Anche per la regressione lineare multipla useremo la scikit-learn, in quanto estremamente flessibile rendendo tutto valido quello che abbiamo visto nell’esempio della Regressione lineare semplice.

Avremo quindi a disposizione il metodo fit per l’addestramento e il metodo predict per la predizione. Inoltre useremo ancora la classe Linear-Regression.

Inoltre con la funzione make_regression andremo a costruire un Data Set di prova in base ai parametri che gli forniremo. In questo modo la struttura di base è già pronta per fare la Regressione lineare. Richiameremo la make_regression sfruttando l’assegnazione multipla caratteristica di Python, come segue:

x, y = make_regression(n_samples=500, n_features=5, noise=10)

Quindi il dataset avrà le seguenti caratteristiche: 500 valori, organizzati in 5 features, e aggiungiamo un rumore, uno scarto di errore di 10 per non far sembrare il dataset troppo regolare.

Provvediamo ora a suddividere il dataset in una parte utile al training e una parte utile al test. Potremmo pensare a 80 campioni per il test e il restante per il training. Per farlo utilizziamo la funzione train_test_split che ci suddivide le due liste x e y in x_train, y_train e x_test, y_test

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=80)

come risultato avremo

((420, 5), (80, 5), (420, ), (80, ))

Ora procediamo alla regressione che avviene in modo totalmente analogo alla regressione lineare semplice, ma senza il reshape perchè in questo caso ci ha pensato la make_regression.

from sklearn.linear_model import LinearRegression

model = LinearRegression()

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.

model.fit(x_train, y_train)

Qui di seguito abbiamo i parametri calcolati per la regressione, insieme ai coefficienti e l’intercetta

model.coef_ assume il seguente valore

array([90.65, 23.45, 66.43, 42.54, 24.35])

model.intercept_ assume il seguente valore

-0.4564

Con il modello addestrato possiamo effettuare la previsione sui dati di test e valutarla con alcune metriche:

previsione = model.predict(x_test)

mean_absolute_error(y_test, previsione)

6.964857

re_score(y_test, previsione)

0.9876

Pur avendo usato dati a scopo didattico, i risultati dimostrano che il nostro modello funziona. E’ stato istruito, è in grado di eseguire previsioni e ha registrato anche un valore per la metrica R quadro praticamente al livello massimo.

Ercole Palmeri: Innovation addicted


Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.

Articoli recenti

Come usare le visualizzazioni e il layout in PowerPoint

Microsoft PowerPoint fornisce diversi tipi di strumenti per rendere le presentazioni fruibili, interattive e adatte a diversi scopi. Gli strumenti…

20 Maggio 2024

Apprendimento automatico: confronto tra Random Forest e albero decisionale

Nel mondo del machine learning, sia gli algoritmi random forest che decision tree svolgono un ruolo fondamentale nella categorizzazione e…

17 Maggio 2024

Come migliorare le presentazioni Power Point, consigli utili

Esistono molti suggerimenti e trucchi per fare ottime presentazioni. L'obiettivo di queste regola è di migliorare l'efficacia, la scorrevolezza di…

16 Maggio 2024

È ancora la velocità la leva nello sviluppo dei prodotti, secondo il report di Protolabs

Pubblicato il rapporto "Protolabs Product Development Outlook". Esamina le modalità in cui oggi vengono portati i nuovi prodotti sul mercato.…

16 Maggio 2024

I quattro pilastri della Sostenibilità

Il termine sostenibilità è oramai molto usato per indicare programmi, iniziative e azioni finalizzate alla preservazione di una particolare risorsa.…

15 Maggio 2024

Come consolidare i dati in Excel

Una qualsiasi operazione aziendale produce moltissimi dati, anche in forme diverse. Inserire manualmente questi dati da un foglio Excel a…

14 Maggio 2024

Analisi trimestrale Cisco Talos: mail aziendali nel mirino dei criminali Manifatturiero, Istruzione e Sanità i settori più colpiti

La compromissione delle mail aziendali sono aumentate nei primi tre mesi del 2024 più del doppio rispetto all’ultimo trimestre del…

14 Maggio 2024

Principio di segregazione dell’interfaccia (ISP), quarto principio S.O.L.I.D.

Il principio di segregazione dell'interfaccia è uno dei cinque principi SOLID della progettazione orientata agli oggetti. Una classe dovrebbe avere…

14 Maggio 2024

Leggi Innovazione nella tua Lingua

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.

Seguici