{"id":1222,"date":"2023-07-27T05:56:29","date_gmt":"2023-07-27T05:56:29","guid":{"rendered":"https:\/\/statorials.org\/it\/insaccamento-in-r\/"},"modified":"2023-07-27T05:56:29","modified_gmt":"2023-07-27T05:56:29","slug":"insaccamento-in-r","status":"publish","type":"post","link":"https:\/\/statorials.org\/it\/insaccamento-in-r\/","title":{"rendered":"Come eseguire l&#39;insaccamento in r (passo dopo passo)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\">Quando creiamo un <a href=\"https:\/\/statorials.org\/it\/alberi-di-classificazione-e-regressione\/\" target=\"_blank\" rel=\"noopener noreferrer\">albero decisionale<\/a> per un determinato set di dati, utilizziamo solo un singolo set di dati di addestramento per costruire il modello.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Tuttavia, lo svantaggio di utilizzare un unico albero decisionale \u00e8 che tende a soffrire di <a href=\"https:\/\/statorials.org\/it\/compromesso-della-varianza-del-bias\/\" target=\"_blank\" rel=\"noopener noreferrer\">un\u2019elevata varianza<\/a> . Cio\u00e8, se dividiamo il set di dati in due met\u00e0 e applichiamo l\u2019albero decisionale a entrambe le met\u00e0, i risultati potrebbero essere molto diversi.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Un metodo che possiamo utilizzare per ridurre la varianza di un singolo albero decisionale \u00e8 noto come <a href=\"https:\/\/statorials.org\/it\/apprendimento-automatico-delle-buste\/\" target=\"_blank\" rel=\"noopener noreferrer\">bagging<\/a> , a volte chiamato <em>aggregazione bootstrap<\/em> .<\/span><\/p>\n<p data-slot-rendered-dynamic=\"true\"> <span style=\"color: #000000;\">L&#8217;insaccamento funziona come segue:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Prendi <em>b<\/em> campioni bootstrap dal set di dati originale.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>2.<\/strong> Creare un albero decisionale per ciascun campione di bootstrap.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>3.<\/strong> Media delle previsioni di ciascun albero per ottenere un modello finale.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Costruendo centinaia o addirittura migliaia di alberi decisionali individuali e prendendo le previsioni medie di tutti gli alberi, spesso ci ritroviamo con un modello a sacco che produce un tasso di errore di test molto pi\u00f9 basso rispetto a un singolo albero decisionale.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Questo tutorial fornisce un esempio passo passo di come creare un modello con bag in R.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 1: caricare i pacchetti necessari<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Innanzitutto, caricheremo i pacchetti necessari per questo esempio:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #993300;\">library<\/span> (dplyr) <span style=\"color: #008080;\">#for data wrangling<\/span>\n<span style=\"color: #993300;\">library<\/span> (e1071) <span style=\"color: #008080;\">#for calculating variable importance<\/span>\n<span style=\"color: #993300;\">library<\/span> (caret) <span style=\"color: #008080;\">#for general model fitting<\/span>\n<span style=\"color: #993300;\">library<\/span> (rpart) <span style=\"color: #008080;\">#for fitting decision trees<\/span>\n<span style=\"color: #993300;\">library<\/span> (ipred) <span style=\"color: #008080;\">#for fitting bagged decision trees\n<\/span><\/strong><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 2: montare il modello con busta<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Per questo esempio, utilizzeremo un set di dati R integrato chiamato <strong>Air Quality<\/strong> che contiene misurazioni della qualit\u00e0 dell&#8217;aria a New York City nell&#8217;arco di 153 giorni individuali.<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#view structure of air quality dataset<\/span>\nstr(airquality)\n\n'data.frame': 153 obs. of 6 variables:\n $ Ozone: int 41 36 12 18 NA 28 23 19 8 NA ...\n $Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...\n $ Wind: num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...\n $ Temp: int 67 72 74 62 56 66 65 59 61 69 ...\n $Month: int 5 5 5 5 5 5 5 5 5 5 ...\n $Day: int 1 2 3 4 5 6 7 8 9 10 ...\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Il codice seguente mostra come adattare un modello con bag in R utilizzando la funzione <strong>bagging()<\/strong> dalla libreria <strong>ipred<\/strong> .<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#make this example reproducible\n<\/span>set.seed(1)\n\n<span style=\"color: #008080;\">#fit the bagged model\n<\/span>bag &lt;- bagging(\n  formula = Ozone ~ .,\n  data = airquality,\n  nbagg = <span style=\"color: #008000;\">150<\/span> ,   \n  coob = <span style=\"color: #008000;\">TRUE<\/span> ,\n  control = rpart. <span style=\"color: #3366ff;\">control<\/span> (minsplit = <span style=\"color: #008000;\">2<\/span> , cp = <span style=\"color: #008000;\">0<\/span> )\n)\n\n<span style=\"color: #008080;\">#display fitted bagged model\n<\/span>bag\n\nBagging regression trees with 150 bootstrap replications \n\nCall: bagging.data.frame(formula = Ozone ~ ., data = airquality, nbagg = 150, \n    coob = TRUE, control = rpart.control(minsplit = 2, cp = 0))\n\nOut-of-bag estimate of root mean squared error: 17.4973<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Tieni presente che abbiamo scelto di utilizzare <strong>150<\/strong> campioni sottoposti a bootstrap per creare il modello in bag e abbiamo specificato che <strong>coob<\/strong> \u00e8 <strong>TRUE<\/strong> per ottenere l&#8217;errore stimato di out-of-bag.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Abbiamo utilizzato anche le seguenti specifiche nella funzione <strong>rpart.control()<\/strong> :<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\"><strong>minsplit = 2:<\/strong> indica al modello di richiedere solo 2 osservazioni in un nodo per la divisione.<\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>cp = 0<\/strong> . Questo \u00e8 il parametro della complessit\u00e0. Impostandolo su 0, non richiediamo che il modello sia in grado di migliorare l&#8217;adattamento generale in alcun modo per eseguire una divisione.<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Essenzialmente, questi due argomenti consentono ai singoli alberi di crescere estremamente in profondit\u00e0, portando ad alberi con varianza elevata ma bassa distorsione. Quindi, quando applichiamo il bagging, siamo in grado di ridurre la varianza del modello finale mantenendo bassa la distorsione.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Dai risultati del modello, possiamo vedere che l&#8217;RMSE out-of-bag stimato \u00e8 <strong>17.4973<\/strong> . Questa \u00e8 la differenza media tra il valore previsto per l&#8217;ozono e il valore effettivamente osservato.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 3: visualizzare l&#8217;importanza dei predittori<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Sebbene i modelli con contenitori tendano a fornire previsioni pi\u00f9 accurate rispetto ai singoli alberi decisionali, \u00e8 difficile interpretare e visualizzare i risultati dei modelli con contenitori adattati.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Possiamo, tuttavia, visualizzare l&#8217;importanza delle variabili predittive calcolando la riduzione totale dell&#8217;RSS (somma residua dei quadrati) dovuta alla distribuzione su un dato predittore, mediata su tutti gli alberi. Maggiore \u00e8 il valore, pi\u00f9 importante \u00e8 il predittore.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Il codice seguente mostra come creare un grafico di importanza variabile per il modello di borsa aderente, utilizzando la funzione <strong>varImp()<\/strong> dalla libreria <strong>caret<\/strong> :<\/span> <\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#calculate variable importance\n<\/span>VI &lt;- data.frame(var= <span style=\"color: #3366ff;\">names<\/span> (airquality[,-1]), imp= <span style=\"color: #3366ff;\">varImp<\/span> (bag))\n\n<span style=\"color: #008080;\">#sort variable importance descending\n<\/span>VI_plot &lt;- VI[ <span style=\"color: #3366ff;\">order<\/span> (VI$Overall, decreasing= <span style=\"color: #008000;\">TRUE<\/span> ),]\n\n<span style=\"color: #008080;\">#visualize variable importance with horizontal bar plot\n<\/span>barplot(VI_plot$Overall,\n        names.arg= <span style=\"color: #3366ff;\">rownames<\/span> (VI_plot),\n        horiz= <span style=\"color: #008000;\">TRUE<\/span> ,\n        col=' <span style=\"color: #008000;\">steelblue<\/span> ',\n        xlab=' <span style=\"color: #008000;\">Variable Importance<\/span> ')\n<\/strong><\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-12115 \" src=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/sac1.png\" alt=\"Grafico di importanza variabile in R\" width=\"424\" height=\"392\" srcset=\"\" sizes=\"\"><\/p>\n<p> <span style=\"color: #000000;\">Possiamo vedere che <strong>Solar.R<\/strong> \u00e8 la variabile predittiva pi\u00f9 importante nel modello mentre <strong>Month<\/strong> \u00e8 la meno importante.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 4: utilizzare il modello per fare previsioni<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Infine, possiamo utilizzare il modello della borsa attrezzata per fare previsioni su nuove osservazioni.<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#define new observation\n<\/span>new &lt;- data.frame(Solar.R=150, Wind=8, Temp=70, Month=5, Day=5)\n\n<span style=\"color: #008080;\">#use fitted bagged model to predict Ozone value of new observation\n<\/span>predict(bag, newdata=new)\n\n24.4866666666667\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Sulla base dei valori delle variabili predittive, il modello della borsa attrezzata prevede che il valore dell&#8217;ozono sar\u00e0 <strong>24.487<\/strong> in questo particolare giorno.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Il codice R completo utilizzato in questo esempio pu\u00f2 essere trovato <a href=\"https:\/\/github.com\/Statorials\/R-Guides\/blob\/main\/bagging.R\" target=\"_blank\" rel=\"noopener noreferrer\">qui<\/a> .<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando creiamo un albero decisionale per un determinato set di dati, utilizziamo solo un singolo set di dati di addestramento per costruire il modello. Tuttavia, lo svantaggio di utilizzare un unico albero decisionale \u00e8 che tende a soffrire di un\u2019elevata varianza . Cio\u00e8, se dividiamo il set di dati in due met\u00e0 e applichiamo l\u2019albero [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Come insaccamento in R (passo dopo passo) - Statorials<\/title>\n<meta name=\"description\" content=\"Questo tutorial spiega come effettuare il bag in R, incluso un esempio passo passo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/statorials.org\/it\/insaccamento-in-r\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come insaccamento in R (passo dopo passo) - Statorials\" \/>\n<meta property=\"og:description\" content=\"Questo tutorial spiega come effettuare il bag in R, incluso un esempio passo passo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/it\/insaccamento-in-r\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-27T05:56:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/sac1.png\" \/>\n<meta name=\"author\" content=\"Benjamin anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/it\/insaccamento-in-r\/\",\"url\":\"https:\/\/statorials.org\/it\/insaccamento-in-r\/\",\"name\":\"Come insaccamento in R (passo dopo passo) - Statorials\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/it\/#website\"},\"datePublished\":\"2023-07-27T05:56:29+00:00\",\"dateModified\":\"2023-07-27T05:56:29+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae\"},\"description\":\"Questo tutorial spiega come effettuare il bag in R, incluso un esempio passo passo.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/it\/insaccamento-in-r\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/it\/insaccamento-in-r\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/it\/insaccamento-in-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Casa\",\"item\":\"https:\/\/statorials.org\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Come eseguire l&#39;insaccamento in r (passo dopo passo)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/statorials.org\/it\/#website\",\"url\":\"https:\/\/statorials.org\/it\/\",\"name\":\"Statorials\",\"description\":\"La tua guida all&#039;alfabetizzazione statistica!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/statorials.org\/it\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae\",\"name\":\"Benjamin anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/statorials.org\/it\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"contentUrl\":\"https:\/\/statorials.org\/it\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"caption\":\"Benjamin anderson\"},\"description\":\"Ciao, sono Benjamin, un professore di statistica in pensione diventato insegnante dedicato di Statorials. Con una vasta esperienza e competenza nel campo della statistica, sono ansioso di condividere le mie conoscenze per potenziare gli studenti attraverso Statorials. Scopri di pi\u00f9\",\"sameAs\":[\"https:\/\/statorials.org\/it\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Come insaccamento in R (passo dopo passo) - Statorials","description":"Questo tutorial spiega come effettuare il bag in R, incluso un esempio passo passo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/statorials.org\/it\/insaccamento-in-r\/","og_locale":"it_IT","og_type":"article","og_title":"Come insaccamento in R (passo dopo passo) - Statorials","og_description":"Questo tutorial spiega come effettuare il bag in R, incluso un esempio passo passo.","og_url":"https:\/\/statorials.org\/it\/insaccamento-in-r\/","og_site_name":"Statorials","article_published_time":"2023-07-27T05:56:29+00:00","og_image":[{"url":"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/sac1.png"}],"author":"Benjamin anderson","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Benjamin anderson","Est. reading time":"4 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/it\/insaccamento-in-r\/","url":"https:\/\/statorials.org\/it\/insaccamento-in-r\/","name":"Come insaccamento in R (passo dopo passo) - Statorials","isPartOf":{"@id":"https:\/\/statorials.org\/it\/#website"},"datePublished":"2023-07-27T05:56:29+00:00","dateModified":"2023-07-27T05:56:29+00:00","author":{"@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae"},"description":"Questo tutorial spiega come effettuare il bag in R, incluso un esempio passo passo.","breadcrumb":{"@id":"https:\/\/statorials.org\/it\/insaccamento-in-r\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/it\/insaccamento-in-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/it\/insaccamento-in-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Casa","item":"https:\/\/statorials.org\/it\/"},{"@type":"ListItem","position":2,"name":"Come eseguire l&#39;insaccamento in r (passo dopo passo)"}]},{"@type":"WebSite","@id":"https:\/\/statorials.org\/it\/#website","url":"https:\/\/statorials.org\/it\/","name":"Statorials","description":"La tua guida all&#039;alfabetizzazione statistica!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/statorials.org\/it\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae","name":"Benjamin anderson","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/image\/","url":"https:\/\/statorials.org\/it\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","contentUrl":"https:\/\/statorials.org\/it\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","caption":"Benjamin anderson"},"description":"Ciao, sono Benjamin, un professore di statistica in pensione diventato insegnante dedicato di Statorials. Con una vasta esperienza e competenza nel campo della statistica, sono ansioso di condividere le mie conoscenze per potenziare gli studenti attraverso Statorials. Scopri di pi\u00f9","sameAs":["https:\/\/statorials.org\/it"]}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"_links":{"self":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts\/1222"}],"collection":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/comments?post=1222"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts\/1222\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/media?parent=1222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/categories?post=1222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/tags?post=1222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}