Indholdsfortegnelse:
Video: AI - Most People Don't Realize What's Coming - Artificial Technology - Artificial Intelligence 2025
Nogle gange vil de rå data, du får fra forskellige kilder, ikke have de funktioner, der er nødvendige for at udføre maskinindlæringsopgaver. Når dette sker, skal du oprette dine egne funktioner for at opnå det ønskede resultat. Oprettelse af en funktion betyder ikke at skabe data fra tynd luft. Du opretter nye funktioner fra eksisterende data.
Forstå behovet for at oprette funktioner
En stor begrænsning af algoritmer til maskinindlæring er, at det kan være umuligt at gætte en formel, der kan forbinde dit svar på de funktioner, du bruger. Nogle gange er denne manglende evne til at gætte, fordi du ikke kan kortlægge svaret ved hjælp af de oplysninger, du har til rådighed (hvilket betyder at du ikke har de rigtige oplysninger). I andre tilfælde hjælper de angivne oplysninger ikke algoritmen med at lære korrekt.
For eksempel, hvis du modellerer prisen på ejendomsejendomme, er overfladen af jorden ret forudsigelig, fordi større ejendomme har tendens til at koste mere. Men hvis du i stedet for overfladen giver din maskininlæringsalgoritme med længden af landets sider (bredde- og længdegradskoordinaterne for sine hjørner), kan din algoritme måske ikke finde ud af, hvad du skal gøre med de oplysninger, du har angivet. Nogle algoritmer vil klare at finde forholdet mellem funktionerne, men de fleste algoritmer vil ikke.
Svaret på dette problem er oprettelse af funktioner. Funktionsskabelse er den del af maskinindlæring, der betragtes som mere en kunst end en videnskab, fordi det indebærer menneskelig indgriben ved kreativt at blande de eksisterende funktioner. Du udfører denne opgave ved hjælp af addition, subtraktion, multiplikation og forhold for at generere nye afledte funktioner med mere prædiktiv effekt end originalerne.
At kende problemet godt og finde ud af, hvordan et menneske vil løse det, er en del af funktionalisering. Så, at forbinde til det foregående eksempel er den kendsgerning, at jordoverfladen forbinder ejendomsprisen, almindelig viden. Hvis der mangler overflade fra dine egenskaber, når du forsøger at gætte værdien af en ejendom, kan du gendanne sådanne oplysninger fra de eksisterende data - og dermed øger prædikternes præstation.
Uanset om du er afhængig af sund fornuft, almindelig viden eller specialiseret ekspertise, kan du gøre meget for din maskinalgoritme, hvis du først regner ud, hvilke oplysninger der skal fungere bedst for problemet og derefter Prøv at få den tilgængelig eller udlede den blandt dine funktioner.
Oprettelse af funktioner automatisk
Du kan oprette nogle nye funktioner automatisk.En måde at opnå automatisk funktionsskabelse på er at bruge polynomial ekspansion. Specifikke måder er tilgængelige for at opnå polynomial ekspansion, så du opretter funktioner automatisk i både R og Python. For øjeblikket er du nødt til at forstå begreberne bag polynomial ekspansion.
I polynomial ekspansion skaber du automatisk interaktioner mellem funktioner og skaber kræfter (f.eks. Beregning af firkanten af en funktion). Interaktioner afhænger af multiplikation af funktionerne. Oprettelse af en ny funktion ved hjælp af multiplikation hjælper med at holde styr på, hvordan funktionerne har tendens til at opføre sig som en helhed. Derfor hjælper det med at kortlægge komplekse forhold mellem dine funktioner, der kan antydes i særlige situationer.
Et godt eksempel på en interaktion er lyden fra en bil og prisen på bilen. Forbrugerne sætter pris på støjende biler, medmindre de køber en sportsvogn, i hvilket tilfælde motorstøj er et plus, der minder ejeren af bilens kraft. Det gør også tilhængere opmærksom på den seje bil, så lyden spiller en stor rolle i at vise, fordi støj sikkert vil tiltrække andres opmærksomhed. På den anden side er støj, når du kører en familiebil, ikke så cool.
I en maskinindlæringsapplikation er der i sig selv forudsigelser, som f.eks. Støj og bilens pris, når man forsøger at forudsige præference for en bestemt bil. Imidlertid kan multiplicering af de to værdier og tilføjelse af dem til sæt af funktioner utvivlsomt antydes til en læringsalgoritme, at målet er en sportsvogn (når du multiplicerer høje støjniveauer med en høj pris).
Styrkes hjælp ved at skabe ikke-lineære relationer mellem svaret og funktionerne, der antyder bestemte situationer.
Som et andet eksempel, forestil dig at du skal forudsige en persons årlige udgifter. Alder er en god forudsigelse, fordi som folk bliver gamle og modne, ændrer deres livs- og familiesituation også. Studerende begynder fattige, men så finder du arbejde og kan opbygge en familie. Ud fra et generelt synspunkt har udgifterne tendens til at vokse som alder indtil et bestemt tidspunkt. Pensionering markerer normalt et punkt, hvor udgifterne tendens til at falde. Alder indeholder sådanne oplysninger, men det er en funktion, der har tendens til at vokse, og omkostningsrelaterede udgifter til væksten hjælper ikke med at beskrive inversionen, som opstår i en vis alder.
Tilføjelse af den kvadrede funktion hjælper med at skabe en modvirkning, der forældrer sig selv, hvilket er lille i begyndelsen, men vokser hurtigt med alderen. Den endelige effekt er en parabola, med en initial vækst præget af en topp i udgifter i en vis alder, og derefter et fald.
Som nævnt i begyndelsen, kan man ved forudgående viden om denne dynamik (støj og sportsvogn, forbrug og ældre alder) hjælpe dig med at skabe de rigtige funktioner. Men hvis du ikke kender disse dynamikker på forhånd, vil polynomialudvidelsen automatisk oprette dem for dig, fordi det i givet fald vil skabe interaktioner og beføjelser i den ordre. Ordren vil pege på antallet af multiplikationer og den maksimale effekt, der skal gælde for de eksisterende funktioner.
Så en polynomisk udvidelse af rækkefølge 2 løfter alle funktionerne til den anden kraft og multiplicerer hver enkelt funktion af alle de andre. (Du får multiplikationen af alle kombinationer af to funktioner.) Jo højere jo antallet, jo flere nye funktioner vil blive oprettet, men mange af dem vil være overflødige og bidrager kun til at gøre din maskininlæringsalgoritme overfit dataene.
Når du bruger polynomial ekspansion, skal du være opmærksom på eksplosionen af funktioner, du opretter. Kraften øges lineært, så hvis du har fem funktioner, og du har brug for en udvidelse af rækkefølge 2, hæves hver funktion op til den anden effekt. Forøgelse af rækkefølgen af en tilføjer blot en ny effektfunktion for hver originalfunktion. I stedet øges interaktionerne baseret på kombinationer af funktionerne op til den rækkefølge.
Faktisk, med fem funktioner og en polynomial ekspansion af rækkefølge 2, oprettes alle ti unikke kombinationer af koblingen af funktionerne. Forøgelse af ordren til 3 kræver oprettelse af alle de unikke kombinationer af to variabler plus de unikke kombinationer af tre variabler, det vil sige 20 funktioner.