IidChangePointEstimator Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rilevare una modifica del segnale in una serie temporale distribuita in modo indipendente (i.i.d.) in base alla stima della densità del kernel adattiva e alle martingali.
public sealed class IidChangePointEstimator : Microsoft.ML.Data.TrivialEstimator<Microsoft.ML.Transforms.TimeSeries.IidChangePointDetector>
type IidChangePointEstimator = class
inherit TrivialEstimator<IidChangePointDetector>
Public NotInheritable Class IidChangePointEstimator
Inherits TrivialEstimator(Of IidChangePointDetector)
- Ereditarietà
Commenti
Per creare questo strumento di stima, usare DetectIidChangePoint.
Colonne di input e output
È presente una sola colonna di input. La colonna di input deve essere Single la posizione in cui un Single valore indica un valore in corrispondenza di un timestamp nella serie temporale.
Produce una colonna che è un vettore con 4 elementi. Il vettore di output contiene in sequenza il livello di avviso (valore diverso da zero indica un punto di modifica), il punteggio, il valore p e il valore martingale.
Caratteristiche dello strumento di stima
Questo strumento di stima deve esaminare i dati per eseguire il training dei relativi parametri? | No |
Tipo di dati della colonna di input | Single |
Tipo di dati della colonna di output | Vettore a 4 elementi diDouble |
Esportabile in ONNX | No |
Caratteristiche dello strumento di stima
Attività di Machine Learning | Rilevamento anomalie |
La normalizzazione è necessaria? | No |
La memorizzazione nella cache è necessaria? | No |
NuGet richiesto oltre a Microsoft.ML | Microsoft.ML.TimeSeries |
Dettagli algoritmo di training
Questo formatore presuppone che i punti dati raccolti nella serie temporale vengano campionati in modo indipendente dalla stessa distribuzione (indipendentemente distribuita in modo identico). Di conseguenza, il valore al timestamp corrente può essere visualizzato come valore al timestamp successivo in previsione. Se il valore osservato al timestamp $t-1$ è $p$, anche il valore stimato a $t$ timestamp sarà $p$.
Punteggiore anomalie
Una volta calcolato il punteggio non elaborato in un timestamp, viene inserito nel componente del scorer anomalie per calcolare il punteggio di anomalia finale in quel timestamp. Ci sono due statistiche coinvolte in questo scorer, p-value e martingale score.
Punteggio P-value
Il punteggio p-value indica il valore p del punteggio non elaborato calcolato corrente in base a una distribuzione di punteggi non elaborati. In questo caso, la distribuzione viene stimata in base ai valori del punteggio non elaborato più recenti fino a una certa profondità nella cronologia. In particolare, questa distribuzione viene stimata usando la stima della densità del kernel con i kernel gaussiani della larghezza di banda adattiva. Il punteggio p-value è sempre in $[0, 1]$, e il valore inferiore, maggiore è la probabilità che il punto corrente sia un outlier (noto anche come picco).
Rilevamento dei punti di modifica in base al punteggio martingale
Il punteggio martingale è un livello aggiuntivo di punteggio basato sui punteggi p-value. L'idea è basata su Exchangeability Martingales che rilevano una modifica della distribuzione su un flusso di valori i.i.d. In breve, il valore del punteggio martingale inizia ad aumentare in modo significativo quando viene rilevata una sequenza di piccoli valori p in una riga; indica la modifica della distribuzione del processo di generazione dei dati sottostante. Di conseguenza, il punteggio martingale viene usato per il rilevamento dei punti di modifica. Data una sequenza di valori p osservati più di recente, $p 1, \dots, p_n$, il punteggio martingale viene calcolato come:? $s(p1, \dots, p_n) = \prod_{i=1}^n \beta(p_i)$. Esistono due opzioni di $\beta$: $\beta(p) = e p^{\epsilon - 1}$ per $0 < \epsilon < 1$ o $\beta(p) = \int_{0}^1 \epsilon p^{\epsilon - 1} d\epsilon$.
Se il punteggio martingle supera $s(q_1, \dots, q_n)$ dove $q_i=1 - \frac{\text{confidence}}${100}, il timestamp associato potrebbe ottenere un valore di avviso diverso da zero per il rilevamento dei punti di modifica. Si noti che $\text{confidence}$ è definito nelle firme di DetectChangePointBySsa o DetectIidChangePoint.
Vedere la sezione Vedere anche i collegamenti agli esempi di utilizzo.
Metodi
Fit(IDataView) |
Rilevare una modifica del segnale in una serie temporale distribuita in modo indipendente (i.i.d.) in base alla stima della densità del kernel adattiva e alle martingali. (Ereditato da TrivialEstimator<TTransformer>) |
GetOutputSchema(SchemaShape) |
Restituisce l'oggetto SchemaShape dello schema che verrà prodotto dal trasformatore. Usato per la propagazione e la verifica dello schema in una pipeline. |
Metodi di estensione
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Aggiungere un "checkpoint di memorizzazione nella cache" alla catena di stima. Ciò garantisce che gli estimatori downstream vengano sottoposti a training in base ai dati memorizzati nella cache. È utile avere un checkpoint di memorizzazione nella cache prima che i formatori eseseguono più passaggi di dati. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dato un estimator, restituire un oggetto wrapping che chiamerà un delegato una volta Fit(IDataView) chiamato. È spesso importante che uno strumento di stima restituisca informazioni sull'adattamento, motivo per cui il Fit(IDataView) metodo restituisce un oggetto tipizzato in modo specifico, anziché solo un oggetto generale ITransformer. Tuttavia, allo stesso tempo, IEstimator<TTransformer> vengono spesso formati in pipeline con molti oggetti, quindi potrebbe essere necessario creare una catena di estimatori tramite EstimatorChain<TLastTransformer> dove lo strumento di stima per il quale si vuole ottenere il trasformatore è sepolto in una posizione in questa catena. Per questo scenario, è possibile collegare un delegato che verrà chiamato una volta chiamato fit. |