IidChangePointEstimator Clase

Definición

Detecte un cambio de señal en una serie temporal distribuida de forma independiente (i.i.d.) basada en la estimación de densidad del kernel adaptable y martingales.

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)
Herencia

Comentarios

Para crear este estimador, use DetectIidChangePoint.

Columnas de entrada y salida

Solo hay una columna de entrada. La columna de entrada debe ser Single donde un Single valor indica un valor en una marca de tiempo de la serie temporal.

Genera una columna que es un vector con 4 elementos. El vector de salida contiene secuencialmente el nivel de alerta (un valor distinto de cero significa un punto de cambio), la puntuación, el valor p y el valor martingale.

Características del estimador

¿Este estimador necesita examinar los datos para entrenar sus parámetros? No
Tipo de datos de columna de entrada Single
Tipo de datos de columna de salida Vector de 4 elementos deDouble
Exportable a ONNX No

Características del estimador

Tarea de Machine Learning Detección de anomalías
¿Se requiere normalización? No
¿Se requiere el almacenamiento en caché? No
NuGet necesario además de Microsoft.ML Microsoft.ML.TimeSeries

Detalles del algoritmo de entrenamiento

En este instructor se supone que los puntos de datos recopilados en la serie temporal se muestrean de forma independiente de la misma distribución (independiente distribuida de forma idéntica). Por lo tanto, el valor de la marca de tiempo actual se puede ver como el valor en la siguiente marca de tiempo esperada. Si el valor observado en la marca de tiempo $t-1$ es $p$, el valor previsto en $t$ marca de tiempo también sería $p$ .

Anomaly Scorer

Una vez calculada la puntuación sin procesar en una marca de tiempo, se envía al componente de marcador de anomalías para calcular la puntuación final de anomalías en esa marca de tiempo. Hay dos estadísticas implicadas en este scorer, p-value y martingale score.

Puntuación de valor P

La puntuación p-value indica el valor p de la puntuación sin procesar calculada actual según una distribución de puntuaciones sin procesar. Aquí, la distribución se calcula en función de los valores de puntuación sin procesar más recientes hasta cierta profundidad en el historial. Más concretamente, esta distribución se calcula mediante la estimación de densidad del kernel con los kernels gaussianos de ancho de banda adaptable. La puntuación p-value siempre está en $[0, 1]$, y el menor su valor, lo más probable es que el punto actual sea un valor atípico (también conocido como pico).

Detección de puntos de cambio basada en la puntuación de martingala

La puntuación de martingala es un nivel adicional de puntuación que se basa en las puntuaciones de valor p. La idea se basa en los martingales de exchangeabilidad que detectan un cambio de distribución en una secuencia de valores i.i.d. En resumen, el valor de la puntuación de martingala comienza a aumentar significativamente cuando una secuencia de valores p pequeños detectados en una fila; esto indica el cambio de la distribución del proceso de generación de datos subyacente. Por lo tanto, la puntuación de martingala se usa para la detección de puntos de cambio. Dada una secuencia de valores p observados más recientemente, $p 1, \dots, p_n$, la puntuación de martingale se calcula como:? $s(p1, \dots, p_n) = \prod_{i=1}^n \beta(p_i)$. Hay dos opciones de $\beta$: $\beta(p) = e p^{\epsilon - 1}$ para $0 < \epsilon < 1$ o $\beta(p) = \int_{0}^1 \epsilon p^{\epsilon - 1} d\epsilon$.

Si la puntuación de martingle supera $s(q_1, \dots, q_n)$ donde $q_i=1 - \frac{\text{confidence}}{100}$, la marca de tiempo asociada puede obtener un valor de alerta distinto de cero para la detección de puntos de cambio. Tenga en cuenta que $\text{confidence}$ se define en las firmas de DetectChangePointBySsa o DetectIidChangePoint.

Consulte la sección Consulte también los vínculos a ejemplos de uso.

Métodos

Fit(IDataView)

Detecte un cambio de señal en una serie temporal distribuida de forma independiente (i.i.d.) basada en la estimación de densidad del kernel adaptable y martingales.

(Heredado de TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Devuelve el SchemaShape valor del esquema que generará el transformador. Se usa para la propagación y comprobación de esquemas en una canalización.

Métodos de extensión

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Anexe un "punto de control de almacenamiento en caché" a la cadena del estimador. Esto garantizará que los estimadores de nivel inferior se entrenarán con los datos almacenados en caché. Resulta útil tener un punto de control de almacenamiento en caché antes de que los instructores tomen varios pases de datos.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Dado un estimador, devuelva un objeto de ajuste que llamará a un delegado una vez Fit(IDataView) que se llame. A menudo, es importante que un estimador devuelva información sobre lo que cabe, por lo que el Fit(IDataView) método devuelve un objeto con tipo específico, en lugar de simplemente un general ITransformer. Sin embargo, al mismo tiempo, IEstimator<TTransformer> a menudo se forman en canalizaciones con muchos objetos, por lo que es posible que tengamos que crear una cadena de estimadores a través EstimatorChain<TLastTransformer> de donde el estimador para el que queremos obtener el transformador está enterrado en algún lugar de esta cadena. En ese escenario, podemos a través de este método adjuntar un delegado al que se llamará una vez que se llame a fit.

Se aplica a

Consulte también