Best practices voor het gebruik van Anomaly Detector univariate API
De Anomaly Detector API is een stateless anomaliedetectieservice. De nauwkeurigheid en prestaties van de resultaten kunnen worden beïnvloed door:
- Hoe uw tijdreeksgegevens worden voorbereid.
- De Anomaly Detector API-parameters die zijn gebruikt.
- Het aantal gegevenspunten in uw API-aanvraag.
Gebruik dit artikel voor meer informatie over best practices voor het gebruik van de API om de beste resultaten voor uw gegevens te krijgen.
Wanneer gebruikt u batch (volledig) of laatste puntdetectie van anomalie
Met Anomaly Detector batchdetectie-eindpunt van de API kunt u afwijkingen detecteren via uw hele tijdreeksgegevens. In deze detectiemodus wordt één statistisch model gemaakt en toegepast op elk punt in de gegevensset. Als uw tijdreeks de onderstaande kenmerken heeft, raden we u aan batchdetectie te gebruiken om een voorbeeld van uw gegevens in één API-aanroep te bekijken.
- Een seizoensgebonden tijdreeks, met incidentele afwijkingen.
- Een platte trendtijdreeks, met incidentele pieken/dalen.
Het is niet raadzaam om batchgemiddelde anomaliedetectie te gebruiken voor realtime gegevensbewaking of om deze te gebruiken voor tijdreeksgegevens die niet de bovenstaande kenmerken hebben.
Batchdetectie maakt en past slechts één model toe. De detectie voor elk punt wordt uitgevoerd in de context van de hele reeks. Als de tijdreeksgegevens zonder seizoensgebondenheid omhoog en omlaag gaan, kunnen bepaalde wijzigingspunten (dips en pieken in de gegevens) door het model worden gemist. Op dezelfde manier worden sommige wijzigingspunten die later in de gegevensset minder belangrijk zijn dan die in de gegevensset, mogelijk niet als significant genoeg geteld om in het model te worden opgenomen.
Batchdetectie is langzamer dan het detecteren van de anomaliestatus van het laatste punt bij het bewaken van realtime gegevens, vanwege het aantal punten dat wordt geanalyseerd.
Voor realtime gegevensbewaking raden we u aan alleen de anomaliestatus van uw meest recente gegevenspunt te detecteren. Door continu de meest recente puntdetectie toe te passen, kan bewaking van streaminggegevens efficiënter en nauwkeuriger worden uitgevoerd.
In het onderstaande voorbeeld wordt beschreven welke invloed deze detectiemodi kunnen hebben op de prestaties. In de eerste afbeelding ziet u het resultaat van het continu detecteren van het laatste punt van de anomaliestatus langs 28 eerder geziene gegevenspunten. De rode punten zijn afwijkingen.

Hieronder vindt u dezelfde gegevensset met behulp van batch anomaliedetectie. Het model dat is gebouwd voor de bewerking heeft verschillende afwijkingen genegeerd, gemarkeerd met rechthoeken.

Gegevensvoorbereiding
De Anomaly Detector API accepteert tijdreeksgegevens die zijn opgemaakt in een JSON-aanvraagobject. Een tijdreeks kan alle numerieke gegevens zijn die in de tijd in sequentiële volgorde zijn vastgelegd. U kunt vensters van uw tijdreeksgegevens verzenden naar Anomaly Detector API-eindpunt om de prestaties van de API te verbeteren. Het minimale aantal gegevenspunten dat u kunt verzenden is 12 en het maximum is 8640 punten. Granulariteit wordt gedefinieerd als de snelheid van de steekproef van uw gegevens.
Gegevenspunten die naar de Anomaly Detector-API worden verzonden, moeten een geldige Coordinated Universal Time (UTC) en een numerieke waarde hebben.
{
"granularity": "daily",
"series": [
{
"timestamp": "2018-03-01T00:00:00Z",
"value": 32858923
},
{
"timestamp": "2018-03-02T00:00:00Z",
"value": 29615278
},
]
}
Als uw gegevens worden verzameld met een niet-standaardtijdsinterval, kunt u deze opgeven door het kenmerk toe te voegen customInterval in uw aanvraag. Als er bijvoorbeeld om de vijf minuten een sample van uw reeks wordt genomen, kunt u het volgende toevoegen aan uw JSON-aanvraag:
{
"granularity" : "minutely",
"customInterval" : 5
}
Ontbrekende gegevenspunten
Ontbrekende gegevenspunten komen vaak voor in gelijkmatig gedistribueerde tijdreeksgegevenssets, met name gegevenssets met een goede granulariteit (een klein steekproefinterval. Bijvoorbeeld gegevens die om de paar minuten worden verzameld). Het ontbreken van minder dan 10% van het verwachte aantal punten in uw gegevens mag geen negatieve invloed hebben op uw detectieresultaten. Overweeg hiaten in uw gegevens op te vullen op basis van de kenmerken ervan, zoals het vervangen van gegevenspunten uit een eerdere periode, lineaire interpolatie of een bewegend gemiddelde.
Gedistribueerde gegevens aggregeren
De Anomaly Detector API werkt het beste op een gelijkmatig gedistribueerde tijdreeks. Als uw gegevens willekeurig worden gedistribueerd, moet u deze aggregeren met een tijdseenheid, zoals Per minuut, elk uur of dagelijks.
Anomaliedetectie op gegevens met seizoensgebonden patronen
Als u weet dat uw tijdreeksgegevens een seizoensgebonden patroon hebben (een patroon dat regelmatig plaatsvindt), kunt u de nauwkeurigheid en API-reactietijd verbeteren.
Als u een opgeeft wanneer u uw JSON-aanvraag maakt, kan de latentie voor anomaliedetectie tot period wel 50% worden verminderd. De period is een geheel getal dat grofweg aangeeft hoeveel gegevenspunten de tijdreeks nodig heeft om een patroon te herhalen. Een tijdreeks met één gegevenspunt per dag heeft bijvoorbeeld een als en een tijdreeks met één punt per uur (met hetzelfde wekelijkse patroon) heeft period 7 een van period 7*24 . Als u niet zeker weet wat de patronen van uw gegevens zijn, hoeft u deze parameter niet op te geven.
Geef voor de beste resultaten vier gegevenspuntsgegevens period op, plus een extra punt. Gegevens per uur met een wekelijks patroon, zoals hierboven beschreven, moeten bijvoorbeeld 673 gegevenspunten in de aanvraag body () 7 * 24 * 4 + 1 bevatten.
Steekproeven nemen van gegevens voor realtime bewaking
Als een steekproef van uw streaminggegevens wordt genomen met een kort interval (bijvoorbeeld seconden of minuten), kan het verzenden van het aanbevolen aantal gegevenspunten het maximaal toegestane Anomaly Detector API-aantal (8640 gegevenspunten) overschrijden. Als uw gegevens een stabiel seizoensgebonden patroon hebben, kunt u overwegen om een voorbeeld van uw tijdreeksgegevens te verzenden met een groter tijdsinterval, zoals uren. Het nemen van steekproeven van uw gegevens op deze manier kan ook de reactietijd van de API aanzienlijk verbeteren.