Metodtips för att använda Avvikelseidentifiering univariate-API
API:Avvikelseidentifiering är en tillståndslös tjänst för avvikelseidentifiering. Resultatens noggrannhet och prestanda kan påverkas av:
- Hur dina tidsseriedata förbereds.
- De Avvikelseidentifiering API-parametrar som användes.
- Antalet datapunkter i din API-begäran.
Den här artikeln innehåller information om metodtips för att använda API:et för att få bästa möjliga resultat för dina data.
När du ska använda batch (hel) eller senaste (sista) punktavviklighetsidentifiering
Med Avvikelseidentifiering-API:et batchidentifiering kan du identifiera avvikelser genom hela tidsseriedata. I det här identifieringsläget skapas en enda statistisk modell som tillämpas på varje punkt i datauppsättningen. Om tidsserien har egenskaperna nedan rekommenderar vi att du använder batchidentifiering för att förhandsgranska dina data i ett API-anrop.
- En säsongsberoende tidsserie med tillfälliga avvikelser.
- En platt trendtidsserie med tillfälliga toppar/dalar.
Vi rekommenderar inte att du använder batchavviklighetsidentifiering för övervakning av realtidsdata eller använder den på tidsseriedata som inte har ovanstående egenskaper.
Batchidentifiering skapar och tillämpar endast en modell. Identifieringen för varje punkt görs i kontexten för hela serien. Om tidsseriedatatrenderna går upp och ned utan säsongsvariationer kan vissa ändringspunkter (dalar och toppar i data) missas av modellen. På samma sätt kan vissa ändringspunkter som är mindre viktiga än de senare i datauppsättningen inte räknas som tillräckligt viktiga för att införlivas i modellen.
Batchidentifiering går långsammare än att identifiera avvikelsestatus för den senaste punkten när du utför dataövervakning i realtid, på grund av antalet punkter som analyseras.
För dataövervakning i realtid rekommenderar vi att du endast identifierar avvikelsestatusen för din senaste datapunkt. Genom att kontinuerligt tillämpa den senaste punktidentifiering kan övervakning av strömmande data göras mer effektivt och korrekt.
I exemplet nedan beskrivs hur de här identifieringslägena påverkar prestandan. Den första bilden visar resultatet av att kontinuerligt identifiera den senaste punkten med avvikelsestatus tillsammans med 28 tidigare datapunkter. De röda punkterna är avvikelser.

Nedan visas samma datauppsättning med batchavviklighetsidentifiering. Modellen som skapats för åtgärden har ignorerat flera avvikelser, markerade med rektanglar.

Förberedelse av data
Api:et Avvikelseidentifiering accepterar tidsseriedata formaterade i ett JSON-begärandeobjekt. En tidsserie kan vara numeriska data som registreras över tid i sekventiell ordning. Du kan skicka fönster med dina tidsseriedata till Avvikelseidentifiering API-slutpunkten för att förbättra API:ets prestanda. Det minsta antalet datapunkter som du kan skicka är 12 och maxvärdet är 8 640 punkter. Kornighet definieras som den hastighet som dina data samplas med.
Datapunkter som skickas till Avvikelseidentifiering-API:et måste ha en giltig Coordinated Universal Time (UTC) tidsstämpel och ett numeriskt värde.
{
"granularity": "daily",
"series": [
{
"timestamp": "2018-03-01T00:00:00Z",
"value": 32858923
},
{
"timestamp": "2018-03-02T00:00:00Z",
"value": 29615278
},
]
}
Om dina data samplas med ett tidsintervall som inte är standard kan du ange det genom att lägga till customInterval attributet i din begäran. Om din serie till exempel samplas var 5:e minut kan du lägga till följande i din JSON-begäran:
{
"granularity" : "minutely",
"customInterval" : 5
}
Datapunkter som saknas
Saknade datapunkter är vanliga i jämnt distribuerade tidsseriedatamängder, särskilt sådana med fin kornighet (ett litet samplingsintervall. Det kan till exempel vara data som samplas med några minuters varannan minut). Om du saknar mindre än 10 % av det förväntade antalet punkter i dina data bör det inte ha någon negativ inverkan på dina identifieringsresultat. Överväg att fylla luckor i dina data baserat på dess egenskaper som att ersätta datapunkter från en tidigare period, linjär interpolering eller ett glidande medelvärde.
Aggregera distribuerade data
API:Avvikelseidentifiering fungerar bäst i en jämnt distribuerad tidsserie. Om dina data distribueras slumpmässigt bör du aggregera dem efter en tidsenhet, till exempel per minut, timme eller dag.
Avvikelseidentifiering på data med säsongsmönster
Om du vet att dina tidsseriedata har ett säsongsmönster (ett som inträffar med jämna mellanrum) kan du förbättra precisionen och API-svarstiden.
Om du period anger en när du skapar en JSON-begäran kan svarstiden för avvikelseidentifiering minskas med upp till 50 %. periodär ett heltal som anger ungefär hur många datapunkter som tidsserien tar för att upprepa ett mönster. Till exempel skulle en tidsserie med en datapunkt per dag ha en som , och en tidsserie med en punkt per timme (med samma veckovisa period 7 mönster) skulle ha period en på 7*24 . Om du är osäker på dina datamönster behöver du inte ange den här parametern.
För bästa resultat anger du period fyra datapunkt, plus ytterligare en. Timdata med ett veckomönster enligt beskrivningen ovan bör till exempel tillhandahålla 673 datapunkter i begärandetexten ( 7 * 24 * 4 + 1 ).
Samplingsdata för övervakning i realtid
Om dina strömmande data samplas med ett kort intervall (till exempel sekunder eller minuter) kan det rekommenderade antalet datapunkter överskrida det högsta tillåtna Avvikelseidentifiering-API:et (8 640 datapunkter). Om dina data visar ett stabilt säsongsmönster kan du överväga att skicka ett exempel på dina tidsseriedata med ett större tidsintervall, till exempel timmar. Att sampling av dina data på det här sättet kan också märkbart förbättra API-svarstiden.