Поделиться через


TimeSeriesCatalog.DetectIidSpike Метод

Определение

Перегрузки

DetectIidSpike(TransformsCatalog, String, String, Double, Int32, AnomalySide)

Создание IidSpikeEstimator, которое прогнозирует пики независимо распределенных (i.i.d.) временных рядов на основе адаптивной оценки плотности ядра и оценки мартингала.

DetectIidSpike(TransformsCatalog, String, String, Int32, Int32, AnomalySide)
Устаревшие..

Создание IidSpikeEstimator, которое прогнозирует пики независимо распределенных (i.i.d.) временных рядов на основе адаптивной оценки плотности ядра и оценки мартингала.

DetectIidSpike(TransformsCatalog, String, String, Double, Int32, AnomalySide)

Создание IidSpikeEstimator, которое прогнозирует пики независимо распределенных (i.i.d.) временных рядов на основе адаптивной оценки плотности ядра и оценки мартингала.

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

Параметры

catalog
TransformsCatalog

Каталог преобразования.

outputColumnName
String

Имя столбца, полученного из преобразования inputColumnName. Данные столбца являются вектором Double. Вектор содержит три элемента: оповещение (ненулевое значение означает всплеск), необработанную оценку и p-значение.

inputColumnName
String

Имя столбца для преобразования. Данные столбца должны быть Single. Если задано nullзначение , значение будет outputColumnName использоваться в качестве источника.

confidence
Double

Достоверность обнаружения пиков в диапазоне [0, 100].

pvalueHistoryLength
Int32

Размер скользящего окна для вычисления p-значения.

side
AnomalySide

Аргумент, определяющий, следует ли обнаруживать положительные или отрицательные аномалии или оба.

Возвращаемое значение

Примеры

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

namespace Samples.Dynamic
{
    public static class DetectIidSpikeBatchPrediction
    {
        // 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.
        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 spike
            const int Size = 10;
            var data = new List<TimeSeriesData>(Size + 1)
            {
                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),

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

                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),
            };

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

            // Setup the estimator arguments
            string outputColumnName = nameof(IidSpikePrediction.Prediction);
            string inputColumnName = nameof(TimeSeriesData.Value);

            // The transformed data.
            var transformedData = ml.Transforms.DetectIidSpike(outputColumnName,
                inputColumnName, 95.0d, Size / 4).Fit(dataView).Transform(dataView);

            // Getting the data of the newly created column as an IEnumerable of
            // IidSpikePrediction.
            var predictionColumn = ml.Data.CreateEnumerable<IidSpikePrediction>(
                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
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
            // 10      1       10.00   0.00   <-- alert is on, predicted spike
            // 5       0       5.00    0.26
            // 5       0       5.00    0.26
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
        }

        private static void PrintPrediction(float value, IidSpikePrediction
            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 IidSpikePrediction
        {
            [VectorType(3)]
            public double[] Prediction { get; set; }
        }
    }
}

Применяется к

DetectIidSpike(TransformsCatalog, String, String, Int32, Int32, AnomalySide)

Внимание!

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

Создание IidSpikeEstimator, которое прогнозирует пики независимо распределенных (i.i.d.) временных рядов на основе адаптивной оценки плотности ядра и оценки мартингала.

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

Параметры

catalog
TransformsCatalog

Каталог преобразования.

outputColumnName
String

Имя столбца, полученного из преобразования inputColumnName. Данные столбца являются вектором Double. Вектор содержит три элемента: оповещение (ненулевое значение означает всплеск), необработанную оценку и p-значение.

inputColumnName
String

Имя столбца для преобразования. Данные столбца должны быть Single. Если задано nullзначение , значение будет outputColumnName использоваться в качестве источника.

confidence
Int32

Достоверность обнаружения пиков в диапазоне [0, 100].

pvalueHistoryLength
Int32

Размер скользящего окна для вычисления p-значения.

side
AnomalySide

Аргумент, определяющий, следует ли обнаруживать положительные или отрицательные аномалии или оба.

Возвращаемое значение

Атрибуты

Примеры

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

namespace Samples.Dynamic
{
    public static class DetectIidSpikeBatchPrediction
    {
        // 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.
        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 spike
            const int Size = 10;
            var data = new List<TimeSeriesData>(Size + 1)
            {
                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),

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

                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),
                new TimeSeriesData(5),
            };

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

            // Setup the estimator arguments
            string outputColumnName = nameof(IidSpikePrediction.Prediction);
            string inputColumnName = nameof(TimeSeriesData.Value);

            // The transformed data.
            var transformedData = ml.Transforms.DetectIidSpike(outputColumnName,
                inputColumnName, 95.0d, Size / 4).Fit(dataView).Transform(dataView);

            // Getting the data of the newly created column as an IEnumerable of
            // IidSpikePrediction.
            var predictionColumn = ml.Data.CreateEnumerable<IidSpikePrediction>(
                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
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
            // 10      1       10.00   0.00   <-- alert is on, predicted spike
            // 5       0       5.00    0.26
            // 5       0       5.00    0.26
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
            // 5       0       5.00    0.50
        }

        private static void PrintPrediction(float value, IidSpikePrediction
            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 IidSpikePrediction
        {
            [VectorType(3)]
            public double[] Prediction { get; set; }
        }
    }
}

Применяется к