SsaSpikeEstimator Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before itâ€™s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Detect spikes in time series using Singular Spectrum Analysis.
public sealed class SsaSpikeEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.TimeSeries.SsaSpikeDetector>
type SsaSpikeEstimator = class
interface IEstimator<SsaSpikeDetector>
Public NotInheritable Class SsaSpikeEstimator
Implements IEstimator(Of SsaSpikeDetector)
 Inheritance

SsaSpikeEstimator
 Implements
Remarks
To create this estimator, use DetectSpikeBySsa
Input and Output Columns
There is only one input column. The input column must be Single where a Single value indicates a value at a timestamp in the time series.
It produces a column that is a vector with 3 elements. The output vector sequentially contains alert level (nonzero value means a change point), score, and pvalue.
Estimator Characteristics
Does this estimator need to look at the data to train its parameters?  Yes 
Input column data type  Single 
Output column data type  3element vector of Double 
Exportable to ONNX  No 
Estimator Characteristics
Machine learning task  Anomaly detection 
Is normalization required?  No 
Is caching required?  No 
Required NuGet in addition to Microsoft.ML  Microsoft.ML.TimeSeries 
Training Algorithm Details
This class implements the general anomaly detection transform based on Singular Spectrum Analysis (SSA). SSA is a powerful framework for decomposing the timeseries into trend, seasonality and noise components as well as forecasting the future values of the timeseries. In principle, SSA performs spectral analysis on the input timeseries where each component in the spectrum corresponds to a trend, seasonal or noise component in the timeseries. For details of the Singular Spectrum Analysis (SSA), refer to this document.
Anomaly Scorer
Once the raw score at a timestamp is computed, it is fed to the anomaly scorer component to calculate the final anomaly score at that timestamp.
Spike detection based on pvalue
The pvalue score indicates whether the current point is an outlier (also known as a spike). The lower its value, the more likely it is a spike. The pvalue score is always in $[0, 1]$.
This score is the pvalue of the current computed raw score according to a distribution of raw scores. Here, the distribution is estimated based on the most recent raw score values up to certain depth back in the history. More specifically, this distribution is estimated using kernel density estimation with the Gaussian kernels of adaptive bandwidth.
If the pvalue score exceeds $1  \frac{\text{confidence}}{100}$, the associated timestamp may get a nonzero alert value in spike detection, which means a spike point is detected. Note that $\text{confidence}$ is defined in the signatures of DetectIidSpike and DetectSpikeBySsa.
Check the See Also section for links to usage examples.
Methods
Fit(IDataView) 
Train and return a transformer. 
GetOutputSchema(SchemaShape) 
Schema propagation for transformers. Returns the output schema of the data, if the input schema is like the one provided. 
Extension Methods
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) 
Append a 'caching checkpoint' to the estimator chain. This will ensure that the downstream estimators will be trained against cached data. It is helpful to have a caching checkpoint before trainers that take multiple data passes. 
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) 
Given an estimator, return a wrapping object that will call a delegate once Fit(IDataView) is called. It is often important for an estimator to return information about what was fit, which is why the Fit(IDataView) method returns a specifically typed object, rather than just a general ITransformer. However, at the same time, IEstimator<TTransformer> are often formed into pipelines with many objects, so we may need to build a chain of estimators via EstimatorChain<TLastTransformer> where the estimator for which we want to get the transformer is buried somewhere in this chain. For that scenario, we can through this method attach a delegate that will be called once fit is called. 
Applies to
See also
Feedback
Submit and view feedback for