Regressione Lineare e Regressione Logistica

Documenti analoghi
Introduzione alle Reti Neurali

Laboratorio di Calcolo Numerico Laboratorio 12: Metodi iterativi per la soluzione di sistemi lineari

Metodi computazionali per i Minimi Quadrati

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

Apprendimento statistico (Statistical Learning)

Laboratorio di Calcolo Numerico

0 altimenti 1 soggetto trova lavoroentro 6 mesi}

Anno 4 Matrice inversa

Algoritmi di classificazione supervisionati

Apprendimento statistico (Statistical Learning)

Esercizio 1. Esercizio 2

Statistica Applicata all edilizia: il modello di regressione

Equazioni e sistemi non lineari

Machine Learning: apprendimento, generalizzazione e stima dell errore di generalizzazione

Esercitazione di Calcolo Numerico 1 22 Aprile Determinare la fattorizzazione LU della matrice a 1 1 A = 3a 2 a 2a a a 2 A =

Problema. Sistemi lineari. Problema. Problema. Quali sono i potenziali in ogni nodo? Leggi di Kirkoff e di Ohm:

Università di Siena. Teoria della Stima. Lucidi del corso di. Identificazione e Analisi dei Dati A.A

Equazioni e sistemi non lineari

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Minimi quadrati ordinari Interpretazione geometrica. Eduardo Rossi

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D)

Corso di Matematica per la Chimica

Inversa di una matrice

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

STATISTICA 1, metodi matematici e statistici Introduzione al linguaggio R Esercitazione 7:

Il modello di regressione lineare multipla. Il modello di regressione lineare multipla

Regressione Lineare Semplice e Correlazione

Corso di Geometria BIAR, BSIR Esercizi 2: soluzioni

Metodi di Iterazione Funzionale

Calcolo Numerico - Prova Matlab 19 luglio 2013

Calcolo Numerico con elementi di programmazione

Esercitazione di Matematica su matrici e sistemi lineari

Fin qui si sono considerate le variabili casuali ciascuna per proprio conto. Ora consideriamo la possibilità di relazioni tra variabili.

Esercizi di Programmazione Lineare - Dualità

Raccolta di Esercizi d esame ( di Calcolo Numerico) Prof. Laura Pezza. Equazioni non lineari

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

Interpolazione e approssimazione di funzioni

Metodo dei minimi quadrati e matrice pseudoinversa

Sistemi sovradeterminati

Calcolo Numerico per Ingegneria. Corso estivo di Bressanone. Prof. L. Bergamaschi SOLUZIONE DELLA PROVA SCRITTA del

Corso di Calcolo Numerico

Ottimizzazione della geometria. Ottimizzazione della geometria A.A ! " B. Civalleri Chimica Computazionale a.a

Corso di laurea in Informatica Calcolo Numerico Prof.ssa L. D Amore 12 Dicembre 2008 Esercizi di riepilogo tipo prova d esame

a + 2b + c 3d = 0, a + c d = 0 c d

Transcript:

Regressione Lineare e Regressione Logistica Stefano Gualandi Università di Pavia, Dipartimento di Matematica email: twitter: blog: stefano.gualandi@unipv.it @famo2spaghi http://stegua.github.com

1 Introduzione 2 Regressione Lineare 3 Regressione Logistica 4 Implementazione

Introduzione Il problema di apprendere dai dati si definisce tramite tre componenti principali: 1 Un generatore di vettori casuali x, estratti a caso da una data distribuzione P(x), non nota. 2 Un supervisore che restituisce un vettore di output y per ogni vettore di input x, seguendo una data distribuzione condizionata P(y x), non nota. 3 Un algoritmo di apprendimento, capace di implementare un insieme di funzioni f (x, w) con w Λ. Il problema consiste nel determinare una funzione dell insieme f (x, w), w Λ che predice la risposta del supervisore nel miglior modo possibile.

Funzione di rischio In pratica, si deve misurare la distanza tra la risposta y del supervisore per un dato vettore di input x e la risposta f (x, w) restituita dall algoritmo di apprendimento L(y, f (x, w)) Questa viene chiamata funzione di LOSS. Si considera il valore atteso di questa distanza, definendo la funzione di rischio R(w) = L(y, f (x, w)) dp(x, y) (1) L obbiettivo è trovare la funzione f (x, w ) che minimizza R(w), avendo a disposizione solo il training set: (x 1, y 1 ),..., (x N, y N ). (2)

Esempi di funzioni di loss 1 Pattern Recognition (Problema di Classificazione): L(y, f (x, w)) = { 0 se y = f (x, w) 1 se y f (x, w) (3) 2 Stima della funzione di regressione: L(y, f (x, w)) = (y f (x, w)) 2 (4) 3 Stime della funzione di densità: L(p(x, w)) = log p(x, w) (5)

Funzione di rischio empirico Poiché la distribuzione P(x, y) non è nota si usa la funzione di rischio empirica ˆR(w) = 1 N N L(y i, f (x i, w)) (6) i=1 in cui si calcola la media dei valori della funzione di loss nei punti del training set.

Funzione di rischio empirico Poiché la distribuzione P(x, y) non è nota si usa la funzione di rischio empirica ˆR(w) = 1 N N L(y i, f (x i, w)) (6) i=1 in cui si calcola la media dei valori della funzione di loss nei punti del training set. Si deve quindi risolvere il problema di ottimizzazione 1 ŵ = arg min ˆR(w) = arg min w Λ w Λ N N L(y i, f (x i, w)) (7) i=1

Regressione Lineare Sia x R p e si consideri la classe di funzioni f (x, w) lineari p y = f (x, w) = w 0 + x j w j. (8) i=j Per semplificare la notazione, si include nel vettore x il termine 1, in modo da includere w 0 nel vettore w. Si ottiene quindi y = f (x, w) = x T w. (9)

Regressione Lineare e Minimi quadrati Dato un insieme di campioni di punti i.i.d. z i = (x i, y i ) con i = 1,..., N, si vuole minimizzare il rischio empirico ˆR(w) = 1 N N (y i xi T w) 2 = (y Xw) T (y Xw), (10) i=1 in cui X è una matrice N (p + 1) e y è il vettore degli N output del training set.

Regressione Lineare e Minimi quadrati Dato un insieme di campioni di punti i.i.d. z i = (x i, y i ) con i = 1,..., N, si vuole minimizzare il rischio empirico ˆR(w) = 1 N N (y i xi T w) 2 = (y Xw) T (y Xw), (10) i=1 in cui X è una matrice N (p + 1) e y è il vettore degli N output del training set. Si deriva la (10) rispetto w e si definisce l equazione normale X T (y Xw) = 0 (11) Se la matrice X non è singolare, allora l unica soluzione è ŵ = (X T X) 1 X T y. (12)

Plot

Esercizio 1 Implementare una classe chiamata RegressioneLineare che ha due metodi: 1 fit(x,y): trova i parametri w risolvendo l equazione normale 2 predict(x): predice l output y per il dato vettore di input x

Regressione Logistica con due sole classi Quando ci sono solo due classi, poniamo 1 y i = 1, quando il campione i è nella prima classe 2 y i = 0, quando è nella seconda classe Abbiamo quindi p 1 (x, w) = p(x, w) = ex T w 1 + e x T w 1 p 2 (x, w) = 1 p(x, w) = 1 + e x T w

Regressione Logistica: Funzione di Loss La funzione di rischio empirico diventa ˆR(w) = N (y i log p(x i, w) + (1 y i ) log(1 p(x i, w))) = i=1 ( N e x ) i T w y i log i=1 1 + e 1 x i T w i) log 1 + e x i T w = N ( ) y i xi T w log(1 + e x T w ) i=1

Regressione Logistica: Funzione di Loss La funzione di rischio empirico diventa ˆR(w) = N (y i log p(x i, w) + (1 y i ) log(1 p(x i, w))) = i=1 ( N e x ) i T w y i log i=1 1 + e 1 x i T w i) log 1 + e x i T w = N ( ) y i xi T w log(1 + e x T w ) i=1 Per trovare il valore ŵ che dia il minimo della funzione precedente dobbiamo risolvere le p + 1 equazioni non lineari in w ˆR(w) w = N i=1 x i ( y i ex i T w 1 + e x i T w ) = 0. (13)

Minimizzare la Funzione di Loss Per risolvere le equazioni non lineari usiamo l algoritmo di Newton Raphson che calcola il valore otteniamo w in maniera iterativa: w j+1 = w j in cui tutte le derivate sono valutate in w j. ( ) 2 1 ˆR(w) ˆR(w) w w T w, (14)

Minimizzare la Funzione di Loss In forma matriciale, si può dimostrare che ˆR(w) w = X T (y p) (15) 2 ˆR(w) w w T = X T WX (16) In cui p è il vettore delle probabilità calcolate per l i-esimo campione di dati p(x i, w j ), e W la matrice N N con l i-esimo elemento diagonale pari a p(x i, w j )(1 p(x i, w j )).

Minimizzare la Funzione di Loss Il passo di Newton Raphson diventa quindi w j+1 = w j + (X T WX) 1 X T (y p) = (X T WX) 1 X T W (Xw j + W 1 (y p)) = (X T WX) 1 X T Wz, in cui, per semplificare la notazione, abbiamo prima moltiplicato w j per (X T WX) 1 (X T WX) e poi abbiamo moltiplicato (y p) per W 1 W. In pratica abbiamo riformulato il passo di Newton Raphson come un passo di minimi quadrati pesati, con risposta z = Xw j + W 1 (y p).

Plot

Plot

Plot

Esercizio 2 Implementare una classe chiamata RegressioneLogistica che ha due metodi: 1 fit(x,y): trova i parametri w utilizzando il metodo di Newton Raphson 2 predict(x): predice l output y per il dato vettore di input x ATTENZIONE: Si ponga un numero massimo di iterazioni, e si controlli che il valore della funzione di loss non diventi troppo piccolo (rischio di instabilità numerica!)

Funzione di Numpy da usare from numpy import matmul: moltiplicazioni tra matrici from numpy import transpose: calcola la trasposta di una matrice from numpy.linalg import inv: calcola l inversa di una matrice from numpy.linalg import pinv: calcola la pseudo inversa Altre funzioni di cui si deve consultare la documentazione: numpy.array, numpy.matrix, numpy.append, numpy.diag, numpy.vectorize