{"id":1200,"date":"2023-07-27T07:49:23","date_gmt":"2023-07-27T07:49:23","guid":{"rendered":"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/"},"modified":"2023-07-27T07:49:23","modified_gmt":"2023-07-27T07:49:23","slug":"regressione-lazo-in-python","status":"publish","type":"post","link":"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/","title":{"rendered":"Regressione lazo in python (passo dopo passo)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/statorials.org\/it\/regressione-al-lazo\/\" target=\"_blank\" rel=\"noopener noreferrer\">La regressione lazo<\/a> \u00e8 un metodo che possiamo utilizzare per adattare un modello di regressione quando nei dati \u00e8 presente <a href=\"https:\/\/statorials.org\/it\/regressione-multicollinearita\/\" target=\"_blank\" rel=\"noopener noreferrer\">la multicollinearit\u00e0<\/a> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">In poche parole, la regressione dei minimi quadrati tenta di trovare stime di coefficienti che minimizzino la somma residua dei quadrati (RSS):<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>RSS = \u03a3(y <sub>i<\/sub> \u2013 \u0177 <sub>i<\/sub> )2<\/strong><\/span><\/p>\n<p> <span style=\"color: #000000;\">Oro:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\"><strong>\u03a3<\/strong> : simbolo greco che significa <em>somma<\/em><\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>y <sub>i<\/sub><\/strong> : il valore di risposta effettivo per l&#8217; <sup>i-esima<\/sup> osservazione<\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>\u0177 <sub>i<\/sub><\/strong> : il valore di risposta previsto basato sul modello di regressione lineare multipla<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Al contrario, la regressione lazo cerca di minimizzare quanto segue:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>RSS + \u03bb\u03a3|\u03b2 <sub>j<\/sub> |<\/strong><\/span><\/p>\n<p> <span style=\"color: #000000;\">dove <em>j<\/em> va da 1 a <em>p<\/em> variabili predittive e \u03bb \u2265 0.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Questo secondo termine nell&#8217;equazione \u00e8 noto come <em>penalit\u00e0 di ritiro<\/em> . Nella regressione al lazo, selezioniamo un valore per \u03bb che produce il test MSE (errore quadratico medio) pi\u00f9 basso possibile.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Questo tutorial fornisce un esempio passo passo di come eseguire la regressione lazo in Python.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 1: importa i pacchetti necessari<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Per prima cosa importeremo i pacchetti necessari per eseguire la regressione lazo in Python:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008000;\">import<\/span> pandas <span style=\"color: #008000;\">as<\/span> pd\n<span style=\"color: #008000;\">from<\/span> numpy <span style=\"color: #008000;\">import<\/span> arange\n<span style=\"color: #008000;\">from<\/span> sklearn. <span style=\"color: #3366ff;\">linear_model<\/span> <span style=\"color: #008000;\">import<\/span> LassoCV\n<span style=\"color: #008000;\">from<\/span> sklearn. <span style=\"color: #3366ff;\">model_selection<\/span> <span style=\"color: #008000;\">import<\/span> RepeatedKFold<\/strong><\/span><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 2: caricare i dati<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Per questo esempio utilizzeremo un set di dati chiamato <strong>mtcars<\/strong> , che contiene informazioni su 33 auto diverse. Utilizzeremo <strong>hp<\/strong> come variabile di risposta e le seguenti variabili come predittori:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">mpg<\/span><\/li>\n<li> <span style=\"color: #000000;\">peso<\/span><\/li>\n<li> <span style=\"color: #000000;\">merda<\/span><\/li>\n<li> <span style=\"color: #000000;\">qsec<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Il codice seguente mostra come caricare e visualizzare questo set di dati:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008080;\">#define URL where data is located<\/span>\nurl = \"https:\/\/raw.githubusercontent.com\/Statorials\/Python-Guides\/main\/mtcars.csv\"\n\n<span style=\"color: #008080;\">#read in data<\/span>\ndata_full = pd. <span style=\"color: #3366ff;\">read_csv<\/span> (url)\n\n<span style=\"color: #008080;\">#select subset of data\n<\/span>data = data_full[[\"mpg\", \"wt\", \"drat\", \"qsec\", \"hp\"]]\n\n<span style=\"color: #008080;\">#view first six rows of data<\/span>\ndata[0:6]\n\n\tmpg wt drat qsec hp\n0 21.0 2.620 3.90 16.46 110\n1 21.0 2.875 3.90 17.02 110\n2 22.8 2.320 3.85 18.61 93\n3 21.4 3.215 3.08 19.44 110\n4 18.7 3,440 3.15 17.02 175\n5 18.1 3.460 2.76 20.22 105<\/strong><\/span><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 3: adattare il modello di regressione lazo<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Successivamente, utilizzeremo la funzione <a href=\"https:\/\/scikit-learn.org\/stable\/modules\/generated\/sklearn.linear_model.RidgeCV.html\" target=\"_blank\" rel=\"noopener noreferrer\">LassoCV()<\/a> di sklearn per adattare il modello di regressione lazo e utilizzeremo la funzione <a href=\"https:\/\/scikit-learn.org\/stable\/modules\/generated\/sklearn.model_selection.RepeatedKFold.html\" target=\"_blank\" rel=\"noopener noreferrer\">RepeatedKFold()<\/a> per eseguire la convalida incrociata k-fold per trovare il valore alfa ottimale da utilizzare per il termine di penalit\u00e0.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><em><strong>Nota:<\/strong> in Python viene utilizzato il termine &#8220;alpha&#8221; al posto di &#8220;lambda&#8221;.<\/em><\/span><\/p>\n<p> <span style=\"color: #000000;\">Per questo esempio, sceglieremo k = 10 volte e ripeteremo il processo di convalida incrociata 3 volte.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Tieni inoltre presente che LassoCV() verifica solo i valori alfa 0,1, 1 e 10 per impostazione predefinita. Tuttavia, possiamo impostare il nostro intervallo alfa da 0 a 1 con incrementi di 0,01:<\/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 = data[[\"mpg\", \"wt\", \"drat\", \"qsec\"]]\ny = data[\"hp\"]\n\n<span style=\"color: #008080;\">#define cross-validation method to evaluate model\n<\/span>cv = RepeatedKFold(n_splits= <span style=\"color: #008000;\">10<\/span> , n_repeats= <span style=\"color: #008000;\">3<\/span> , random_state= <span style=\"color: #008000;\">1<\/span> )\n\n<span style=\"color: #008080;\">#define model\n<\/span>model = LassoCV(alphas= <span style=\"color: #3366ff;\">arange<\/span> (0, 1, 0.01), cv=cv, n_jobs=<\/strong><\/span> <span style=\"color: #008000;\"><strong>-1<\/strong><\/span> <span style=\"color: #000000;\"><strong>)\n\n<span style=\"color: #008080;\">#fit model\n<\/span>model. <span style=\"color: #3366ff;\">fit<\/span> (x,y)\n\n<span style=\"color: #008080;\">#display lambda that produced the lowest test MSE\n<\/span>print( <span style=\"color: #3366ff;\">model.alpha_<\/span> )\n\n0.99<\/strong><\/span><\/pre>\n<p> <span style=\"color: #000000;\">Il valore lambda che minimizza l&#8217;MSE del test risulta essere <strong>0,99<\/strong> .<\/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 di regressione lazo finale per fare previsioni su nuove osservazioni. Ad esempio, il codice seguente mostra come definire una nuova automobile con i seguenti attributi:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">mpg: 24<\/span><\/li>\n<li> <span style=\"color: #000000;\">peso: 2,5<\/span><\/li>\n<li> <span style=\"color: #000000;\">prezzo: 3,5<\/span><\/li>\n<li> <span style=\"color: #000000;\">qsec: 18,5<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Il codice seguente mostra come utilizzare il modello di regressione lazo adattato per prevedere il valore <em>hp<\/em> di questa nuova osservazione:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008080;\">#define new observation\n<span style=\"color: #000000;\">new = [24, 2.5, 3.5, 18.5]\n<\/span>\n#predict hp value using lasso regression model\n<span style=\"color: #000000;\">model. <span style=\"color: #3366ff;\">predict<\/span> ([new])\n<\/span>\n<span style=\"color: #000000;\">array([105.63442071])\n<\/span><\/span><\/strong><\/span><\/pre>\n<p> <span style=\"color: #000000;\">In base ai valori inseriti, il modello prevede che questa vettura avr\u00e0 un valore di <em>CV<\/em> pari a <strong>105,63442071<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Puoi trovare il codice Python completo utilizzato in questo esempio <a href=\"https:\/\/github.com\/Statorials\/Python-Guides\/blob\/main\/lasso_regression.py\" target=\"_blank\" rel=\"noopener noreferrer\">qui<\/a> .<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La regressione lazo \u00e8 un metodo che possiamo utilizzare per adattare un modello di regressione quando nei dati \u00e8 presente la multicollinearit\u00e0 . In poche parole, la regressione dei minimi quadrati tenta di trovare stime di coefficienti che minimizzino la somma residua dei quadrati (RSS): RSS = \u03a3(y i \u2013 \u0177 i )2 Oro: \u03a3 [&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>Regressione lazo in Python (passo dopo passo) - Statorials<\/title>\n<meta name=\"description\" content=\"Questo tutorial spiega come eseguire una regressione lazo 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\/regressione-lazo-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Regressione lazo in Python (passo dopo passo) - Statorials\" \/>\n<meta property=\"og:description\" content=\"Questo tutorial spiega come eseguire una regressione lazo in Python, incluso un esempio passo passo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-27T07:49:23+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\/regressione-lazo-in-python\/\",\"url\":\"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/\",\"name\":\"Regressione lazo in Python (passo dopo passo) - Statorials\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/it\/#website\"},\"datePublished\":\"2023-07-27T07:49:23+00:00\",\"dateModified\":\"2023-07-27T07:49:23+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae\"},\"description\":\"Questo tutorial spiega come eseguire una regressione lazo in Python, incluso un esempio passo passo.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Casa\",\"item\":\"https:\/\/statorials.org\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Regressione lazo in python (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":"Regressione lazo in Python (passo dopo passo) - Statorials","description":"Questo tutorial spiega come eseguire una regressione lazo 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\/regressione-lazo-in-python\/","og_locale":"it_IT","og_type":"article","og_title":"Regressione lazo in Python (passo dopo passo) - Statorials","og_description":"Questo tutorial spiega come eseguire una regressione lazo in Python, incluso un esempio passo passo.","og_url":"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/","og_site_name":"Statorials","article_published_time":"2023-07-27T07:49:23+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\/regressione-lazo-in-python\/","url":"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/","name":"Regressione lazo in Python (passo dopo passo) - Statorials","isPartOf":{"@id":"https:\/\/statorials.org\/it\/#website"},"datePublished":"2023-07-27T07:49:23+00:00","dateModified":"2023-07-27T07:49:23+00:00","author":{"@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae"},"description":"Questo tutorial spiega come eseguire una regressione lazo in Python, incluso un esempio passo passo.","breadcrumb":{"@id":"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/it\/regressione-lazo-in-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/it\/regressione-lazo-in-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Casa","item":"https:\/\/statorials.org\/it\/"},{"@type":"ListItem","position":2,"name":"Regressione lazo in python (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\/1200"}],"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=1200"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts\/1200\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/media?parent=1200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/categories?post=1200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/tags?post=1200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}