Inhoudsopgave:
Video: How to Learn from Little Data - Intro to Deep Learning #17 2024
Soms hebben de onbewerkte gegevens die u uit verschillende bronnen verkrijgt, niet de functies die nodig zijn om machine learning-taken uit te voeren. Wanneer dit gebeurt, moet u uw eigen functies maken om het gewenste resultaat te verkrijgen. Het creëren van een functie betekent niet dat gegevens uit de lucht worden gecreëerd. U maakt nieuwe functies van bestaande gegevens.
De noodzaak van het maken van functies
Een grote beperking van algoritmen voor het leren van machines is dat het onmogelijk kan zijn om een formule te raden die uw reactie zou kunnen koppelen aan de functies die u gebruikt. Soms gebeurt dit onvermogen om te raden, omdat je het antwoord niet kunt toewijzen met behulp van de informatie die je beschikbaar hebt (wat betekent dat je niet over de juiste informatie beschikt). In andere gevallen helpt de door u verstrekte informatie het algoritme niet goed te leren.
Als u bijvoorbeeld de prijs van onroerend goed modelleert, is de oppervlakte van het land redelijk voorspelbaar, omdat grotere objecten doorgaans meer kosten. Maar als u in plaats van het oppervlak uw algoritme voor machine-learning geeft met de lengte van de zijkanten van het land (de breedte- en lengtegraadcoördinaten van de hoeken), is het mogelijk dat uw algoritme niet weet wat te doen met de informatie die u heeft verstrekt. Sommige algoritmen kunnen de relatie tussen de functies vinden, maar de meeste algoritmen niet.
Het antwoord op dit probleem is het maken van functies. Feature-creatie is dat onderdeel van machine learning dat meer als een kunst dan als wetenschap wordt beschouwd, omdat het menselijke tussenkomst impliceert door de bestaande functies creatief te vermengen. U voert deze taak uit door middel van optellen, aftrekken, vermenigvuldigen en ratio om nieuwe afgeleide functies te genereren met meer voorspellend vermogen dan de originelen.
Het probleem goed kennen en uitvinden hoe een mens het probleem zou oplossen, maakt deel uit van het maken van functies. Dus, verbindend met het vorige voorbeeld, is het feit dat het grondoppervlak aansluit op de vastgoedprijs algemeen bekend. Als er een oppervlakte ontbreekt in uw functies wanneer u de waarde van een eigenschap probeert te raden, kunt u dergelijke informatie uit de bestaande gegevens herstellen - en dit verhoogt de prestaties van de voorspellingen.
Ongeacht of u op gezond verstand, algemene kennis of gespecialiseerde expertise vertrouwt, u kunt veel doen voor uw machine-algoritme als u eerst uitzoekt welke informatie het beste zou werken voor het probleem en vervolgens probeer het beschikbaar te hebben of haal het uit je eigenschappen.
Functies automatisch maken
U kunt automatisch een aantal nieuwe functies maken.Een manier om het automatisch creëren van functies te bereiken, is het gebruik van polynomiale expansie. Specifieke manieren zijn beschikbaar om polynomiale expansie te bereiken, zodat je automatisch functies creëert in zowel R als Python. Voorlopig moet je de concepten achter polynomiale expansie begrijpen.
Bij polynomiale expansie maakt u automatisch interacties tussen functies en maakt u tegelijkertijd krachten (bijvoorbeeld het berekenen van het kwadraat van een element). Interacties zijn afhankelijk van vermenigvuldiging van de functies. Door een nieuwe functie te maken met behulp van vermenigvuldiging, kunt u bijhouden hoe functies zich als geheel gedragen. Daarom helpt het om complexe relaties tussen uw functies in kaart te brengen die kunnen wijzen op speciale situaties.
Een goed voorbeeld van een interactie is het geluid van een auto en de prijs van de auto. Consumenten waarderen luidruchtige auto's niet tenzij ze een sportwagen kopen, in welk geval het motorgeluid een pluspunt is dat de eigenaar aan de kracht van de auto herinnert. Het maakt ook dat omstanders de coole auto opmerken, dus lawaai speelt een grote rol bij het uitkomen, omdat geluid zeker de aandacht van anderen zal trekken. Aan de andere kant is lawaai bij het besturen van een gezinsauto niet zo cool.
In een machine learning-applicatie, in een poging om de snelheid van de voorkeur voor een bepaalde auto te voorspellen, zijn kenmerken zoals ruis en de prijs van de auto zelf voorspellend. Het vermenigvuldigen van de twee waarden en het toevoegen ervan aan de reeks functies kan echter ondubbelzinnig verwijzen naar een leeralgoritme dat het doelwit een sportwagen is (wanneer u hoge geluidsniveaus vermenigvuldigt met een hoge prijs).
Bevoegdheden helpen door niet-lineaire relaties tot stand te brengen tussen de reactie en de functies, wat duidt op specifieke situaties.
Stel je een ander voorbeeld voor dat je de jaarlijkse uitgaven van een persoon moet voorspellen. Leeftijd is een goede voorspeller omdat als mensen oud en volwassen worden, hun levens- en gezinssituatie ook veranderen. Studenten beginnen arme mensen, maar vinden werk en kunnen een gezin stichten. Vanuit een algemeen oogpunt hebben uitgaven de neiging om te groeien, net als de leeftijd tot een bepaald punt. Pensioen markeert meestal een punt waarop de kosten de neiging hebben af te nemen. Leeftijd bevat dergelijke informatie, maar het is een functie die de neiging heeft om te groeien, en het relateren van uitgaven aan de groei ervan helpt niet om de inversie die op een bepaalde leeftijd plaatsvindt te beschrijven.
Door de kwadraatfunctie toe te voegen, kunt u een tegeneffect maken voor de leeftijd zelf, die in het begin klein is, maar snel groeit naarmate u ouder wordt. Het uiteindelijke effect is een parabool, met een initiële groei die wordt gekenmerkt door een piek in de kosten op een bepaalde leeftijd, en vervolgens een daling.
Zoals eerder vermeld, kan het vooraf weten van dergelijke dynamiek (geluid en sportwagen, consumptie en ouderdom) u helpen de juiste functies te creëren. Maar als je deze dynamiek van tevoren niet kent, zal polynomiale uitbreiding ze automatisch voor je creëren omdat, gezien een bepaalde volgorde, het interacties en krachten van die orde zal creëren. De volgorde wijst op het aantal vermenigvuldigingen en het maximale vermogen dat moet worden toegepast op de bestaande functies.
Dus een polynoomuitbreiding van orde 2 verhoogt alle functies naar de tweede macht en vermenigvuldigt elke afzonderlijke functie met alle andere. (U krijgt de vermenigvuldiging van alle combinaties van twee functies.) Het is duidelijk dat hoe hoger het aantal, hoe meer nieuwe functies worden gecreëerd, maar veel ervan zullen overbodig zijn en er gewoon toe bijdragen dat uw machine-algoritme de gegevens overmeestert.
Wanneer u polynomiale uitbreiding gebruikt, moet u letten op de explosie van functies die u aan het creëren bent. Krachten nemen lineair toe, dus als je vijf functies hebt en je een uitbreiding van orde 2 nodig hebt, wordt elke functie verhoogd tot de tweede macht. Het verhogen van de volgorde van één voegt gewoon een nieuwe power-functie toe voor elke originele functie. In plaats daarvan nemen interacties toe op basis van combinaties van de functies tot die volgorde.
Met vijf functies en een polynoomuitbreiding van opdracht 2 worden feitelijk alle tien unieke combinaties van de koppeling van de functies gemaakt. Om de volgorde tot 3 te verhogen, moeten alle unieke combinaties van twee variabelen worden gemaakt, plus de unieke combinaties van drie variabelen, dat wil zeggen 20 functies.