{"id":3062,"date":"2023-07-19T09:55:30","date_gmt":"2023-07-19T09:55:30","guid":{"rendered":"https:\/\/statorials.org\/nl\/slag-r\/"},"modified":"2023-07-19T09:55:30","modified_gmt":"2023-07-19T09:55:30","slug":"slag-r","status":"publish","type":"post","link":"https:\/\/statorials.org\/nl\/slag-r\/","title":{"rendered":"Smote gebruiken voor onevenwichtige gegevens in r (met voorbeeld)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\"><span style=\"color: #000000;\">Bij het werken met machine learning- <a href=\"https:\/\/statorials.org\/nl\/regressie-versus-classificatie\/\" target=\"_blank\" rel=\"noopener\">classificatiealgoritmen<\/a> zullen de klassen in de dataset vaak uit balans zijn.<\/span><\/span><\/p>\n<p> <span style=\"color: #000000;\">Bijvoorbeeld:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">Een dataset met informatie over de vraag of universiteitsspelers wel of niet zijn opgeroepen voor de NBA zou ervoor kunnen zorgen dat 98% van de spelers niet wordt opgeroepen en dat 2% wordt opgeroepen.<\/span><\/li>\n<li> <span style=\"color: #000000;\">Een dataset met informatie over de vraag of pati\u00ebnten al dan niet kanker hebben, zou 99% van de pati\u00ebnten zonder kanker kunnen bevatten en slechts 1% met kanker.<\/span><\/li>\n<li> <span style=\"color: #000000;\">Een dataset met informatie over bankfraude kan 96% legitieme transacties en 4% frauduleuze transacties bevatten.<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Vanwege deze onevenwichtige klassen werkt het voorspellende model dat u bouwt mogelijk niet goed voor de minderheidsklasse.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Erger nog: de minderheidsklasse is vaak degene die we het liefst willen voorspellen.<\/span><\/p>\n<p> <span style=\"color: #000000;\">E\u00e9n manier om dit onevenwichtsprobleem op te lossen is het gebruik <strong>van de synthetische minderheidsoversamplingtechniek<\/strong> , vaak afgekort <strong>SMOTE<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Deze techniek omvat het cre\u00ebren van een nieuwe dataset door observaties uit de minderheidsklasse te overbemonsteren, wat een dataset oplevert met meer gebalanceerde klassen.<\/span><\/p>\n<p> <span style=\"color: #000000;\">De eenvoudigste manier om SMOTE in R te gebruiken is door de functie <strong>SMOTE()<\/strong> uit het <strong>DMwR-<\/strong> pakket te gebruiken.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><span style=\"color: #000000;\">Deze functie gebruikt de volgende basissyntaxis:<\/span><\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong>SMOTE(form, data, perc. <span style=\"color: #3366ff;\">over<\/span> = <span style=\"color: #008000;\">200<\/span> , perc. <span style=\"color: #3366ff;\">under<\/span> = <span style=\"color: #008000;\">200<\/span> , ...)\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Goud:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\"><strong>formulier<\/strong> : Een formule die het model beschrijft dat u wilt aanpassen<\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>data<\/strong> : Naam van het dataframe<\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>perc.over<\/strong> : getal dat bepaalt hoeveel extra gevallen van de minderheidsklasse worden gegenereerd<\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>perc.under<\/strong> : getal dat bepaalt hoeveel extra gevallen van de meerderheidsklasse worden gegenereerd<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Voorbeeld: SMOTE gebruiken in R<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Stel dat we de volgende dataset hebben met 100 <a href=\"https:\/\/statorials.org\/nl\/observatie-in-de-statistiek\/\" target=\"_blank\" rel=\"noopener\">waarnemingen<\/a> in R, waarbij 90 een klasse &#8222;Ja&#8220; hebben en 10 een klasse &#8222;Nee&#8220; voor de responsvariabele:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#make this example reproducible\n<\/span>set. <span style=\"color: #3366ff;\">seed<\/span> ( <span style=\"color: #008000;\">0<\/span> )\n\n<span style=\"color: #008080;\">#create data frame with one response variable and two predictor variables\n<\/span>df &lt;- data. <span style=\"color: #3366ff;\">frame<\/span> (y=rep(as. <span style=\"color: #3366ff;\">factor<\/span> (c(' <span style=\"color: #ff0000;\">Yes<\/span> ', ' <span style=\"color: #ff0000;\">No<\/span> ')), times=c( <span style=\"color: #008000;\">90<\/span> , <span style=\"color: #008000;\">10<\/span> )),\n                 x1=rnorm( <span style=\"color: #008000;\">100<\/span> ),\n                 x2=rnorm( <span style=\"color: #008000;\">100<\/span> ))\n\n<span style=\"color: #008080;\">#view first six rows of data frame\n<\/span>head(df)\n\n    y x1 x2\n1 Yes 1.2629543 0.7818592\n2 Yes -0.3262334 -0.7767766\n3 Yes 1.3297993 -0.6159899\n4 Yes 1.2724293 0.0465803\n5 Yes 0.4146414 -1.1303858\n6 Yes -1.5399500 0.5767188\n \n<span style=\"color: #008080;\">#view distribution of response variable\n<\/span>table(df$y)\n\n Drowned \n 10 90<\/strong><\/pre>\n<p> <span style=\"color: #000000;\"><span style=\"color: #000000;\">Dit is een klassiek voorbeeld van een ongebalanceerde dataset, omdat de responsvariabele die we voorspellen 90 waarnemingen heeft met de klasse &#8218;Ja&#8216; en slechts 10 waarnemingen met de klasse &#8218;Nee&#8216;.<\/span><\/span><\/p>\n<p> <span style=\"color: #000000;\">Om een meer gebalanceerde dataset te cre\u00ebren, kunnen we de <strong>SMOTE()<\/strong> functie uit het <strong>DMwR-<\/strong> pakket gebruiken:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008000;\">library<\/span> ( <span style=\"color: #000000;\">DMwR)\n\n<\/span><span style=\"color: #008080;\">#use SMOTE to create new dataset that is more balanced\n<\/span>new_df &lt;- SMOTE(y ~ ., df, perc. <span style=\"color: #3366ff;\">over<\/span> = <span style=\"color: #008000;\">2000<\/span> , perc. <span style=\"color: #3366ff;\">under<\/span> = <span style=\"color: #008000;\">400<\/span> )\n\n<span style=\"color: #008080;\">#view distribution of response variable in new dataset\n<\/span>table(new_df$y)\n\n Drowned \n210,800\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">De resulterende dataset bevat 210 waarnemingen met \u201cNee\u201d als klasse en 800 waarnemingen met \u201cJa\u201d als klasse.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Hier ziet u precies hoe de SMOTE-functie deze nieuwe dataset produceerde:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">Het <strong>perc.over-<\/strong> argument specificeerde dat we 2000\/100 (of 20) keer het aantal bestaande minderheidswaarnemingen aan de dataset wilden toevoegen. Omdat er 10 waarnemingen bestonden in de oorspronkelijke dataset, hebben we 20*10 = <strong>200 extra minderheidswaarnemingen<\/strong> toegevoegd.<\/span><\/li>\n<li> <span style=\"color: #000000;\">Het <strong>perc.under-<\/strong> argument specificeerde dat we het aantal meerderheidswaarnemingen gelijk wilden maken aan 400\/100 (of 4) keer het aantal minderheidswaarnemingen toegevoegd aan de bestaande minderheidswaarnemingen. Omdat er 200 extra minderheidswaarnemingen werden toegevoegd, hebben we het aantal meerderheidswaarnemingen gelijk gemaakt aan 200 * 4 = <strong>800 meerderheidswaarnemingen<\/strong> .<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Het eindresultaat is een dataset die nog steeds meer meerderheidsklassen bevat, maar nog steeds evenwichtiger is dan de oorspronkelijke dataset.<\/span><\/p>\n<p> <span style=\"color: #000000;\">U kunt nu het classificatiealgoritme van uw keuze aanpassen aan deze nieuwe dataset, die beter zou moeten presteren op de minderheidsklasse, omdat er meer observaties van de minderheidsklasse in deze nieuwe dataset zitten.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>Opmerking<\/strong> : speel gerust met de <strong>perc.over-<\/strong> en <strong>perc.under-<\/strong> argumenten in de SMOTE-functie om een dataset te krijgen die aan uw behoeften voldoet.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Aanvullende bronnen<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:<\/span><\/p>\n<p> <a href=\"https:\/\/statorials.org\/nl\/samenvattende-tabel-in-r\/\" target=\"_blank\" rel=\"noopener\">Hoe u samenvattende tabellen maakt in R<\/a><br \/> <a href=\"https:\/\/statorials.org\/nl\/hoe-gegevens-in-r-te-normaliseren\/\" target=\"_blank\" rel=\"noopener\">Hoe gegevens in R te normaliseren<\/a><br \/> <a href=\"https:\/\/statorials.org\/nl\/verwijder-uitschieters-r\/\" target=\"_blank\" rel=\"noopener\">Hoe uitschieters in R te verwijderen<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bij het werken met machine learning- classificatiealgoritmen zullen de klassen in de dataset vaak uit balans zijn. Bijvoorbeeld: Een dataset met informatie over de vraag of universiteitsspelers wel of niet zijn opgeroepen voor de NBA zou ervoor kunnen zorgen dat 98% van de spelers niet wordt opgeroepen en dat 2% wordt opgeroepen. Een dataset met [&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-3062","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>SMOTE gebruiken voor onevenwichtige gegevens in R (met voorbeeld) - Statorials<\/title>\n<meta name=\"description\" content=\"In deze tutorial wordt uitgelegd hoe u SMOTE kunt gebruiken voor onevenwichtige gegevens in R, inclusief een compleet 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\/slag-r\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SMOTE gebruiken voor onevenwichtige gegevens in R (met voorbeeld) - Statorials\" \/>\n<meta property=\"og:description\" content=\"In deze tutorial wordt uitgelegd hoe u SMOTE kunt gebruiken voor onevenwichtige gegevens in R, inclusief een compleet voorbeeld.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/nl\/slag-r\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-19T09:55: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\/slag-r\/\",\"url\":\"https:\/\/statorials.org\/nl\/slag-r\/\",\"name\":\"SMOTE gebruiken voor onevenwichtige gegevens in R (met voorbeeld) - Statorials\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/nl\/#website\"},\"datePublished\":\"2023-07-19T09:55:30+00:00\",\"dateModified\":\"2023-07-19T09:55:30+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219\"},\"description\":\"In deze tutorial wordt uitgelegd hoe u SMOTE kunt gebruiken voor onevenwichtige gegevens in R, inclusief een compleet voorbeeld.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/nl\/slag-r\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/nl\/slag-r\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/nl\/slag-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Thuis\",\"item\":\"https:\/\/statorials.org\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Smote gebruiken voor onevenwichtige gegevens in r (met voorbeeld)\"}]},{\"@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":"SMOTE gebruiken voor onevenwichtige gegevens in R (met voorbeeld) - Statorials","description":"In deze tutorial wordt uitgelegd hoe u SMOTE kunt gebruiken voor onevenwichtige gegevens in R, inclusief een compleet 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\/slag-r\/","og_locale":"de_DE","og_type":"article","og_title":"SMOTE gebruiken voor onevenwichtige gegevens in R (met voorbeeld) - Statorials","og_description":"In deze tutorial wordt uitgelegd hoe u SMOTE kunt gebruiken voor onevenwichtige gegevens in R, inclusief een compleet voorbeeld.","og_url":"https:\/\/statorials.org\/nl\/slag-r\/","og_site_name":"Statorials","article_published_time":"2023-07-19T09:55: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\/slag-r\/","url":"https:\/\/statorials.org\/nl\/slag-r\/","name":"SMOTE gebruiken voor onevenwichtige gegevens in R (met voorbeeld) - Statorials","isPartOf":{"@id":"https:\/\/statorials.org\/nl\/#website"},"datePublished":"2023-07-19T09:55:30+00:00","dateModified":"2023-07-19T09:55:30+00:00","author":{"@id":"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219"},"description":"In deze tutorial wordt uitgelegd hoe u SMOTE kunt gebruiken voor onevenwichtige gegevens in R, inclusief een compleet voorbeeld.","breadcrumb":{"@id":"https:\/\/statorials.org\/nl\/slag-r\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/nl\/slag-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/nl\/slag-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Thuis","item":"https:\/\/statorials.org\/nl\/"},{"@type":"ListItem","position":2,"name":"Smote gebruiken voor onevenwichtige gegevens in r (met voorbeeld)"}]},{"@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\/3062","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=3062"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/posts\/3062\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/media?parent=3062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/categories?post=3062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/tags?post=3062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}