다음을 통해 공유


TimeSeriesCatalog.DetectIidSpike 메서드

정의

오버로드

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

적응형 커널 밀도 예측 및 martingale 점수를 기반으로 독립적으로 동일하게 분산된(즉, d.d.) 시계열의 급증을 예측하는 CreateIidSpikeEstimator.

DetectIidSpike(TransformsCatalog, String, String, Int32, Int32, AnomalySide)
사용되지 않음.

적응형 커널 밀도 예측 및 martingale 점수를 기반으로 독립적으로 동일하게 분산된(즉, d.d.) 시계열의 급증을 예측하는 CreateIidSpikeEstimator.

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

적응형 커널 밀도 예측 및 martingale 점수를 기반으로 독립적으로 동일하게 분산된(즉, d.d.) 시계열의 급증을 예측하는 CreateIidSpikeEstimator.

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. 벡터에는 경고(0이 아닌 값은 스파이크를 의미함), 원시 점수 및 p-값의 3가지 요소가 포함됩니다.

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.

적응형 커널 밀도 예측 및 martingale 점수를 기반으로 독립적으로 동일하게 분산된(즉, d.d.) 시계열의 급증을 예측하는 CreateIidSpikeEstimator.

[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. 벡터에는 경고(0이 아닌 값은 스파이크를 의미함), 원시 점수 및 p-값의 3가지 요소가 포함됩니다.

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; }
        }
    }
}

적용 대상