Feature Selection in Machine Learning

Machine Learning

Shaurya Lalwani

Follow

Jul 10, 2020 – 7 min read

Photo by Louis Hansel @shotsoflouis on Unsplash

In de echte wereld, zijn gegevens niet zo schoon als vaak wordt aangenomen. Dat is waar alle data mining en data wrangling om de hoek komen kijken; om inzichten op te bouwen uit de gegevens die zijn gestructureerd met behulp van query’s, nu waarschijnlijk bepaalde ontbrekende waarden bevatten en mogelijke patronen vertonen die met het blote oog niet te zien zijn. Dat is waar Machine Learning om de hoek komt kijken: Om te controleren op patronen en gebruik te maken van die patronen om uitkomsten te voorspellen met behulp van deze nieuw begrepen relaties in de gegevens.

Om de diepte van het algoritme te begrijpen, moet men de variabelen in de gegevens doorlezen, en wat die variabelen vertegenwoordigen. Dit begrijpen is belangrijk omdat je je uitkomsten moet bewijzen, gebaseerd op je begrip van de gegevens. Als uw gegevens vijf, of zelfs vijftig variabelen bevatten, laten we zeggen dat u in staat bent ze allemaal door te nemen. Maar wat als het 200 variabelen bevat? U hebt niet de tijd om elke variabele door te nemen. Bovendien werken diverse algoritmen niet met categorische gegevens, zodat u alle categorische kolommen moet omzetten in kwantitatieve variabelen (ze zien er kwantitatief uit, maar de metriek zal rechtvaardigen dat ze categorisch zijn), om ze in het model te duwen. Hierdoor neemt het aantal variabelen in je gegevens toe, en nu zit je met 500 variabelen. Hoe ga je daarmee om? Je zou kunnen denken dat dimensionaliteitsreductie meteen het antwoord is. Algoritmen voor dimensionaliteitsreductie zullen de dimensies reduceren, maar de interpreteerbaarheid is niet zo goed. Wat als ik u vertel dat er andere technieken zijn, die kenmerken kunnen elimineren, en het zou nog steeds gemakkelijk zijn om de behouden kenmerken te begrijpen en te interpreteren?

Afhankelijk van of de analyse is gebaseerd op regressie of classificatie, kunnen de technieken voor feature selectie verschillen/variëren, maar het algemene idee van hoe het te implementeren blijft hetzelfde.

Hier volgen enkele Feature Selectie technieken om dit probleem aan te pakken:

Variabelen die sterk met elkaar gecorreleerd zijn, geven dezelfde informatie aan het model, en daarom wordt het onnodig om ze allemaal op te nemen in onze analyse. Bijvoorbeeld: Als een dataset een kenmerk “Browsing Time” bevat, en een ander genaamd “Data Used while Browsing”, dan kun je je voorstellen dat deze twee variabelen tot op zekere hoogte gecorreleerd zullen zijn, en we zouden deze hoge correlatie zien, zelfs als we een onbevooroordeelde steekproef van de gegevens nemen. In zo’n geval zou slechts één van deze variabelen als voorspeller in het model aanwezig hoeven te zijn, want als we ze allebei gebruiken, zal het model over-fit raken en bevooroordeeld raken ten opzichte van deze specifieke eigenschap(pen).

Photo by Akin Cakiner on Unsplash

P-Values

In algoritmen zoals Lineaire Regressie, een initieel statistisch model is altijd een goed idee, omdat het helpt bij het visualiseren van het belang van kenmerken, met behulp van hun P-waarden die zijn verkregen met behulp van dat model. Bij het instellen van een significantieniveau, controleren wij de verkregen P-waarden, en indien deze waarde lager is dan het significantieniveau, toont dit aan dat het kenmerk significant is, d.w.z. dat een verandering in deze waarde waarschijnlijk een verandering in de waarde van het Doel zal te zien geven.

Foto door Joshua Eckstein op Unsplash

Forward Selection

Forward Selection is een techniek waarbij stapsgewijze regressie wordt gebruikt. Het model begint dus vanaf nul te bouwen, d.w.z. een leeg model, en vervolgens wordt bij elke iteratie een variabele toegevoegd, zodanig dat het model dat wordt gebouwd een verbetering te zien geeft. Welke variabele in elke iteratie wordt toegevoegd, wordt bepaald aan de hand van de significantie ervan, en die kan worden berekend aan de hand van diverse meeteenheden, waarvan de P-waarde die wordt verkregen uit een initieel statistisch model dat met alle variabelen is opgebouwd, een veel voorkomende is. Soms kan voorwaartse selectie een over-fit veroorzaken omdat sterk gecorreleerde variabelen aan het model kunnen worden toegevoegd, zelfs wanneer zij het model van dezelfde gegevens voorzien (maar het model een verbetering te zien geeft).

Photo by Edu Grande on Unsplash

Backward Elimination

Backward Elimination houdt ook een stapsgewijze selectie van kenmerken in, op een manier die tegenovergesteld is aan die van de voorwaartse selectie. In dit geval begint het initiële model met alle onafhankelijke variabelen, en één voor één worden deze variabelen geëlimineerd (één per iteratie), indien zij geen waarde leveren aan het nieuw gevormde regressiemodel in elke iteratie. Ook dit gebeurt op basis van de P-waarden die met het aanvankelijke statistische model worden verkregen, en op basis van deze P-waarden worden de kenmerken uit het model geëlimineerd. Ook bij deze methode is er onzekerheid over de verwijdering van sterk gecorreleerde variabelen.

Photo by Markus Spiske on Unsplash

Recursive Feature Elimination (RFE)

RFE is een veelgebruikte techniek/algoritme om een exact aantal significante features te selecteren, soms om een bepaald aantal “belangrijkste” kenmerken te verklaren die van invloed zijn op de business, en soms als methode om een zeer groot aantal kenmerken (zeg zo’n 200-400) terug te brengen tot alleen die kenmerken die ook maar een beetje invloed hebben op het model, en de rest te elimineren. RFE maakt gebruik van een rangordesysteem, om de rangorde van de kenmerken in de dataset aan te geven, en deze rangordes worden gebruikt om kenmerken in een recursieve lus te elimineren, op basis van de onderlinge collineariteit, en natuurlijk, het belang van deze kenmerken in het model. Naast het rangschikken van de kenmerken, kan RFE laten zien of deze kenmerken belangrijk zijn of niet, zelfs voor het geselecteerde aantal kenmerken (omdat het heel goed mogelijk is dat het geselecteerde aantal, dat wij hebben gekozen, niet het optimale aantal belangrijke kenmerken vertegenwoordigt, en dat het optimale aantal kenmerken meer of minder kan zijn dan het door de gebruiker gekozen aantal).

Photo by Andrew Seaman on Unsplash

Charted Feature Importance

Wanneer we het hebben over de interpreteerbaarheid van machine learning algoritmen, hebben we het meestal over lineaire regressie (omdat we het belang van kenmerken kunnen analyseren met behulp van de P-waarden) en beslisboom (die het belang van kenmerken praktisch laat zien in de vorm van een boom, die ook de hiërarchie van belangrijkheid toont), maar aan de andere kant gebruiken we vaak de variabele belangrijkheid grafiek, om de variabelen en de “hoeveelheid van hun belang” te plotten, in algoritmen zoals Random Forest Classifier, Light Gradient Boosting Machine, en XG Boost. Dit is vooral nuttig wanneer een goed gestructureerd belang van kenmerken moet worden gepresenteerd aan een bedrijf dat wordt geanalyseerd.

Foto door Robert Anasch op Unsplash

Regularisatie

Regularisatie wordt gedaan om de afweging tussen bias en variantie te controleren. De bias geeft aan hoeveel het model heeft overgefitted op de trainingsdataset. Variantie vertelt ons hoe verschillend de voorspellingen waren op de training- en de testdataset. In het ideale geval moeten zowel bias als variantie worden verminderd. Regularisatie komt hier om de dag te redden! Er zijn hoofdzakelijk twee soorten regularisatietechnieken:

L1 Regularisatie – Lasso: Lasso straft de bètacoëfficiënten van het model af om hun belang in het model te veranderen, en kan ze zelfs grounden (in nullen veranderen, d.w.z. deze variabelen in feite uit het uiteindelijke model verwijderen). Over het algemeen wordt Lasso gebruikt wanneer u constateert dat uw gegevensverzameling een groot aantal variabelen bevat, en u een aantal daarvan moet verwijderen om beter te begrijpen hoe de belangrijke kenmerken uw model beïnvloeden (d.w.z. de kenmerken die uiteindelijk door Lasso worden geselecteerd, en hun belang wordt toegekend).

L2 Regularisatie – Ridge: De functie van Ridge is om alle variabelen te behouden, d.w.z. alle variabelen te gebruiken om het model op te bouwen, en ze tegelijkertijd een dusdanig belang toe te kennen dat er een verbetering is in de prestaties van het model. Ridge is een goede keuze wanneer het aantal variabelen in de dataset laag is, en al die variabelen dus nodig zijn om de verkregen inzichten en voorspelde doelresultaten te interpreteren.

Omdat Ridge alle variabelen intact houdt, en Lasso beter werk levert bij het toekennen van belang aan de variabelen, werd een combinatie van beide, bekend als Elastic-Net, ontwikkeld als een manier om een algoritme te ontwikkelen, door de beste eigenschappen van Ridge en Lasso te combineren. Elastic-Net wordt op die manier de ideale keuze.

Foto door Hunter Harritt op Unsplash

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.