{"id":1175,"date":"2023-07-27T09:53:30","date_gmt":"2023-07-27T09:53:30","guid":{"rendered":"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/"},"modified":"2023-07-27T09:53:30","modified_gmt":"2023-07-27T09:53:30","slug":"laat-er-een-kruisvalidatie-plaatsvinden-in-python","status":"publish","type":"post","link":"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/","title":{"rendered":"Leave-one-out kruisvalidatie in python (met voorbeelden)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\">Om de prestaties van een model op een dataset te evalueren, moeten we meten hoe goed de voorspellingen van het model overeenkomen met de waargenomen gegevens.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Een veelgebruikte methode om dit te doen staat bekend als <a href=\"https:\/\/statorials.org\/nl\/laat-een-enkele-kruisvalidatie-achter\/\" target=\"_blank\" rel=\"noopener noreferrer\">Leave-One-Out Cross-Validation (LOOCV)<\/a> , waarbij de volgende aanpak wordt gebruikt:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Splits een dataset op in een trainingsset en een testset, waarbij op \u00e9\u00e9n na alle observaties worden gebruikt als onderdeel van de trainingsset.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>2.<\/strong> Maak een model met alleen gegevens uit de trainingsset.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>3.<\/strong> Gebruik het model om de responswaarde te voorspellen van de waarneming die is uitgesloten van het model en bereken de gemiddelde kwadratische fout (MSE).<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>4.<\/strong> Herhaal dit proces <em>n<\/em> keer. Bereken de test-MSE als het gemiddelde van alle test-MSE&#8217;s.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Deze tutorial biedt een stapsgewijs voorbeeld van hoe u LOOCV voor een bepaald model in Python kunt uitvoeren.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Stap 1: Laad de benodigde bibliotheken<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Eerst laden we de functies en bibliotheken die nodig zijn voor dit voorbeeld:<\/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>Stap 2: Cre\u00eber de gegevens<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Vervolgens maken we een Panda DataFrame dat twee voorspellende variabelen bevat, <sub>x1<\/sub> en <sub>x2<\/sub> , en een enkele responsvariabele 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>Stap 3: Voer een Leave-One-Out-kruisvalidatie uit<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Vervolgens passen we een <a href=\"https:\/\/statorials.org\/nl\/lineaire-regressiepython\/\" target=\"_blank\" rel=\"noopener noreferrer\">meervoudig lineair regressiemodel<\/a> aan de dataset toe en voeren we LOOCV uit om de prestaties van het model te evalueren.<\/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;\">Uit het resultaat kunnen we zien dat de gemiddelde absolute fout (MAE) <strong>3,146<\/strong> was. Dat wil zeggen dat de gemiddelde absolute fout tussen de modelvoorspelling en de feitelijk waargenomen gegevens 3,146 bedraagt.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Over het algemeen geldt dat hoe lager de MAE, hoe beter een model feitelijke waarnemingen kan voorspellen.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Een andere veelgebruikte maatstaf om de prestaties van modellen te evalueren is de root mean square error (RMSE). De volgende code laat zien hoe u deze statistiek kunt berekenen met behulp van 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;\">Uit het resultaat kunnen we zien dat de root mean square error (RMSE) <strong>3,619<\/strong> was. Hoe lager de RMSE, hoe beter een model daadwerkelijke waarnemingen kan voorspellen.<\/span><\/p>\n<p> <span style=\"color: #000000;\">In de praktijk passen we doorgaans verschillende modellen aan en vergelijken we de RMSE of MAE van elk model om te beslissen welk model de laagste testfoutpercentages oplevert en daarom het beste model is om te gebruiken.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Aanvullende bronnen<\/strong><\/span><\/h3>\n<p> <a href=\"https:\/\/statorials.org\/nl\/laat-een-enkele-kruisvalidatie-achter\/\" target=\"_blank\" rel=\"noopener noreferrer\">Een korte introductie tot Leave-One-Out Cross-Validation (LOOCV)<\/a><br \/> <a href=\"https:\/\/statorials.org\/nl\/lineaire-regressiepython\/\" target=\"_blank\" rel=\"noopener noreferrer\">Een complete gids voor lineaire regressie in Python<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Om de prestaties van een model op een dataset te evalueren, moeten we meten hoe goed de voorspellingen van het model overeenkomen met de waargenomen gegevens. Een veelgebruikte methode om dit te doen staat bekend als Leave-One-Out Cross-Validation (LOOCV) , waarbij de volgende aanpak wordt gebruikt: 1. Splits een dataset op in een trainingsset en [&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-1175","post","type-post","status-publish","format-standard","hentry","category-gids"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Leave-One-Out kruisvalidatie in Python (met voorbeelden)<\/title>\n<meta name=\"description\" content=\"In deze tutorial wordt uitgelegd hoe u hands-off kruisvalidatie in Python uitvoert, inclusief een stapsgewijs voorbeeld.\" \/>\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\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Leave-One-Out kruisvalidatie in Python (met voorbeelden)\" \/>\n<meta property=\"og:description\" content=\"In deze tutorial wordt uitgelegd hoe u hands-off kruisvalidatie in Python uitvoert, inclusief een stapsgewijs voorbeeld.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-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=\"Dr.benjamin anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dr.benjamin anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/\",\"url\":\"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/\",\"name\":\"Leave-One-Out kruisvalidatie in Python (met voorbeelden)\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/nl\/#website\"},\"datePublished\":\"2023-07-27T09:53:30+00:00\",\"dateModified\":\"2023-07-27T09:53:30+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219\"},\"description\":\"In deze tutorial wordt uitgelegd hoe u hands-off kruisvalidatie in Python uitvoert, inclusief een stapsgewijs voorbeeld.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Thuis\",\"item\":\"https:\/\/statorials.org\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Leave-one-out kruisvalidatie in python (met voorbeelden)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/statorials.org\/nl\/#website\",\"url\":\"https:\/\/statorials.org\/nl\/\",\"name\":\"Statorials\",\"description\":\"Uw gids voor statistische competentie\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/statorials.org\/nl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219\",\"name\":\"Dr.benjamin anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/statorials.org\/nl\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"contentUrl\":\"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"caption\":\"Dr.benjamin anderson\"},\"description\":\"Ik ben Benjamin, een gepensioneerde hoogleraar statistiek die nu een toegewijde Statorials-lesgever is. Ik heb uitgebreide ervaring en expertise op het gebied van statistiek en ik ben vastbesloten om mijn kennis te delen met studenten via Statorials. Lees verder\",\"sameAs\":[\"http:\/\/statorials.org\/nl\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Leave-One-Out kruisvalidatie in Python (met voorbeelden)","description":"In deze tutorial wordt uitgelegd hoe u hands-off kruisvalidatie in Python uitvoert, inclusief een stapsgewijs voorbeeld.","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\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/","og_locale":"de_DE","og_type":"article","og_title":"Leave-One-Out kruisvalidatie in Python (met voorbeelden)","og_description":"In deze tutorial wordt uitgelegd hoe u hands-off kruisvalidatie in Python uitvoert, inclusief een stapsgewijs voorbeeld.","og_url":"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/","og_site_name":"Statorials","article_published_time":"2023-07-27T09:53:30+00:00","author":"Dr.benjamin anderson","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Dr.benjamin anderson","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/","url":"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/","name":"Leave-One-Out kruisvalidatie in Python (met voorbeelden)","isPartOf":{"@id":"https:\/\/statorials.org\/nl\/#website"},"datePublished":"2023-07-27T09:53:30+00:00","dateModified":"2023-07-27T09:53:30+00:00","author":{"@id":"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219"},"description":"In deze tutorial wordt uitgelegd hoe u hands-off kruisvalidatie in Python uitvoert, inclusief een stapsgewijs voorbeeld.","breadcrumb":{"@id":"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/nl\/laat-er-een-kruisvalidatie-plaatsvinden-in-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Thuis","item":"https:\/\/statorials.org\/nl\/"},{"@type":"ListItem","position":2,"name":"Leave-one-out kruisvalidatie in python (met voorbeelden)"}]},{"@type":"WebSite","@id":"https:\/\/statorials.org\/nl\/#website","url":"https:\/\/statorials.org\/nl\/","name":"Statorials","description":"Uw gids voor statistische competentie","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/statorials.org\/nl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219","name":"Dr.benjamin anderson","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/statorials.org\/nl\/#\/schema\/person\/image\/","url":"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","contentUrl":"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","caption":"Dr.benjamin anderson"},"description":"Ik ben Benjamin, een gepensioneerde hoogleraar statistiek die nu een toegewijde Statorials-lesgever is. Ik heb uitgebreide ervaring en expertise op het gebied van statistiek en ik ben vastbesloten om mijn kennis te delen met studenten via Statorials. Lees verder","sameAs":["http:\/\/statorials.org\/nl"]}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"_links":{"self":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/posts\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/comments?post=1175"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/posts\/1175\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/media?parent=1175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/categories?post=1175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/tags?post=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}