{"id":1175,"date":"2023-07-27T09:53:30","date_gmt":"2023-07-27T09:53:30","guid":{"rendered":"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/"},"modified":"2023-07-27T09:53:30","modified_gmt":"2023-07-27T09:53:30","slug":"lasciane-uscire-una-convalida-incrociata-in-python","status":"publish","type":"post","link":"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/","title":{"rendered":"Convalida incrociata leave-one-out in python (con esempi)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\">Per valutare le prestazioni di un modello su un set di dati, dobbiamo misurare quanto bene le previsioni fatte dal modello corrispondono ai dati osservati.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Un metodo comunemente utilizzato per eseguire questa operazione \u00e8 noto come <a href=\"https:\/\/statorials.org\/it\/lasciare-una-singola-convalida-incrociata\/\" target=\"_blank\" rel=\"noopener noreferrer\">Leave-One-Out Cross-Validation (LOOCV)<\/a> , che utilizza il seguente approccio:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Suddividere un set di dati in un set di training e in un set di test, utilizzando tutte le osservazioni tranne una come parte del set di training.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>2.<\/strong> Crea un modello utilizzando solo i dati del set di training.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>3.<\/strong> Utilizzare il modello per prevedere il valore di risposta dell&#8217;osservazione esclusa dal modello e calcolare l&#8217;errore quadratico medio (MSE).<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>4.<\/strong> Ripeti questo processo <em>n<\/em> volte. Calcolare l&#8217;MSE del test come media di tutti gli MSE del test.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Questo tutorial fornisce un esempio passo passo di come eseguire LOOCV per un determinato modello in Python.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 1: caricare le librerie necessarie<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Innanzitutto, caricheremo le funzioni e le librerie necessarie per questo esempio:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008000;\">from<\/span> sklearn. <span style=\"color: #3366ff;\">model_selection<\/span> <span style=\"color: #008000;\">import<\/span> train_test_split\n<span style=\"color: #008000;\">from<\/span> sklearn. <span style=\"color: #3366ff;\">model_selection<\/span> <span style=\"color: #008000;\">import<\/span> LeaveOneOut\n<span style=\"color: #008000;\">from<\/span> sklearn. <span style=\"color: #3366ff;\">model_selection<\/span> <span style=\"color: #008000;\">import<\/span> cross_val_score\n<span style=\"color: #008000;\">from<\/span> sklearn. <span style=\"color: #3366ff;\">linear_model<\/span> <span style=\"color: #008000;\">import<\/span> LinearRegression\n<span style=\"color: #008000;\">from<\/span> numpy <span style=\"color: #008000;\">import<\/span> means\n<span style=\"color: #008000;\">from<\/span> numpy <span style=\"color: #008000;\">import<\/span> absolute\n<span style=\"color: #008000;\">from<\/span> numpy <span style=\"color: #008000;\">import<\/span> sqrt\n<span style=\"color: #008000;\">import<\/span> pandas <span style=\"color: #008000;\">as<\/span> pd\n<\/strong><\/span><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 2: creare i dati<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Successivamente, creeremo un DataFrame panda che contiene due variabili predittive, <sub>x1<\/sub> e <sub>x2<\/sub> e una singola variabile di risposta y.<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong>df = pd.DataFrame({' <span style=\"color: #008000;\">y<\/span> ': [6, 8, 12, 14, 14, 15, 17, 22, 24, 23],\n                   ' <span style=\"color: #008000;\">x1<\/span> ': [2, 5, 4, 3, 4, 6, 7, 5, 8, 9],\n                   ' <span style=\"color: #008000;\">x2<\/span> ': [14, 12, 12, 13, 7, 8, 7, 4, 6, 5]})\n<\/strong><\/span><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 3: eseguire la convalida incrociata Leave-One-Out<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Successivamente, adatteremo un <a href=\"https:\/\/statorials.org\/it\/python-di-regressione-lineare\/\" target=\"_blank\" rel=\"noopener noreferrer\">modello di regressione lineare multipla<\/a> al set di dati ed eseguiremo LOOCV per valutare le prestazioni del modello.<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008080;\">#define predictor and response variables\n<\/span>X = df[[' <span style=\"color: #008000;\">x1<\/span> ', ' <span style=\"color: #008000;\">x2<\/span> ']]\ny = df[' <span style=\"color: #008000;\">y<\/span> ']\n\n<span style=\"color: #008080;\">#define cross-validation method to use\n<\/span>cv = LeaveOneOut()\n\n<span style=\"color: #008080;\">#build multiple linear regression model\n<\/span>model = LinearRegression()\n\n<span style=\"color: #008080;\">#use LOOCV to evaluate model\n<\/span>scores = cross_val_score(model, X, y, scoring=' <span style=\"color: #008000;\">neg_mean_absolute_error<\/span> ',\n                         cv=cv, n_jobs=-1)\n\n<span style=\"color: #008080;\">#view mean absolute error\n<\/span>mean(absolute(scores))\n\n3.1461548083469726\n<\/strong><\/span><\/pre>\n<p> <span style=\"color: #000000;\">Dal risultato, possiamo vedere che l&#8217;errore medio assoluto (MAE) era <strong>3,146<\/strong> . Cio\u00e8, l&#8217;errore assoluto medio tra la previsione del modello e i dati effettivamente osservati \u00e8 3,146.<\/span><\/p>\n<p> <span style=\"color: #000000;\">In generale, pi\u00f9 basso \u00e8 il MAE, migliore \u00e8 la capacit\u00e0 del modello di prevedere le osservazioni reali.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Un altro parametro comunemente utilizzato per valutare le prestazioni del modello \u00e8 l\u2019errore quadratico medio (RMSE). Il codice seguente mostra come calcolare questa metrica utilizzando LOOCV:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008080;\">#define predictor and response variables\n<\/span>X = df[[' <span style=\"color: #008000;\">x1<\/span> ', ' <span style=\"color: #008000;\">x2<\/span> ']]\ny = df[' <span style=\"color: #008000;\">y<\/span> ']\n\n<span style=\"color: #008080;\">#define cross-validation method to use\n<\/span>cv = LeaveOneOut()\n\n<span style=\"color: #008080;\">#build multiple linear regression model\n<\/span>model = LinearRegression()\n\n<span style=\"color: #008080;\">#use LOOCV to evaluate model\n<\/span>scores = cross_val_score(model, X, y, scoring=' <span style=\"color: #008000;\">neg_mean_squared_error<\/span> ',\n                         cv=cv, n_jobs=-1)\n\n<span style=\"color: #008080;\">#view RMSE\n<\/span>sqrt(mean(absolute(scores)))\n\n3.619456476385567<\/strong><\/span><\/pre>\n<p> <span style=\"color: #000000;\">Dal risultato, possiamo vedere che l&#8217;errore quadratico medio (RMSE) era <strong>3,619<\/strong> . Pi\u00f9 basso \u00e8 l\u2019RMSE, migliore \u00e8 la capacit\u00e0 del modello di prevedere le osservazioni reali.<\/span><\/p>\n<p> <span style=\"color: #000000;\">In pratica, in genere adattiamo diversi modelli diversi e confrontiamo l&#8217;RMSE o il MAE di ciascun modello per decidere quale modello produce i tassi di errore di test pi\u00f9 bassi ed \u00e8 quindi il modello migliore da utilizzare.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Risorse addizionali<\/strong><\/span><\/h3>\n<p> <a href=\"https:\/\/statorials.org\/it\/lasciare-una-singola-convalida-incrociata\/\" target=\"_blank\" rel=\"noopener noreferrer\">Una rapida introduzione alla convalida incrociata Leave-One-Out (LOOCV)<\/a><br \/> <a href=\"https:\/\/statorials.org\/it\/python-di-regressione-lineare\/\" target=\"_blank\" rel=\"noopener noreferrer\">Una guida completa alla regressione lineare in Python<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Per valutare le prestazioni di un modello su un set di dati, dobbiamo misurare quanto bene le previsioni fatte dal modello corrispondono ai dati osservati. Un metodo comunemente utilizzato per eseguire questa operazione \u00e8 noto come Leave-One-Out Cross-Validation (LOOCV) , che utilizza il seguente approccio: 1. Suddividere un set di dati in un set di [&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>Convalida incrociata Leave-One-Out in Python (con esempi)<\/title>\n<meta name=\"description\" content=\"Questo tutorial spiega come eseguire la convalida incrociata diretta in Python, 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\/lasciane-uscire-una-convalida-incrociata-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Convalida incrociata Leave-One-Out in Python (con esempi)\" \/>\n<meta property=\"og:description\" content=\"Questo tutorial spiega come eseguire la convalida incrociata diretta in Python, incluso un esempio passo passo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-27T09:53:30+00:00\" \/>\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=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/\",\"url\":\"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/\",\"name\":\"Convalida incrociata Leave-One-Out in Python (con esempi)\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/it\/#website\"},\"datePublished\":\"2023-07-27T09:53:30+00:00\",\"dateModified\":\"2023-07-27T09:53:30+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae\"},\"description\":\"Questo tutorial spiega come eseguire la convalida incrociata diretta in Python, incluso un esempio passo passo.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Casa\",\"item\":\"https:\/\/statorials.org\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Convalida incrociata leave-one-out in python (con esempi)\"}]},{\"@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":"Convalida incrociata Leave-One-Out in Python (con esempi)","description":"Questo tutorial spiega come eseguire la convalida incrociata diretta in Python, 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\/lasciane-uscire-una-convalida-incrociata-in-python\/","og_locale":"it_IT","og_type":"article","og_title":"Convalida incrociata Leave-One-Out in Python (con esempi)","og_description":"Questo tutorial spiega come eseguire la convalida incrociata diretta in Python, incluso un esempio passo passo.","og_url":"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/","og_site_name":"Statorials","article_published_time":"2023-07-27T09:53:30+00:00","author":"Benjamin anderson","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Benjamin anderson","Est. reading time":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/","url":"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/","name":"Convalida incrociata Leave-One-Out in Python (con esempi)","isPartOf":{"@id":"https:\/\/statorials.org\/it\/#website"},"datePublished":"2023-07-27T09:53:30+00:00","dateModified":"2023-07-27T09:53:30+00:00","author":{"@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae"},"description":"Questo tutorial spiega come eseguire la convalida incrociata diretta in Python, incluso un esempio passo passo.","breadcrumb":{"@id":"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/it\/lasciane-uscire-una-convalida-incrociata-in-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Casa","item":"https:\/\/statorials.org\/it\/"},{"@type":"ListItem","position":2,"name":"Convalida incrociata leave-one-out in python (con esempi)"}]},{"@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\/1175"}],"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=1175"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts\/1175\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/media?parent=1175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/categories?post=1175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/tags?post=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}