Undantagna data och korsvalidering
En av de största utmaningarna inom prediktiv analys är att veta hur en tränad modell kommer att fungera på data som den aldrig har sett förut. Med andra ord, hur väl modellen har lärt sig sanna mönster jämfört med om den bara har memorerat träningsdata. Undantagna data och korsvalidering är effektiva tekniker för att se till att modellen inte bara memorerar utan faktiskt lär sig generaliserade mönster.
När du konfigurerar ditt experiment kan du välja om träningsdata och undantagna data ska delas slumpmässigt eller med en speciell metod som används för att skapa tidskänsliga modeller.
Testning av modeller för memorering kontra generalisering
Frågan om hur väl en modell kommer att prestera i den verkliga världen, motsvarar frågan om huruvida modellen memorerar eller generaliserar. Memorering är förmågan att minnas perfekt vad som hänt i det förflutna. Även om en modell som memorerar kan få höga poäng när den först tränas kommer prediktionsnoggrannheten att sjunka avsevärt när den används på nya data. I stället vill vi ha en modell som generaliserar. Generalisering är förmågan att lära sig och tillämpa allmänna mönster. Genom att lära sig de sanna, mer allmänna mönstren från träningsdata kommer en generaliserad modell att kunna göra samma kvalitativa prognoser på nya data som den inte har sett tidigare.
Automatiska undantagna data
Undantagna data "döljs" för modellen medan den tränas och används sedan för att bedöma modellen. I undantagandeanalysen simuleras hur modellen kommer att prestera vid framtida prognoser genom att generera noggrannhetsmått på data som inte användes vid träningen. Det är som om vi byggde en modell, använde den och övervakar dess prognoser i förhållande till vad som faktiskt hände – utan att behöva vänta på att observera dessa prognoser.
I Qlik AutoML finns två metoder för att välja ut undantagna data: standardmetoden och den tidsbaserade metoden.
Standardmetod för att välja ut undantagna data
Om du inte aktiverar tidskänslig modellträning väljs undantagna data ut slumpmässigt innan modellträningen startar.
Tidsbaserad metod för att välja ut undantagna data
Med den tidsbaserade metoden sorteras först hela träningsdatauppsättningen enligt en kolumn med datumindex som du väljer. Efter sortering separeras undantagna data från övrig träningsdata. Dessa undantagna data innehåller de senaste uppgifterna för ditt valda index.
Den tidsbaserade metoden används för att skapa tidskänsliga modeller. Du aktiverar tidskänslig träning under Modelloptimering i panelen experimentkonfiguration. Mer information finns i Konfigurering av experiment.
Korsvalidering
Korsvalidering är en process som testar hur väl en maskininlärningsmodell kan förutsäga framtida värden för data som den ännu inte har sett. Vid korsvalidering delas träningsdata för en modell upp i ett antal segment, så kallade veck. Vid varje träningsupprepning tränas modellen på ett eller flera veck och minst ett veck är alltid förhindrat från att användas för träning. Efter varje upprepning utvärderas resultatet med hjälp av ett av de veck som inte användes i träningen.
Resultatet av korsvalideringen är en uppsättning testmått som ger en rimlig prognos för hur exakt den tränade modellen kommer att kunna förutsäga på data som den aldrig tidigare har sett.
I Qlik AutoML finns två metoder för korsvalidering: standardmetoden och den tidsbaserade metoden.
Standardkorsvalidering
Om inte träningen konfigureras till att använda tidsbaserad korsvalidering använder Qlik AutoML standardmetoden för korsvalidering. Standardmetoden för korsvalidering passar modeller som inte förlitar sig på tidsseriedimensioner – dvs. modeller som inte behöver ta hänsyn till en specifik tidsbaserad kolumn i träningsdatan för att göra en prognos.
Standardmetoden för korsvalidering innebär att datauppsättningen slumpmässigt delas upp i jämnt antal segment, så kallade veck. Algoritmen för maskininlärning tränar modellen på alla veck utom ett. Korsvalidering testar sedan varje fold mot en modell som tränats på alla de andra folden. Detta innebär att varje tränad modell testas på ett segment av data som den aldrig tidigare har sett. Processen upprepas med en annan fold som döljs under träningen och sedan testas tills alla folds har använts exakt en gång som test och tränats under varannan iteration.
Automatiskt undantag och standardkorsvalidering
AutoML använder femvecks korsvalidering under modellträningen för att simulera modellens prestanda. Modellen testas sedan mot en separat undantagen del av träningsdata. Detta genererar poängsättningar för att du ska kunna utvärdera och jämföra hur bra olika algoritmer presterar.
Innan träningen för experimentet börjar blandas alla data i datauppsättningen som har ett mål som inte är noll slumpmässigt. 20 procent av datauppsättningen extraheras som undantagna data. De återstående 80 procenten av datauppsättningen används för att träna modellen med korsvalidering.
För att förbereda korsvalidering delas datauppsättningen slumpmässigt upp i fem delar (veck). Modellen tränas sedan fem gånger, varvid varje gång en annan femtedel av data "döljs" för att testa hur modellen fungerar. Träningsstatistik genereras under korsvalideringen och är genomsnittet av de beräknade värdena.
Efter träningen tillämpas modellen på undantagna data. Eftersom undantagna data inte har setts av modellen under träningen – till skillnad från korsvalideringsdata – är de idealiska för att validera modellens träningsresultat. Under denna slutliga modellutvärdering genereras mätvärden för undantagna data.
För mer information om mätvärden som används för att analysera modellens prestanda, se Granskning av modeller.
Tidsbaserad korsvalidering
Tidsbaserad korsvalidering passar för att träna din modell till att förutsäga data längs en tidsseriedimension. Om du exempelvis vill få en prognos för ditt företags försäljning för nästa månad utifrån en datauppsättning som innehåller tidigare försäljningsdata. För att använda tidsbaserad korsvalidering måste det finnas en kolumn i dina träningsdata som innehåller information om datum eller en tidsmarkör.
Tidsbaserad korsvalidering används för att skapa tidskänsliga modeller. Du aktiverar tidskänslig träning under Modelloptimering i panelen experimentkonfiguration. Mer information finns i Konfigurering av experiment.
Med tidsbaserad korsvalidering tränas modeller för att bättre förstå att de förutsäger data för framtida datum.
Precis som standardmetoden innebär tidsbaserad korsvalidering att träningsdata separeras i veck som används för både träning och testning. I båda metoderna tränas modellerna också under ett antal upprepningar. Den tidsbaserade metoden skiljer sig dock på flera sätt från standardmetoden:
Träningsdata sorteras och organiseras i veck längs det dataindex du väljer. Standardkorsvalidering väljer istället slumpmässigt ut vilka rader som ska ingå i ett veck.
Antalet veck som används som träningsdata ökar gradvis för varje gång träningen upprepas. Detta innebär att vid den första upprepningen kan endast det första (äldsta) vecket användas, medan efterföljande upprepningar innehåller en gradvis större mängd träningsdata, inklusive nyare data. Vilket veck som används som testdata varierar för varje upprepning.
Detta står i kontrast till standardmetoden för korsvalidering som använder en fast volym data för tränings- och testuppdelningar i varje upprepning (det vill säga fyra veck för träning och ett veck för testning).
Eftersom hela träningsdatauppsättningen sorteras efter ditt valda index är de data som används för att testa den tränade modellen alltid nyare – eller lika nya – som de data som används för att träna modellen. De automatiska undantagsdata som används för att utföra de slutliga prestandatesterna på modellen är alltid nyare – eller lika nya – som resten av träningsdatauppsättningen.
Däremot kan standardkorsvalidering resultera i att modeller testas på data som är äldre än träningsdatan, vilket resulterar i dataläckage.
Automatiskt undantag och tidsbaserad korsvalidering
Denna process visar hur tidskänsliga modeller tränas. Processen har skillnader och likheter jämfört med standardprocessen för korsvalidering.
Alla data i din datauppsättning sorteras efter det dataindex som du har valt. Detta inkluderar träningsdata och undantagsdata.
Innan experimentets träning börjar extraheras 20 procent av datauppsättningen som undantagsdata. Dessa undantagsdata är nyare eller lika nya som resten av datauppsättningen. De återstående 80 procenten av datauppsättningen används för att träna modellen med korsvalidering.
Vid förberedelse för korsvalidering delas träningsdatan upp i ett antal veck. Utifrån det datumindex du väljer kommer det första vecket att innehålla de äldsta posterna och det sista vecket kommer att innehålla de senaste posterna.
Modellen är då tränad under fem upprepningar. Vid varje upprepning ökas mängden träningsdata gradvis. För varje upprepning uppdateras också de träningsdata som ingår. Träningsstatistik genereras under korsvalideringen och är genomsnittet av de beräknade värdena.
Efter träningen tillämpas modellen på undantagna data. Eftersom undantagsdatan inte har setts av modellen under träningen är de idealiska för att validera modellens träningsresultat. Under denna slutliga modellutvärdering genereras mätvärden för undantagna data.