Example: biology

Validazione dei modelli Strumenti quantitativi per la …

3/16/2015 Validazione dei modellifile:///C:/ dei modelliStrumenti quantitativi per la gestioneEmanuele TauferValidazione dei modelliIl data set AutoI datiIl problema analizzatoValidation set approachDiagramma a dispersioneTest set e training setRegressione lineare sempliceRLS: Test MSER egressione quadraticaRq: Test MSER egressione cubicaRc: Test MSER egressione KNNI nput nella funzione ()Calcolare le previsioni con KNNPlotTest MSE e training MSEPlot degli MSEC onfronto test MSEV alidazione dei modelliIn questo esempio consideriamo il data set Auto e:adattiamo un modello di regressione lineareadattiamo una regressione polinomialeadattiamo una regressione KNN (nonparametrica)compariamo i modelli attraverso il calcolo del test MSEIl data set AutoIn questo data set vi sono alcuni valori mancanti indicati con ? . Nella lettura del file specifichiamo che ? indica un valore mancante (NA)3/16/2015 Validazione dei modellifile:///C:/ < (" ~taufer/ ",header=T, "?)

3 / 1 6 2 0 5 V a l i d z o n e m f i l e: / C U s r m a n u. t D o p b x 3 % 2 0 S Q G L V d h 1 7 Poiché l’obiettivo di questa esercitazione è l’applicazione di tecniche di scelta dei modelli, consideriamo

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Advertisement

Transcription of Validazione dei modelli Strumenti quantitativi per la …

1 3/16/2015 Validazione dei modellifile:///C:/ dei modelliStrumenti quantitativi per la gestioneEmanuele TauferValidazione dei modelliIl data set AutoI datiIl problema analizzatoValidation set approachDiagramma a dispersioneTest set e training setRegressione lineare sempliceRLS: Test MSER egressione quadraticaRq: Test MSER egressione cubicaRc: Test MSER egressione KNNI nput nella funzione ()Calcolare le previsioni con KNNPlotTest MSE e training MSEPlot degli MSEC onfronto test MSEV alidazione dei modelliIn questo esempio consideriamo il data set Auto e:adattiamo un modello di regressione lineareadattiamo una regressione polinomialeadattiamo una regressione KNN (nonparametrica)compariamo i modelli attraverso il calcolo del test MSEIl data set AutoIn questo data set vi sono alcuni valori mancanti indicati con ? . Nella lettura del file specifichiamo che ? indica un valore mancante (NA)3/16/2015 Validazione dei modellifile:///C:/ < (" ~taufer/ ",header=T, "?)

2 ")str(Auto)## ' ': 397 obs. of 9 variables:## $ mpg : num 18 15 18 16 17 15 14 14 14 15 ..## $ cylinders : int 8 8 8 8 8 8 8 8 8 8 ..## $ displacement: num 307 350 318 304 302 429 454 440 455 390 ..## $ horsepower : int 130 165 150 150 140 198 220 215 225 190 ..## $ weight : int 3504 3693 3436 3433 3449 4341 4354 4312 4425 3850 ..## $ acceleration: num 12 11 12 10 9 10 ..## $ year : int 70 70 70 70 70 70 70 70 70 70 ..## $ origin : int 1 1 1 1 1 1 1 1 1 1 ..## $ name : Factor w/ 304 levels "amc ambassador brougham",..: 49 36 231 14 161 141 54 223 241 2 ..I datiNel eliminiamo le righe con i valori mancanti attraverso la funzione checrea un vettore logico (T,F, ) con F in corrispondenza di una riga con uno o pi valori mancantiAuto< Auto[ (Auto),] ## elimino le righe con "NA"head(Auto)## mpg cylinders displacement horsepower weight acceleration year origin## 1 18 8 307 130 3504 70 1## 2 15 8 350 165 3693 70 1## 3 18 8 318 150 3436 70 1## 4 16 8 304 150 3433 70 1## 5 17 8 302 140 3449 70 1## 6 15 8 429 198 4341 70 1## name## 1 chevrolet chevelle malibu## 2 buick skylark 320## 3 plymouth satellite## 4 amc rebel sst## 5 ford torino## 6 ford galaxie 500nrow(Auto)## [1] 392Il problema analizzato3/16/2015 Validazione dei modellifile:///C.

3 / l obiettivo di questa esercitazione l applicazione di tecniche di scelta dei modelli , consideriamoun solo predittore: questo ci permetter di visualizzare i a prevedere il consumo (mpg) in funzione della potenza del motore (horsepower)L obiettivo dunque stimare nel modelloStimiamo attraverso diversi modelli :1. regressione lineare semplice, quadratica e cubica (modello parametrico)2. regressione KNN (non parametrico)Validation set approachPer validare i modelli utilizzeremo il cd validation set approach, in cui una parte dei dati a disposizione messa da parte e utilizzata come test test MSE calcolato dai dati test sar utilizzato perscegliere K nella regressione KNNcomparare i diversi modelli stimatiDiagramma a dispersioneplot(Auto$horsepower,Auto$mpg )fmpg=f(horsepower)+ f3/16/2015 Validazione dei modellifile:///C:/ set e training setIl dataset composto da 392 unit . Suddividiamo casualmente il dataset in due parti:il training set unit il test set unit Individuiamo le unit del training set con la funzione sample().

4 Il vettore train definito sotto contiene leposizioni (1)train=sample(392,292)train2921003/16/ 2015 Validazione dei modellifile:///C:/ [1] 105 146 224 354 79 348 365 255 242 24 388 68 262 391 292 188 270 [18] 372 143 290 387 382 384 47 99 142 5 140 317 124 175 217 178 67 [35] 297 239 283 39 257 379 289 228 275 194 185 274 9 165 252 238 164 [52] 294 149 83 383 34 107 174 222 136 304 98 152 110 214 85 157 250 [69] 28 356 329 376 111 336 330 323 347 123 245 301 333 334 363 101 234 [86] 63 218 38 75 44 73 18 193 263 233 237 135 121 357 360 192 103[103] 371 287 183 62 305 137 299 170 276 206 100 295 42 4 198 29 315[120] 362 321 296 131 369 203 122 312 55 61 326 151 21 10 167 240 154[137] 144 271 251 129 173 380 60 65 181 112 303 288 26 211 340 385 373[154] 109 120 43 125 313 249 50 359 207 291 179 201 94 15 76 163 225[171] 386 186 189 86 339 195 311 160 130 300 307 41 187 106 314 40 284[188] 370 213 247 256 258 261 375 57 117 22 342 352 318 52 278 368 51[205]

5 35 97 392 338 48 132 273 19 138 364 353 265 115 259 166 59 46[222] 350 177 87 156 219 358 8 69 216 282 196 325 309 349 341 108 169[239] 232 70 269 88 285 161 158 32 212 20 389 241 281 208 66 84 202[256] 226 337 381 298 236 153 191 37 102 90 200 346 95 77 127 345 14[273] 172 316 36 23 30 119 229 254 277 344 210 243 6 150 377 17 279[290] 197 199 104 Costruiamo i due data set, test e training, utilizzando i risultati del < Auto[ train,]nrow( )[1] < Auto[train,]nrow( )[1] 292 Regressione lineare semplicerls< lm(mpg~horsepower, data= )summary(rls)3/16/2015 Validazione dei modellifile:///C:/ :lm(formula = mpg ~ horsepower, data = )Residuals: Min 1Q Median 3Q Max Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) <2e 16 **horsepower <2e 16 ** Signif. codes: 0 '**' '**' '*' '.

6 ' ' ' 1 Residual standard error: on 290 degrees of freedomMultiple R squared: , Adjusted R squared: F statistic: on 1 and 290 DF, p value: < 16plot(Auto$horsepower,Auto$mpg)abline(rls,col="red",lwd=2)3/16/2015 Validazione dei modellifile:///C:/ : Test MSEIl calcolo del test MSE pu essere fatto molto semplicemente definendo la media delle differenze alquadrato tra i valori di mpg nel test set e la loro previsione in base al modello < mean(( $mpg predict(rls, ))^2) [1] quadraticarq< lm(mpg~poly(horsepower,2), data= )summary(rq)3/16/2015 Validazione dei modellifile:///C:/ :lm(formula = mpg ~ poly(horsepower, 2), data = )Residuals: Min 1Q Median 3Q Max Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) < 2e 16 **poly(horsepower, 2)1 < 2e 16 **poly(horsepower, 2)2 15 ** Signif.

7 Codes: 0 '**' '**' '*' '.' ' ' 1 Residual standard error: on 289 degrees of freedomMultiple R squared: , Adjusted R squared: F statistic: on 2 and 289 DF, p value: < 16plot(Auto$horsepower,Auto$mpg)lines(sort(Auto$horsepower),predict(rq,Auto)[order(Auto$horsepower)],col="red",lwd=2)3/16/2015 Validazione dei modellifile:///C:/ : Test < mean(( $mpg predict(rq, ))^2) [1] cubicarc< lm(mpg~poly(horsepower,3), data= )summary(rc)3/16/2015 Validazione dei modellifile:///C:/ :lm(formula = mpg ~ poly(horsepower, 3), data = )Residuals: Min 1Q Median 3Q Max Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) <2e 16 **poly(horsepower, 3)1 <2e 16 **poly(horsepower, 3)2 8e 15 **poly(horsepower, 3)3 Signif. codes: 0 '**' '**' '*' '.

8 ' ' ' 1 Residual standard error: on 288 degrees of freedomMultiple R squared: , Adjusted R squared: F statistic: on 3 and 288 DF, p value: < 16plot(Auto$horsepower,Auto$mpg)lines(so rt(Auto$horsepower),predict(rc,Auto)[ord er(Auto$horsepower)],col="red",lwd=2)3/1 6/2015 Validazione dei modellifile:///C:/ : Test < mean(( $mpg predict(rc, ))^2) ## [1] KNNPer adattare una regressione KNN ai dati necessario costruire una funzione ad funzione () disponibile nel file appropriata per il caso di un solo regressore eautomaticamente produce le previsioni per il vettore di dati dato l input e l E possibile specificare una lista (o anche solo uno) di valori di K da considerare3/16/2015 Validazione dei modellifile:///C:/ indicare ad R dove trovare la funzione (), copiare il file nella directory di lavorodi R e richiamarlo con la funzione source() < function(klist, , , ) # Regressione k nearest neighbors # # klist la lista dei valori K da usare # , : il training set (indipendente dipendente) # : il test set # Output: una matrice di valori previsti per il test set (una colonna per ogni K in klist) source(" ")Input nella funzione ()In questo caso, la funzione (), ci chiede di fornire come input i dati separati in variabiledipendente indipendente , test e < $ < $ < $ < $mpgCalcolare le previsioni con KNNCon il codice seguente calcoliamo le previsioni del modello KNN per valori di K da 1 a 60(klist=seq(60)) contiene i valori previsti per il training contiene i valori previsti per il test setklist< seq(60) # testiamo i risultati per k=1,2.

9 < (klist, , , ) < (klist, , , )Plot3/16/2015 Validazione dei modellifile:///C:/ ( $horsepower, $mpg)lines(sort( $horsepower), (292, , , )[order( $horsepower)],col=1,lwd=2)lines(sort( $horsepower), (50, , , )[order( $horsepower)],col=2,lwd=2)lines(sort( $horsepower), (10, , , )[order( $horsepower)],col=3,lwd=2)lines(sort( $horsepower), (1, , , )[order( $horsepower)],col=4,lwd=2)legend("topright",legend=c('k=292','k=50','k=10','k=1'), (4) , lty=1 , col=seq(4))Test MSE e training < apply(( )^2 , 2, mean) < apply(( )^2 , 2, mean) < ("K"=klist, "test MSE"= ,"training MSE"= )knitr::kable( ) dei modellifile:///C:/ dei modellifile:///C:/ dei modellifile:///C:/ degli MSER iportiamo in un grafico i valori di MSE ottenuti. Dalla tavola precedente notiamo che il valore di testMSE pi basso corrisponde al caso . Tuttavia per un intervallo di valori piuttosto ampioquesto rimane molto basso.

10 Il valore produce una adattamento molto pi smussato rispetto alcaso plot( , type='l' , xlab='k' , ylab='MSE', col=1 , lwd=2)lines( , col=2 , lwd=2)legend("bottomright",legend=c('Tra in','Test'), (2) , lty=1 , col=seq(2))Confronto test MSEK=10KK=50K=103/16/2015 Validazione dei modellifile:///C:/ RLS: test MSE = RQ: test MSE = RC: test MSE = KNN, : test MSE = KNN, : test MSE =


Related search queries