Slumpmässiga skogar och val av arkitekturer
Experimentering med arkitekturer är ofta ett viktigt fokus för att skapa effektiva moderna modeller. Vi har gjort det till en grundläggande nivå med beslutsträd, men den enda gränsen för detta är vår fantasi, och kanske vår dators minne. Att tänka mer brett på beslutsträd resulterade i en mycket populär modellarkitektur som minskar beslutsträdens tendens att överanpassa data.
Vad är en slumpmässig skog?
En slumpmässig skog är en samling beslutsträd som används tillsammans för att uppskatta vilken etikett ett exempel ska tilldelas. Om vi till exempel skulle träna en slumpmässig skog för att förutsäga medaljvinnare kan vi träna 100 olika beslutsträd. För att göra en förutsägelse använder vi alla träd oberoende av varandra. Dessa skulle effektivt "rösta" för om idrottaren skulle vinna en medalj, vilket ger ett slutgiltigt beslut.
Hur tränas en slumpmässig skog?
Slumpmässiga skogar bygger på tanken att även om ett enda beslutsträd är mycket partiskt, eller överanpassat, om vi tränar flera beslutsträd, kommer de att vara partiska på olika sätt. Detta kräver att varje träd tränas separat och var och en på en något annorlunda träningsuppsättning.
För att träna ett enda beslutsträd extraheras ett visst antal prover – idrottare i vårt scenario – från hela träningsuppsättningen. Varje exempel kan väljas mer än en gång och detta sker slumpmässigt. Trädet tränas sedan på standard sätt. Den här processen upprepas för varje träd. När varje träd får en annan kombination av träningsexempel tränas varje träd och är partiskt på olika sätt än de andra.
Fördelar med slumpmässig skog
Prestandan hos slumpmässiga skogar är ofta imponerande, så jämförelser görs ofta bäst mot neurala nätverk, som är en annan populär modelltyp med höga prestanda. Till skillnad från neurala nätverk är slumpmässiga skogsmodeller lätta att träna: moderna ramverk ger användbara metoder som gör att du bara kan göra det i några få kodrader. Slumpmässiga skogar är också snabba att träna och behöver inte stora datauppsättningar för att fungera bra. Detta skiljer dem från neurala nätverk, vilket ofta kan ta minuter eller dagar att träna, kräver omfattande erfarenhet och kräver ofta mycket stora datamängder. Arkitekturbesluten för slumpmässiga skogar är, även om de är mer komplexa än modeller som linjär regression, mycket enklare än neurala nätverk.
Nackdelar med slumpmässig skog
Den största nackdelen med slumpmässiga skogar är att de är svåra att förstå. Mer specifikt, även om dessa modeller är helt transparenta– kan varje träd inspekteras och förstås – de innehåller ofta så många träd att det är praktiskt taget omöjligt.
Hur kan jag anpassa dessa arkitekturer?
Liksom flera modeller har slumpmässiga skogar olika arkitekturalternativ. Det enklaste att tänka på är skogens storlek: hur många träd som ingår, tillsammans med storleken på dessa träd. Det skulle till exempel vara möjligt att begära en skog för att förutsäga medaljvinnare som innehåller 100 träd, var och en med ett maximalt djup på sex noder. Detta innebär att det slutliga beslutet om huruvida en idrottare kommer att vinna en medalj måste fattas med högst sex "if"-uttalanden.
Som vi redan har lärt oss gör en ökning av storleken på ett träd (när det gäller djup eller antal löv) det mer sannolikt att överanpassa de data som det tränas på. Den här begränsningen gäller även för slumpmässiga skogar. Men med slumpmässiga skogar kan vi motverka detta genom att öka antalet träd, förutsatt att varje träd kommer att vara partiskt på ett annat sätt. Vi kan också begränsa varje träd till endast ett visst antal funktioner, eller genom att inte tillåta att löv skapas när det bara skulle göra en marginell skillnad för träningsprestandan. Möjligheten för en slumpmässig skog att göra bra förutsägelser är inte oändlig. Vid något tillfälle ger en ökning av storleken och antalet träd ingen ytterligare förbättring på grund av den begränsade variationen av träningsdata som vi har.