Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Förbered tidsseriedata med Amazon SageMaker Data Wrangler

Tidsseriedata är allmänt närvarande i våra liv. Aktiekurser, huspriser, väderinformation och försäljningsdata som fångats över tid är bara några exempel. När företag alltmer letar efter nya sätt att få meningsfulla insikter från tidsseriedata, är förmågan att visualisera data och tillämpa önskade transformationer grundläggande steg. Tidsseriedata har dock unika egenskaper och nyanser jämfört med andra typer av tabelldata och kräver speciella överväganden. Till exempel samlas standardtabell- eller tvärsnittsdata in vid en specifik tidpunkt. Däremot fångas tidsseriedata upprepade gånger över tiden, med varje successiv datapunkt beroende av dess tidigare värden.

Eftersom de flesta tidsserieanalyser förlitar sig på information som samlats in över en sammanhängande uppsättning observationer, kan saknade data och inneboende gleshet minska prognosernas noggrannhet och introducera bias. Dessutom bygger de flesta metoder för tidsserieanalys på lika avstånd mellan datapunkter, med andra ord periodicitet. Därför är förmågan att fixa oegentligheter i dataavstånd en kritisk förutsättning. Slutligen kräver tidsserieanalys ofta skapandet av ytterligare funktioner som kan hjälpa till att förklara det inneboende förhållandet mellan indata och framtida förutsägelser. Alla dessa faktorer skiljer tidsserieprojekt från traditionella scenarier för maskininlärning (ML) och kräver en distinkt inställning till analysen.

Det här inlägget går igenom hur man använder Amazon SageMaker Data Wrangler att tillämpa tidsserietransformationer och förbereda din datauppsättning för tidsserieanvändningsfall.

Användningsfall för Data Wrangler

Data Wrangler tillhandahåller en kodlös/lågkodslösning för tidsserieanalys med funktioner för att rengöra, transformera och förbereda data snabbare. Det gör det också möjligt för datavetare att förbereda tidsseriedata i enlighet med deras prognosmodells krav på inmatningsformat. Följande är några sätt du kan använda dessa funktioner på:

  • Beskrivande analys– Vanligtvis är steg ett i alla datavetenskapliga projekt att förstå data. När vi plottar tidsseriedata får vi en överblick över dess mönster på hög nivå, såsom trend, säsongsvariationer, cykler och slumpmässiga variationer. Det hjälper oss att bestämma den korrekta prognosmetoden för att korrekt representera dessa mönster. Plottning kan också hjälpa till att identifiera extremvärden och förhindra orealistiska och felaktiga prognoser. Data Wrangler kommer med en visualisering av nedbrytning av säsongstrender för att representera komponenter i en tidsserie, och en visualisering av avvikande upptäckt för att identifiera extremvärden.
  • Förklarande analys– För multivariata tidsserier är förmågan att utforska, identifiera och modellera sambandet mellan två eller flera tidsserier avgörande för att få meningsfulla prognoser. De Grupp av transformera i data Wrangler skapar flera tidsserier genom att gruppera data för specificerade celler. Dessutom tillåter Data Wrangler-tidsserieomvandlingar, där så är tillämpligt, specifikation av ytterligare ID-kolumner att gruppera på, vilket möjliggör komplex tidsserieanalys.
  • Dataförberedelse och funktionsteknik– Tidsseriedata är sällan i det format som förväntas av tidsseriemodeller. Det kräver ofta dataförberedelser för att konvertera rådata till tidsseriespecifika funktioner. Du kanske vill validera att tidsseriedata är regelbundet eller lika fördelade före analys. För att förutsäga användningsfall kanske du också vill inkludera ytterligare tidsserieegenskaper, såsom autokorrelation och statistiska egenskaper. Med Data Wrangler kan du snabbt skapa tidsseriefunktioner som fördröjningskolumner för flera fördröjningsperioder, sampla om data till flera tidsgranulariteter och automatiskt extrahera statistiska egenskaper för en tidsserie, för att nämna några funktioner.

Lösningsöversikt

Det här inlägget utvecklar hur datavetare och analytiker kan använda Data Wrangler för att visualisera och förbereda tidsseriedata. Vi använder bitcoin kryptovalutadataset från nedladdning av kryptodata med bitcoin-handelsdetaljer för att visa upp dessa funktioner. Vi rengör, validerar och transformerar den råa datamängden med tidsseriefunktioner och genererar även bitcoin-volymprisprognoser med hjälp av den transformerade datamängden som indata.

Urvalet av bitcoin-handelsdata är från 1 januari – 19 november 2021, med 464,116 XNUMX datapunkter. Datauppsättningsattributen inkluderar en tidsstämpel för prisposten, öppnings- eller förstapriset till vilket myntet byttes för en viss dag, det högsta priset till vilket myntet byttes den dagen, det senaste priset till vilket myntet byttes den dagen, volymen som växlas i kryptovalutavärdet på dagen i BTC, och motsvarande USD-valuta.

Förutsättningar

ladda ner Bitstamp_BTCUSD_2021_minute.csv fil från nedladdning av kryptodata och ladda upp den till Amazon Simple Storage Service (Amazon S3).

Importera bitcoin-dataset i Data Wrangler

För att starta inmatningsprocessen till Data Wrangler, slutför följande steg:

  1. SageMaker Studio konsol, på Fil meny, välj NyaOch välj sedan Data Wrangler Flow.
  2. Byt namn på flödet efter önskemål.
  3. För Importera datumväljer Amazon S3.
  4. Ladda upp Bitstamp_BTCUSD_2021_minute.csv fil från din S3-hink.

Du kan nu förhandsgranska din datamängd.

  1. I Detaljer välj Avancerad konfiguration och avmarkera Aktivera provtagning.

Det här är en relativt liten datamängd, så vi behöver inte provtagning.

  1. Välja Importera.

Du har framgångsrikt skapat flödesdiagrammet och är redo att lägga till transformationssteg.

Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Lägg till transformationer

För att lägga till datatransformationer, välj plustecknet bredvid Datatyper Och välj Redigera datatyper.

Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Se till att Data Wrangler automatiskt härledde rätt datatyper för datakolumnerna.

I vårt fall är de antagna datatyperna korrekta. Anta dock att en datatyp var felaktig. Du kan enkelt ändra dem via användargränssnittet, som visas i följande skärmdump.

redigera och granska datatyper

Låt oss starta analysen och börja lägga till transformationer.

Datarengöring

Vi utför först flera datarensningstransformationer.

Släpp kolumn

Låt oss börja med att släppa unix kolumn, eftersom vi använder date kolumn som index.

  1. Välja Tillbaka till dataflödet.
  2. Välj plustecknet bredvid Datatyper Och välj Lägg till transform.
  3. Välja + Lägg till steg i TRANSFORMER rutan.
  4. Välja Hantera kolumner.
  5. För Förvandlaväljer Släpp kolumn.
  6. För Kolumn att släppaväljer unix.
  7. Välja Förhandsvisning.
  8. Välja Lägg till för att spara steget.

Handtag saknas

Saknade data är ett välkänt problem i datauppsättningar i verkliga världen. Därför är det en bästa praxis att verifiera förekomsten av saknade eller nollvärden och hantera dem på rätt sätt. Vår datauppsättning innehåller inga saknade värden. Men om det fanns skulle vi använda den Handtag saknas tidsserieomvandling för att fixa dem. Vanligt använda strategier för att hantera saknad data inkluderar att ta bort rader med saknade värden eller fylla de saknade värdena med rimliga uppskattningar. Eftersom tidsseriedata förlitar sig på en sekvens av datapunkter över tiden, är att fylla i saknade värden den föredragna metoden. Processen att fylla i saknade värden kallas imputering. De Handtag saknas tidsserietransformering låter dig välja mellan flera imputeringsstrategier.

  1. Välja + Lägg till steg i TRANSFORMER rutan.
  2. Välj Tidsföljder omvandla.
  3. För Förvandla, Välj Handtag saknas.
  4. För Tidsserieinmatningstypväljer Längs kolumn.
  5. För Metod för att imputera värdenväljer Fyllning framåt.

Smakämnen Fyllning framåt metod ersätter de saknade värdena med de icke-saknade värdena som föregår de saknade värdena.

hantera saknad tidsserietransform

Fyllning bakåt, Konstant värde, Det vanligaste värdet och Interpolera är andra imputeringsstrategier tillgängliga i Data Wrangler. Interpolationstekniker förlitar sig på närliggande värden för att fylla i saknade värden. Tidsseriedata uppvisar ofta korrelation mellan närliggande värden, vilket gör interpolering till en effektiv fyllningsstrategi. För ytterligare information om de funktioner du kan använda för att tillämpa interpolation, se pandas.DataFrame.interpolera.

Validera tidsstämpel

I tidsserieanalys fungerar tidsstämpelkolumnen som indexkolumnen, kring vilken analysen kretsar. Därför är det viktigt att se till att tidsstämpelkolumnen inte innehåller ogiltiga eller felaktigt formaterade tidsstämpelvärden. Eftersom vi använder date kolumnen som tidsstämpelkolumn och index, låt oss bekräfta att dess värden är korrekt formaterade.

  1. Välja + Lägg till steg i TRANSFORMER rutan.
  2. Välj Tidsföljder omvandla.
  3. För Omvandla, välja Validera tidsstämplar.

Smakämnen Validera tidsstämplar Med transform kan du kontrollera att tidsstämpelkolumnen i din datauppsättning inte har värden med en felaktig tidsstämpel eller saknade värden.

  1. För Tidsstämpel kolumnväljer datum.
  2. För Policys dropdown, välj Ange.

Smakämnen Ange policyalternativet skapar en boolesk kolumn som anger om värdet i tidsstämpelkolumnen är ett giltigt datum-/tidsformat. Andra alternativ för Policys innefattar:

  • Fel – Ger ett felmeddelande om tidsstämpelkolumnen saknas eller är ogiltig
  • Drop – Tar bort raden om tidsstämpelkolumnen saknas eller är ogiltig
  1. Välja Förhandsvisning.

En ny boolesk kolumn heter date_is_valid skapades, med true värden som indikerar korrekt format och icke-nullposter. Vår datauppsättning innehåller inte ogiltiga tidsstämpelvärden i date kolumn. Men om det gjorde det kan du använda den nya booleska kolumnen för att identifiera och fixa dessa värden.

Validera Tidsstämpel tidsserieomvandling

  1. Välja Lägg till för att spara detta steg.

Visualisering av tidsserier

Efter att vi har rensat och validerat datasetet kan vi bättre visualisera data för att förstå dess olika komponent.

Omprov

Eftersom vi är intresserade av dagliga förutsägelser, låt oss omvandla datafrekvensen till dagliga.

Smakämnen Omprov transformation ändrar frekvensen av tidsserieobservationerna till en specificerad granularitet och kommer med både uppsamplings- och nedsamplingsalternativ. Att tillämpa uppsampling ökar frekvensen av observationerna (till exempel från dagligen till varje timme), medan nedsampling minskar frekvensen av observationerna (till exempel från varje timme till dagligen).

Eftersom vår datauppsättning har en minuts granularitet, låt oss använda alternativet för nedsampling.

  1. Välja + Lägg till steg.
  2. Välj Tidsföljder omvandla.
  3. För Förvandlaväljer Omprov.
  4. För Tidsstämpelväljer datum.
  5. För Frekvensenhetväljer Kalenderdag.
  6. För Frekvens kvantitet, ange 1.
  7. För Metod för att aggregera numeriska värdenväljer betyda.
  8. Välja Förhandsvisning.

Frekvensen för vår datauppsättning har ändrats från per minut till dagligen.

Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Välja Lägg till för att spara detta steg.

Säsongsbetonad trendnedbrytning

Efter omsampling kan vi visualisera den transformerade serien och dess associerade STL-komponenter (säsongs- och trendnedbrytning med LOESS) med hjälp av Säsongs-Trend-nedbrytning visualisering. Detta bryter ner ursprungliga tidsserier i distinkta trender, säsongsvariationer och restkomponenter, vilket ger oss en god förståelse för hur varje mönster beter sig. Vi kan också använda informationen vid modellering av prognosproblem.

Data Wrangler använder LOESS, en robust och mångsidig statistisk metod för att modellera trend- och säsongskomponenter. Den underliggande implementeringen använder polynomregression för att uppskatta icke-linjära samband som finns i tidsseriekomponenterna (säsongsvariation, trend och residual).

  1. Välja Tillbaka till dataflödet.
  2. Välj plustecknet bredvid Steg on Data flöde.
  3. Välja Lägg till analys.
  4. I Skapa analys ruta, för Analystyp, välja Tidsföljder.
  5. För Visualiseringväljer Säsongsbetonad trendnedbrytning.
  6. För Analysnamn, ange ett namn.
  7. För Tidsstämpel kolumnväljer datum.
  8. För Värdekolumnväljer Volym USD.
  9. Välja Förhandsvisning.

Analysen gör det möjligt för oss att visualisera indatatidsserier och dekomponerade säsongsvariationer, trender och rester.

Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Välja Save för att spara analysen.

Med visualisering av nedbrytning av säsongstrender, kan vi generera fyra mönster, som visas i föregående skärmdump:

  • Ursprungliga – Den ursprungliga tidsserien omsamplad till daglig granularitet.
  • Trend – Polynomtrenden med ett totalt negativt trendmönster för år 2021, vilket indikerar en minskning av Volume USD värde.
  • Säsong – Den multiplikativa säsongsvariationen som representeras av de varierande svängningsmönstren. Vi ser en minskning av säsongsvariationen, kännetecknad av minskande svängningsamplitud.
  • Resterande – Återstående kvarvarande eller slumpmässigt brus. Restserien är den resulterande serien efter att trend- och säsongskomponenter har tagits bort. När vi tittar noga observerar vi toppar mellan januari och mars och mellan april och juni, vilket tyder på utrymme för att modellera sådana speciella händelser med hjälp av historiska data.

Dessa visualiseringar ger värdefulla ledtrådar till datavetare och analytiker i befintliga mönster och kan hjälpa dig att välja en modelleringsstrategi. Det är dock alltid en bra praxis att validera resultatet av STL-nedbrytning med informationen som samlats in genom beskrivande analys och domänexpertis.

För att sammanfatta, observerar vi en nedåtgående trend som överensstämmer med originalserievisualisering, vilket ökar vårt förtroende för att införliva informationen som förmedlas av trendvisualisering i nedströms beslutsfattande. Däremot hjälper säsongsvisualiseringen till att informera om förekomsten av säsongsvariationer och behovet av att ta bort dem genom att tillämpa tekniker som t.ex. särskiljning, den ger inte den önskade nivån av detaljerad insikt i olika säsongsmönster som finns, vilket kräver djupare analys.

Funktionsteknik

Efter att vi har förstått mönstren som finns i vår datauppsättning kan vi börja konstruera nya funktioner som syftar till att öka noggrannheten i prognosmodellerna.

Visa datum och tid

Låt oss börja funktionsutvecklingsprocessen med mer enkla datum-/tidsfunktioner. Datum/tid-funktioner skapas från timestamp kolumn och ger en optimal väg för datavetare att starta funktionsutvecklingsprocessen. Vi börjar med Visa datum och tid tidsserieomvandling för att lägga till funktionerna månad, dag i månaden, dag på året, veckan på året och kvartalet till vår datauppsättning. Eftersom vi tillhandahåller datum/tid-komponenterna som separata funktioner, gör vi det möjligt för ML-algoritmer att upptäcka signaler och mönster för att förbättra prediktionsnoggrannheten.

  1. Välja + Lägg till steg.
  2. Välj Tidsföljder omvandla.
  3. För Omvandla, välja Visa datum och tid.
  4. För Inmatningskolumnväljer datum.
  5. För Utdatakolumn, stiga på date (det här steget är valfritt).
  6. För Utmatningslägeväljer ORDNINGS-.
  7. För Utmatningsformatväljer Kolonner.
  8. För datum/tid-funktioner att extrahera, välj Månad, Dag, Årets vecka, Dag på åretoch Kvartal.
  9. Välja Förhandsvisning.

Datauppsättningen innehåller nu nya namngivna kolumner date_month, date_day, date_week_of_year, date_day_of_yearoch date_quarter. Informationen som hämtas från dessa nya funktioner kan hjälpa datavetare att få ytterligare insikter från data och i förhållandet mellan indatafunktioner och utdatafunktioner.

presentera datetime tidsserietransformation

  1. Välja Lägg till för att spara detta steg.

Koda kategoriskt

Datum/tid-funktioner är inte begränsade till heltalsvärden. Du kan också välja att betrakta vissa extraherade datum/tid-funktioner som kategoriska variabler och representera dem som en-hot-kodade funktioner, där varje kolumn innehåller binära värden. Den nyskapade date_quarter kolumnen innehåller värden mellan 0-3, och kan kodas med enhet med fyra binära kolumner. Låt oss skapa fyra nya binära funktioner, som var och en representerar motsvarande kvartal på året.

  1. Välja + Lägg till steg.
  2. Välj Koda kategoriskt omvandla.
  3. För Förvandlaväljer En het kodning.
  4. För Inmatningskolumnväljer date_quarter.
  5. För Outputstilväljer Kolonner.
  6. Välja Förhandsvisning.
  7. Välja Lägg till för att lägga till steget.

Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Lag-funktion

Låt oss sedan skapa fördröjningsfunktioner för målkolumnen Volume USD. Fördröjningsfunktioner i tidsserieanalys är värden vid tidigare tidsstämplar som anses vara användbara för att härleda framtida värden. De hjälper också till att identifiera autokorrelation (även känd som seriell korrelation) mönster i restserien genom att kvantifiera observationens samband med observationer vid tidigare tidssteg. Autokorrelation liknar vanlig korrelation men mellan värdena i en serie och dess tidigare värden. Den utgör grunden för de autoregressiva prognosmodellerna i ARIMA-serien.

Med Data Wrangler Lag-funktion transformera kan du enkelt skapa eftersläpningsfunktioner med n periods mellanrum. Dessutom vill vi ofta skapa flera fördröjningsfunktioner med olika fördröjningar och låta modellen bestämma de mest meningsfulla funktionerna. För ett sådant scenario är Lagfunktioner transform hjälper till att skapa flera fördröjningskolumner över en angiven fönsterstorlek.

  1. Välja Tillbaka till dataflödet.
  2. Välj plustecknet bredvid Steg on Data flöde.
  3. Välja + Lägg till steg.
  4. Välja Tidsföljder omvandla.
  5. För Förvandlaväljer Lagfunktioner.
  6. För Generera fördröjningsfunktioner för den här kolumnenväljer Volym USD.
  7. För Tidsstämpel kolumnväljer datum.
  8. För lag, stiga på 7.
  9. Eftersom vi är intresserade av att observera upp till de föregående sju fördröjningsvärdena, låt oss välja Inkludera hela fördröjningsfönstret.
  10. För att skapa en ny kolumn för varje fördröjningsvärde, välj Platta ut utgången.
  11. Välja Förhandsvisning.

Sju nya kolumner läggs till, med suffixet lag_number nyckelord för målkolumnen Volume USD.

Fördröjning av tidsserier

  1. Välja Lägg till för att spara steget.

Rullande fönsterfunktioner

Vi kan också beräkna meningsfulla statistiska sammanfattningar över en rad värden och inkludera dem som indatafunktioner. Låt oss extrahera vanliga statistiska tidsseriefunktioner.

Data Wrangler implementerar automatiska funktioner för tidsseriefunktioner med hjälp av öppen källkod tsfresh paket. Med tidsseriefunktionsextraktionstransformationerna kan du automatisera funktionsextraktionsprocessen. Detta eliminerar tiden och ansträngningen som annars spenderas på att manuellt implementera signalbehandlingsbibliotek. För det här inlägget extraherar vi funktioner med hjälp av Rullande fönsterfunktioner omvandla. Denna metod beräknar statistiska egenskaper över en uppsättning observationer som definieras av fönsterstorleken.

  1. Välja + Lägg till steg.
  2. Välj Tidsföljder omvandla.
  3. För Förvandlaväljer Rullande fönsterfunktioner.
  4. För Generera rullande fönsterfunktioner för denna kolumnväljer Volym USD.
  5. För Tidsstämpel kolumnväljer datum.
  6. För Fönsterstorlek, stiga på 7.

Ange en fönsterstorlek på 7 beräknar funktioner genom att kombinera värdet vid den aktuella tidsstämpeln och värden för de föregående sju tidsstämplarna.

  1. Välja Platta för att skapa en ny kolumn för varje beräknad funktion.
  2. Välj din strategi som Minimal delmängd.

Denna strategi extraherar åtta funktioner som är användbara i nedströmsanalyser. Andra strategier inkluderar Effektiv delmängd, Anpassad delmängdoch Alla funktioner. För fullständig lista över funktioner som är tillgängliga för extraktion, se Översikt över extraherade funktioner.

  1. Välja Förhandsvisning.

Vi kan se åtta nya kolumner med specificerad fönsterstorlek på 7 i deras namn, bifogat till vår datauppsättning.

  1. Välja Lägg till för att spara steget.

Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Exportera datamängden

Vi har transformerat tidsseriedataset och är redo att använda det transformerade datasetet som indata för en prognosalgoritm. Det sista steget är att exportera den transformerade datamängden till Amazon S3. I Data Wrangler kan du välja Exportsteg att automatiskt generera en Jupyter-anteckningsbok med Amazon SageMaker Processing-kod för att bearbeta och exportera den transformerade datamängden till en S3-hink. Men eftersom vår datauppsättning innehåller drygt 300 poster, låt oss dra nytta av det Exportera data alternativet i Lägg till Transform visa för att exportera den transformerade datamängden direkt till Amazon S3 från Data Wrangler.

  1. Välja Exportera data.

Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. För S3-platsväljer webbläsare och välj din S3-skopa.
  2. Välja Exportera data.

Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Nu när vi framgångsrikt har transformerat bitcoin-datasetet kan vi använda Amazon Prognos att generera bitcoin-förutsägelser.

Städa upp

Om du är klar med det här användningsfallet, rensa upp resurserna du skapade för att undvika extra kostnader. För Data Wrangler kan du stänga av den underliggande instansen när du är klar. Hänvisa till Stäng av Data Wrangler dokumentation för detaljer. Alternativt kan du fortsätta till del 2 i denna serie för att använda denna datauppsättning för prognoser.

Sammanfattning

Det här inlägget visade hur man använder Data Wrangler för att förenkla och påskynda tidsserieanalys med hjälp av dess inbyggda tidsseriefunktioner. Vi undersökte hur dataforskare enkelt och interaktivt kan rensa, formatera, validera och omvandla tidsseriedata till önskat format, för meningsfull analys. Vi undersökte också hur du kan berika din tidsserieanalys genom att lägga till en omfattande uppsättning statistiska funktioner med Data Wrangler. För att lära dig mer om tidsserietransformationer i Data Wrangler, se Transformera data.


Om författaren

Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Roop Bains är lösningsarkitekt på AWS med fokus på AI/ML. Han brinner för att hjälpa kunder att förnya sig och uppnå sina affärsmål med hjälp av artificiell intelligens och maskininlärning. På fritiden tycker Roop om att läsa och vandra.

Förbered tidsseriedata med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Nikita Ivkin är en tillämpad forskare, Amazon SageMaker Data Wrangler.

Tidsstämpel:

Mer från AWS maskininlärning