Aracılığıyla paylaş


TimeSeriesCatalog.DetectSpikeBySsa Yöntem

Tanım

Aşırı Yüklemeler

DetectSpikeBySsa(TransformsCatalog, String, String, Double, Int32, Int32, Int32, AnomalySide, ErrorFunction)

Tekil Spektrum Analizi'ni (SSA) kullanarak zaman serisindeki ani artışları tahmin eden öğesini oluşturunSsaSpikeEstimator.

DetectSpikeBySsa(TransformsCatalog, String, String, Int32, Int32, Int32, Int32, AnomalySide, ErrorFunction)
Geçersiz.

Tekil Spektrum Analizi'ni (SSA) kullanarak zaman serisindeki ani artışları tahmin eden öğesini oluşturunSsaSpikeEstimator.

DetectSpikeBySsa(TransformsCatalog, String, String, Double, Int32, Int32, Int32, AnomalySide, ErrorFunction)

Tekil Spektrum Analizi'ni (SSA) kullanarak zaman serisindeki ani artışları tahmin eden öğesini oluşturunSsaSpikeEstimator.

public static Microsoft.ML.Transforms.TimeSeries.SsaSpikeEstimator DetectSpikeBySsa (this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string inputColumnName, double confidence, int pvalueHistoryLength, int trainingWindowSize, int seasonalityWindowSize, Microsoft.ML.Transforms.TimeSeries.AnomalySide side = Microsoft.ML.Transforms.TimeSeries.AnomalySide.TwoSided, Microsoft.ML.Transforms.TimeSeries.ErrorFunction errorFunction = Microsoft.ML.Transforms.TimeSeries.ErrorFunction.SignedDifference);
static member DetectSpikeBySsa : Microsoft.ML.TransformsCatalog * string * string * double * int * int * int * Microsoft.ML.Transforms.TimeSeries.AnomalySide * Microsoft.ML.Transforms.TimeSeries.ErrorFunction -> Microsoft.ML.Transforms.TimeSeries.SsaSpikeEstimator
<Extension()>
Public Function DetectSpikeBySsa (catalog As TransformsCatalog, outputColumnName As String, inputColumnName As String, confidence As Double, pvalueHistoryLength As Integer, trainingWindowSize As Integer, seasonalityWindowSize As Integer, Optional side As AnomalySide = Microsoft.ML.Transforms.TimeSeries.AnomalySide.TwoSided, Optional errorFunction As ErrorFunction = Microsoft.ML.Transforms.TimeSeries.ErrorFunction.SignedDifference) As SsaSpikeEstimator

Parametreler

catalog
TransformsCatalog

Dönüşümün kataloğu.

outputColumnName
String

dönüştürmesinden kaynaklanan sütunun inputColumnNameadı. Sütun verileri bir vektördür Double. Vektör 3 öğe içerir: uyarı (sıfır olmayan değer ani artış anlamına gelir), ham puan ve p değeri.

inputColumnName
String

Dönüştürülecek sütunun adı. Sütun verileri olmalıdır Single. olarak ayarlanırsa nulldeğeri outputColumnName kaynak olarak kullanılır.

confidence
Double

[0, 100] aralığında ani algılama için güvenilirlik.

pvalueHistoryLength
Int32

p değerini hesaplamaya yönelik kayan pencerenin boyutu.

trainingWindowSize
Int32

Eğitim için kullanılan sıranın başından itibaren nokta sayısı.

seasonalityWindowSize
Int32

Giriş zaman serisindeki ilgili en büyük mevsimsellik üst sınırı.

side
AnomalySide

Pozitif veya negatif anomalilerin veya her ikisinin de algılanıp algılamayacağını belirleyen bağımsız değişken.

errorFunction
ErrorFunction

Beklenen ile gözlemlenen değer arasındaki hatayı hesaplamak için kullanılan işlev.

Döndürülenler

Örnekler

using System;
using System.Collections.Generic;
using Microsoft.ML;
using Microsoft.ML.Data;

namespace Samples.Dynamic
{
    public static class DetectSpikeBySsaBatchPrediction
    {
        // This example creates a time series (list of Data with the i-th element
        // corresponding to the i-th time slot). The estimator is applied then to
        // identify spiking points in the series. This estimator can account for
        // temporal seasonality in the data.
        public static void Example()
        {
            // Create a new ML context, for ML.NET operations. It can be used for
            // exception tracking and logging, as well as the source of randomness.
            var ml = new MLContext();

            // Generate sample series data with a recurring pattern and a spike
            // within the pattern
            const int SeasonalitySize = 5;
            const int TrainingSeasons = 3;
            const int TrainingSize = SeasonalitySize * TrainingSeasons;
            var data = new List<TimeSeriesData>()
            {
                new TimeSeriesData(0),
                new TimeSeriesData(1),
                new TimeSeriesData(2),
                new TimeSeriesData(3),
                new TimeSeriesData(4),

                new TimeSeriesData(0),
                new TimeSeriesData(1),
                new TimeSeriesData(2),
                new TimeSeriesData(3),
                new TimeSeriesData(4),

                new TimeSeriesData(0),
                new TimeSeriesData(1),
                new TimeSeriesData(2),
                new TimeSeriesData(3),
                new TimeSeriesData(4),

                //This is a spike.
                new TimeSeriesData(100),

                new TimeSeriesData(0),
                new TimeSeriesData(1),
                new TimeSeriesData(2),
                new TimeSeriesData(3),
                new TimeSeriesData(4),
            };

            // Convert data to IDataView.
            var dataView = ml.Data.LoadFromEnumerable(data);

            // Setup estimator arguments
            var inputColumnName = nameof(TimeSeriesData.Value);
            var outputColumnName = nameof(SsaSpikePrediction.Prediction);

            // The transformed data.
            var transformedData = ml.Transforms.DetectSpikeBySsa(outputColumnName,
                inputColumnName, 95.0d, 8, TrainingSize, SeasonalitySize + 1).Fit(
                dataView).Transform(dataView);

            // Getting the data of the newly created column as an IEnumerable of
            // SsaSpikePrediction.
            var predictionColumn = ml.Data.CreateEnumerable<SsaSpikePrediction>(
                transformedData, reuseRowObject: false);

            Console.WriteLine($"{outputColumnName} column obtained " +
                $"post-transformation.");

            Console.WriteLine("Data\tAlert\tScore\tP-Value");
            int k = 0;
            foreach (var prediction in predictionColumn)
                PrintPrediction(data[k++].Value, prediction);

            // Prediction column obtained post-transformation.
            // Data    Alert   Score   P-Value
            // 0       0      -2.53    0.50
            // 1       0      -0.01    0.01
            // 2       0       0.76    0.14
            // 3       0       0.69    0.28
            // 4       0       1.44    0.18
            // 0       0      -1.84    0.17
            // 1       0       0.22    0.44
            // 2       0       0.20    0.45
            // 3       0       0.16    0.47
            // 4       0       1.33    0.18
            // 0       0      -1.79    0.07
            // 1       0       0.16    0.50
            // 2       0       0.09    0.50
            // 3       0       0.08    0.45
            // 4       0       1.31    0.12
            // 100     1      98.21    0.00   <-- alert is on, predicted spike
            // 0       0     -13.83    0.29
            // 1       0      -1.74    0.44
            // 2       0      -0.47    0.46
            // 3       0     -16.50    0.29
            // 4       0     -29.82    0.21
        }

        private static void PrintPrediction(float value, SsaSpikePrediction
            prediction) =>
            Console.WriteLine("{0}\t{1}\t{2:0.00}\t{3:0.00}", value,
            prediction.Prediction[0], prediction.Prediction[1],
            prediction.Prediction[2]);

        class TimeSeriesData
        {
            public float Value;

            public TimeSeriesData(float value)
            {
                Value = value;
            }
        }

        class SsaSpikePrediction
        {
            [VectorType(3)]
            public double[] Prediction { get; set; }
        }
    }
}

Şunlara uygulanır

DetectSpikeBySsa(TransformsCatalog, String, String, Int32, Int32, Int32, Int32, AnomalySide, ErrorFunction)

Dikkat

This API method is deprecated, please use the overload with confidence parameter of type double.

Tekil Spektrum Analizi'ni (SSA) kullanarak zaman serisindeki ani artışları tahmin eden öğesini oluşturunSsaSpikeEstimator.

[System.Obsolete("This API method is deprecated, please use the overload with confidence parameter of type double.")]
public static Microsoft.ML.Transforms.TimeSeries.SsaSpikeEstimator DetectSpikeBySsa (this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string inputColumnName, int confidence, int pvalueHistoryLength, int trainingWindowSize, int seasonalityWindowSize, Microsoft.ML.Transforms.TimeSeries.AnomalySide side = Microsoft.ML.Transforms.TimeSeries.AnomalySide.TwoSided, Microsoft.ML.Transforms.TimeSeries.ErrorFunction errorFunction = Microsoft.ML.Transforms.TimeSeries.ErrorFunction.SignedDifference);
public static Microsoft.ML.Transforms.TimeSeries.SsaSpikeEstimator DetectSpikeBySsa (this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string inputColumnName, int confidence, int pvalueHistoryLength, int trainingWindowSize, int seasonalityWindowSize, Microsoft.ML.Transforms.TimeSeries.AnomalySide side = Microsoft.ML.Transforms.TimeSeries.AnomalySide.TwoSided, Microsoft.ML.Transforms.TimeSeries.ErrorFunction errorFunction = Microsoft.ML.Transforms.TimeSeries.ErrorFunction.SignedDifference);
[<System.Obsolete("This API method is deprecated, please use the overload with confidence parameter of type double.")>]
static member DetectSpikeBySsa : Microsoft.ML.TransformsCatalog * string * string * int * int * int * int * Microsoft.ML.Transforms.TimeSeries.AnomalySide * Microsoft.ML.Transforms.TimeSeries.ErrorFunction -> Microsoft.ML.Transforms.TimeSeries.SsaSpikeEstimator
static member DetectSpikeBySsa : Microsoft.ML.TransformsCatalog * string * string * int * int * int * int * Microsoft.ML.Transforms.TimeSeries.AnomalySide * Microsoft.ML.Transforms.TimeSeries.ErrorFunction -> Microsoft.ML.Transforms.TimeSeries.SsaSpikeEstimator
<Extension()>
Public Function DetectSpikeBySsa (catalog As TransformsCatalog, outputColumnName As String, inputColumnName As String, confidence As Integer, pvalueHistoryLength As Integer, trainingWindowSize As Integer, seasonalityWindowSize As Integer, Optional side As AnomalySide = Microsoft.ML.Transforms.TimeSeries.AnomalySide.TwoSided, Optional errorFunction As ErrorFunction = Microsoft.ML.Transforms.TimeSeries.ErrorFunction.SignedDifference) As SsaSpikeEstimator

Parametreler

catalog
TransformsCatalog

Dönüşümün kataloğu.

outputColumnName
String

dönüştürmesinden kaynaklanan sütunun inputColumnNameadı. Sütun verileri bir vektördür Double. Vektör 3 öğe içerir: uyarı (sıfır olmayan değer ani artış anlamına gelir), ham puan ve p değeri.

inputColumnName
String

Dönüştürülecek sütunun adı. Sütun verileri olmalıdır Single. olarak ayarlanırsa nulldeğeri outputColumnName kaynak olarak kullanılır.

confidence
Int32

[0, 100] aralığında ani algılama için güvenilirlik.

pvalueHistoryLength
Int32

p değerini hesaplamaya yönelik kayan pencerenin boyutu.

trainingWindowSize
Int32

Eğitim için kullanılan sıranın başından itibaren nokta sayısı.

seasonalityWindowSize
Int32

Giriş zaman serisindeki ilgili en büyük mevsimsellik üst sınırı.

side
AnomalySide

Pozitif veya negatif anomalilerin veya her ikisinin de algılanıp algılamayacağını belirleyen bağımsız değişken.

errorFunction
ErrorFunction

Beklenen ile gözlemlenen değer arasındaki hatayı hesaplamak için kullanılan işlev.

Döndürülenler

Öznitelikler

Örnekler

using System;
using System.Collections.Generic;
using Microsoft.ML;
using Microsoft.ML.Data;

namespace Samples.Dynamic
{
    public static class DetectSpikeBySsaBatchPrediction
    {
        // This example creates a time series (list of Data with the i-th element
        // corresponding to the i-th time slot). The estimator is applied then to
        // identify spiking points in the series. This estimator can account for
        // temporal seasonality in the data.
        public static void Example()
        {
            // Create a new ML context, for ML.NET operations. It can be used for
            // exception tracking and logging, as well as the source of randomness.
            var ml = new MLContext();

            // Generate sample series data with a recurring pattern and a spike
            // within the pattern
            const int SeasonalitySize = 5;
            const int TrainingSeasons = 3;
            const int TrainingSize = SeasonalitySize * TrainingSeasons;
            var data = new List<TimeSeriesData>()
            {
                new TimeSeriesData(0),
                new TimeSeriesData(1),
                new TimeSeriesData(2),
                new TimeSeriesData(3),
                new TimeSeriesData(4),

                new TimeSeriesData(0),
                new TimeSeriesData(1),
                new TimeSeriesData(2),
                new TimeSeriesData(3),
                new TimeSeriesData(4),

                new TimeSeriesData(0),
                new TimeSeriesData(1),
                new TimeSeriesData(2),
                new TimeSeriesData(3),
                new TimeSeriesData(4),

                //This is a spike.
                new TimeSeriesData(100),

                new TimeSeriesData(0),
                new TimeSeriesData(1),
                new TimeSeriesData(2),
                new TimeSeriesData(3),
                new TimeSeriesData(4),
            };

            // Convert data to IDataView.
            var dataView = ml.Data.LoadFromEnumerable(data);

            // Setup estimator arguments
            var inputColumnName = nameof(TimeSeriesData.Value);
            var outputColumnName = nameof(SsaSpikePrediction.Prediction);

            // The transformed data.
            var transformedData = ml.Transforms.DetectSpikeBySsa(outputColumnName,
                inputColumnName, 95.0d, 8, TrainingSize, SeasonalitySize + 1).Fit(
                dataView).Transform(dataView);

            // Getting the data of the newly created column as an IEnumerable of
            // SsaSpikePrediction.
            var predictionColumn = ml.Data.CreateEnumerable<SsaSpikePrediction>(
                transformedData, reuseRowObject: false);

            Console.WriteLine($"{outputColumnName} column obtained " +
                $"post-transformation.");

            Console.WriteLine("Data\tAlert\tScore\tP-Value");
            int k = 0;
            foreach (var prediction in predictionColumn)
                PrintPrediction(data[k++].Value, prediction);

            // Prediction column obtained post-transformation.
            // Data    Alert   Score   P-Value
            // 0       0      -2.53    0.50
            // 1       0      -0.01    0.01
            // 2       0       0.76    0.14
            // 3       0       0.69    0.28
            // 4       0       1.44    0.18
            // 0       0      -1.84    0.17
            // 1       0       0.22    0.44
            // 2       0       0.20    0.45
            // 3       0       0.16    0.47
            // 4       0       1.33    0.18
            // 0       0      -1.79    0.07
            // 1       0       0.16    0.50
            // 2       0       0.09    0.50
            // 3       0       0.08    0.45
            // 4       0       1.31    0.12
            // 100     1      98.21    0.00   <-- alert is on, predicted spike
            // 0       0     -13.83    0.29
            // 1       0      -1.74    0.44
            // 2       0      -0.47    0.46
            // 3       0     -16.50    0.29
            // 4       0     -29.82    0.21
        }

        private static void PrintPrediction(float value, SsaSpikePrediction
            prediction) =>
            Console.WriteLine("{0}\t{1}\t{2:0.00}\t{3:0.00}", value,
            prediction.Prediction[0], prediction.Prediction[1],
            prediction.Prediction[2]);

        class TimeSeriesData
        {
            public float Value;

            public TimeSeriesData(float value)
            {
                Value = value;
            }
        }

        class SsaSpikePrediction
        {
            [VectorType(3)]
            public double[] Prediction { get; set; }
        }
    }
}

Şunlara uygulanır