{"id":1174,"date":"2023-07-27T09:53:30","date_gmt":"2023-07-27T09:53:30","guid":{"rendered":"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/"},"modified":"2023-07-27T09:53:30","modified_gmt":"2023-07-27T09:53:30","slug":"deixe-sair-a-validacao-cruzada-em-python","status":"publish","type":"post","link":"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/","title":{"rendered":"Valida\u00e7\u00e3o cruzada leave-one-out em python (com exemplos)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\">Para avaliar o desempenho de um modelo em um conjunto de dados, precisamos medir at\u00e9 que ponto as previs\u00f5es feitas pelo modelo correspondem aos dados observados.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Um m\u00e9todo comumente usado para fazer isso \u00e9 conhecido como <a href=\"https:\/\/statorials.org\/pt\/deixe-uma-unica-validacao-cruzada\/\" target=\"_blank\" rel=\"noopener noreferrer\">Leave-One-Out Cross-Validation (LOOCV)<\/a> , que usa a seguinte abordagem:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Divida um conjunto de dados em um conjunto de treinamento e um conjunto de teste, usando todas as observa\u00e7\u00f5es, exceto uma, como parte do conjunto de treinamento.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>2.<\/strong> Crie um modelo usando apenas dados do conjunto de treinamento.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>3.<\/strong> Use o modelo para prever o valor de resposta da observa\u00e7\u00e3o exclu\u00edda do modelo e calcular o erro quadr\u00e1tico m\u00e9dio (MSE).<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>4.<\/strong> Repita este processo <em>n<\/em> vezes. Calcule o MSE de teste como a m\u00e9dia de todos os MSEs de teste.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Este tutorial fornece um exemplo passo a passo de como executar LOOCV para um determinado modelo em Python.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Etapa 1: carregue as bibliotecas necess\u00e1rias<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Primeiro, carregaremos as fun\u00e7\u00f5es e bibliotecas necess\u00e1rias para este exemplo:<\/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>Etapa 2: crie os dados<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">A seguir, criaremos um DataFrame do pandas que cont\u00e9m duas vari\u00e1veis preditoras, <sub>x1<\/sub> e <sub>x2<\/sub> , e uma \u00fanica vari\u00e1vel de resposta 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>Etapa 3: realizar a valida\u00e7\u00e3o cruzada Leave-One-Out<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">A seguir, ajustaremos um <a href=\"https:\/\/statorials.org\/pt\/regressao-linear-python\/\" target=\"_blank\" rel=\"noopener noreferrer\">modelo de regress\u00e3o linear m\u00faltipla<\/a> ao conjunto de dados e realizaremos LOOCV para avaliar o desempenho do modelo.<\/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;\">Pelo resultado, podemos perceber que o erro absoluto m\u00e9dio (MAE) foi de <strong>3,146<\/strong> . Ou seja, o erro absoluto m\u00e9dio entre a previs\u00e3o do modelo e os dados efetivamente observados \u00e9 3,146.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Em geral, quanto menor o MAE, melhor o modelo \u00e9 capaz de prever as observa\u00e7\u00f5es reais.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Outra m\u00e9trica comumente usada para avaliar o desempenho do modelo \u00e9 a raiz do erro quadr\u00e1tico m\u00e9dio (RMSE). O c\u00f3digo a seguir mostra como calcular essa m\u00e9trica usando 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;\">A partir do resultado, podemos ver que a raiz do erro quadr\u00e1tico m\u00e9dio (RMSE) foi de <strong>3,619<\/strong> . Quanto menor o RMSE, melhor o modelo \u00e9 capaz de prever as observa\u00e7\u00f5es reais.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Na pr\u00e1tica, normalmente ajustamos v\u00e1rios modelos diferentes e comparamos o RMSE ou MAE de cada modelo para decidir qual modelo produz as taxas de erro de teste mais baixas e \u00e9, portanto, o melhor modelo a ser usado.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Recursos adicionais<\/strong><\/span><\/h3>\n<p> <a href=\"https:\/\/statorials.org\/pt\/deixe-uma-unica-validacao-cruzada\/\" target=\"_blank\" rel=\"noopener noreferrer\">Uma r\u00e1pida introdu\u00e7\u00e3o \u00e0 valida\u00e7\u00e3o cruzada Leave-One-Out (LOOCV)<\/a><br \/> <a href=\"https:\/\/statorials.org\/pt\/regressao-linear-python\/\" target=\"_blank\" rel=\"noopener noreferrer\">Um guia completo para regress\u00e3o linear em Python<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para avaliar o desempenho de um modelo em um conjunto de dados, precisamos medir at\u00e9 que ponto as previs\u00f5es feitas pelo modelo correspondem aos dados observados. Um m\u00e9todo comumente usado para fazer isso \u00e9 conhecido como Leave-One-Out Cross-Validation (LOOCV) , que usa a seguinte abordagem: 1. Divida um conjunto de dados em um conjunto de [&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":[],"class_list":["post-1174","post","type-post","status-publish","format-standard","hentry","category-guia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Valida\u00e7\u00e3o cruzada Leave-One-Out em Python (com exemplos)<\/title>\n<meta name=\"description\" content=\"Este tutorial explica como realizar valida\u00e7\u00e3o cruzada autom\u00e1tica em Python, incluindo um exemplo passo a 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\/pt\/deixe-sair-a-validacao-cruzada-em-python\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Valida\u00e7\u00e3o cruzada Leave-One-Out em Python (com exemplos)\" \/>\n<meta property=\"og:description\" content=\"Este tutorial explica como realizar valida\u00e7\u00e3o cruzada autom\u00e1tica em Python, incluindo um exemplo passo a passo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-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=\"Dr. benjamim anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dr. benjamim anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/\",\"url\":\"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/\",\"name\":\"Valida\u00e7\u00e3o cruzada Leave-One-Out em Python (com exemplos)\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/pt\/#website\"},\"datePublished\":\"2023-07-27T09:53:30+00:00\",\"dateModified\":\"2023-07-27T09:53:30+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666\"},\"description\":\"Este tutorial explica como realizar valida\u00e7\u00e3o cruzada autom\u00e1tica em Python, incluindo um exemplo passo a passo.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Lar\",\"item\":\"https:\/\/statorials.org\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Valida\u00e7\u00e3o cruzada leave-one-out em python (com exemplos)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/statorials.org\/pt\/#website\",\"url\":\"https:\/\/statorials.org\/pt\/\",\"name\":\"Statorials\",\"description\":\"O seu guia para a literacia estat\u00edstica!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/statorials.org\/pt\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666\",\"name\":\"Dr. benjamim anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/statorials.org\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"contentUrl\":\"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"caption\":\"Dr. benjamim anderson\"},\"description\":\"Ol\u00e1, sou Benjamin, um professor aposentado de estat\u00edstica que se tornou professor dedicado na Statorials. Com vasta experi\u00eancia e conhecimento na \u00e1rea de estat\u00edstica, estou empenhado em compartilhar meu conhecimento para capacitar os alunos por meio de Statorials. Saber mais\",\"sameAs\":[\"https:\/\/statorials.org\/pt\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Valida\u00e7\u00e3o cruzada Leave-One-Out em Python (com exemplos)","description":"Este tutorial explica como realizar valida\u00e7\u00e3o cruzada autom\u00e1tica em Python, incluindo um exemplo passo a 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\/pt\/deixe-sair-a-validacao-cruzada-em-python\/","og_locale":"pt_PT","og_type":"article","og_title":"Valida\u00e7\u00e3o cruzada Leave-One-Out em Python (com exemplos)","og_description":"Este tutorial explica como realizar valida\u00e7\u00e3o cruzada autom\u00e1tica em Python, incluindo um exemplo passo a passo.","og_url":"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/","og_site_name":"Statorials","article_published_time":"2023-07-27T09:53:30+00:00","author":"Dr. benjamim anderson","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Dr. benjamim anderson","Tempo estimado de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/","url":"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/","name":"Valida\u00e7\u00e3o cruzada Leave-One-Out em Python (com exemplos)","isPartOf":{"@id":"https:\/\/statorials.org\/pt\/#website"},"datePublished":"2023-07-27T09:53:30+00:00","dateModified":"2023-07-27T09:53:30+00:00","author":{"@id":"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666"},"description":"Este tutorial explica como realizar valida\u00e7\u00e3o cruzada autom\u00e1tica em Python, incluindo um exemplo passo a passo.","breadcrumb":{"@id":"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/pt\/deixe-sair-a-validacao-cruzada-em-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Lar","item":"https:\/\/statorials.org\/pt\/"},{"@type":"ListItem","position":2,"name":"Valida\u00e7\u00e3o cruzada leave-one-out em python (com exemplos)"}]},{"@type":"WebSite","@id":"https:\/\/statorials.org\/pt\/#website","url":"https:\/\/statorials.org\/pt\/","name":"Statorials","description":"O seu guia para a literacia estat\u00edstica!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/statorials.org\/pt\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666","name":"Dr. benjamim anderson","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/statorials.org\/pt\/#\/schema\/person\/image\/","url":"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","contentUrl":"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","caption":"Dr. benjamim anderson"},"description":"Ol\u00e1, sou Benjamin, um professor aposentado de estat\u00edstica que se tornou professor dedicado na Statorials. Com vasta experi\u00eancia e conhecimento na \u00e1rea de estat\u00edstica, estou empenhado em compartilhar meu conhecimento para capacitar os alunos por meio de Statorials. Saber mais","sameAs":["https:\/\/statorials.org\/pt"]}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"_links":{"self":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/posts\/1174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/comments?post=1174"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/posts\/1174\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/media?parent=1174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/categories?post=1174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/tags?post=1174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}