TimeSeriesCatalog.DetectIidChangePoint Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
DetectIidChangePoint(TransformsCatalog, String, String, Double, Int32, MartingaleType, Double) |
Creare IidChangePointEstimator, che stima i punti di modifica in una serie temporale distribuita in modo indipendente (i.i.d.) in base alle stime della densità del kernel adattivo e ai punteggi martingale. |
DetectIidChangePoint(TransformsCatalog, String, String, Int32, Int32, MartingaleType, Double) |
Obsoleti.
Creare IidChangePointEstimator, che stima i punti di modifica in una serie temporale distribuita in modo indipendente (i.i.d.) in base alle stime della densità del kernel adattivo e ai punteggi martingale. |
DetectIidChangePoint(TransformsCatalog, String, String, Double, Int32, MartingaleType, Double)
Creare IidChangePointEstimator, che stima i punti di modifica in una serie temporale distribuita in modo indipendente (i.i.d.) in base alle stime della densità del kernel adattivo e ai punteggi martingale.
public static Microsoft.ML.Transforms.TimeSeries.IidChangePointEstimator DetectIidChangePoint (this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string inputColumnName, double confidence, int changeHistoryLength, Microsoft.ML.Transforms.TimeSeries.MartingaleType martingale = Microsoft.ML.Transforms.TimeSeries.MartingaleType.Power, double eps = 0.1);
static member DetectIidChangePoint : Microsoft.ML.TransformsCatalog * string * string * double * int * Microsoft.ML.Transforms.TimeSeries.MartingaleType * double -> Microsoft.ML.Transforms.TimeSeries.IidChangePointEstimator
<Extension()>
Public Function DetectIidChangePoint (catalog As TransformsCatalog, outputColumnName As String, inputColumnName As String, confidence As Double, changeHistoryLength As Integer, Optional martingale As MartingaleType = Microsoft.ML.Transforms.TimeSeries.MartingaleType.Power, Optional eps As Double = 0.1) As IidChangePointEstimator
Parametri
- catalog
- TransformsCatalog
Catalogo della trasformazione.
- outputColumnName
- String
Nome della colonna risultante dalla trasformazione di inputColumnName
.
I dati della colonna sono un vettore di Double. Il vettore contiene 4 elementi: avviso (valore diverso da zero significa un punto di modifica), punteggio non elaborato, p-Value e punteggio martingale.
- inputColumnName
- String
Nome della colonna da trasformare. I dati della colonna devono essere Single. Se impostato su null
, il valore di outputColumnName
verrà usato come origine.
- confidence
- Double
Attendibilità per il rilevamento dei punti di modifica nell'intervallo [0, 100].
- changeHistoryLength
- Int32
Lunghezza della finestra scorrevole sui valori p per calcolare il punteggio martingale.
- martingale
- MartingaleType
Martingale utilizzato per l'assegnazione dei punteggi.
- eps
- Double
Parametro epsilon per Power martingale.
Restituisce
Esempio
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Collections.Generic;
using Microsoft.ML;
using Microsoft.ML.Data;
namespace Samples.Dynamic
{
public static class DetectIidChangePointBatchPrediction
{
// 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 points where data distribution changed.
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 change
const int Size = 16;
var data = new List<TimeSeriesData>(Size)
{
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
//Change point data.
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
};
// Convert data to IDataView.
var dataView = ml.Data.LoadFromEnumerable(data);
// Setup estimator arguments
string outputColumnName = nameof(ChangePointPrediction.Prediction);
string inputColumnName = nameof(TimeSeriesData.Value);
// The transformed data.
var transformedData = ml.Transforms.DetectIidChangePoint(
outputColumnName, inputColumnName, 95.0d, Size / 4).Fit(dataView)
.Transform(dataView);
// Getting the data of the newly created column as an IEnumerable of
// ChangePointPrediction.
var predictionColumn = ml.Data.CreateEnumerable<ChangePointPrediction>(
transformedData, reuseRowObject: false);
Console.WriteLine($"{outputColumnName} column obtained " +
$"post-transformation.");
Console.WriteLine("Data\tAlert\tScore\tP-Value\tMartingale value");
int k = 0;
foreach (var prediction in predictionColumn)
PrintPrediction(data[k++].Value, prediction);
// Prediction column obtained post-transformation.
// Data Alert Score P-Value Martingale value
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 7 1 7.00 0.00 10298.67 <-- alert is on, predicted changepoint
// 7 0 7.00 0.13 33950.16
// 7 0 7.00 0.26 60866.34
// 7 0 7.00 0.38 78362.04
// 7 0 7.00 0.50 0.01
// 7 0 7.00 0.50 0.00
// 7 0 7.00 0.50 0.00
// 7 0 7.00 0.50 0.00
}
private static void PrintPrediction(float value, ChangePointPrediction
prediction) =>
Console.WriteLine("{0}\t{1}\t{2:0.00}\t{3:0.00}\t{4:0.00}", value,
prediction.Prediction[0], prediction.Prediction[1],
prediction.Prediction[2], prediction.Prediction[3]);
class ChangePointPrediction
{
[VectorType(4)]
public double[] Prediction { get; set; }
}
class TimeSeriesData
{
public float Value;
public TimeSeriesData(float value)
{
Value = value;
}
}
}
}
Si applica a
DetectIidChangePoint(TransformsCatalog, String, String, Int32, Int32, MartingaleType, Double)
Attenzione
This API method is deprecated, please use the overload with confidence parameter of type double.
Creare IidChangePointEstimator, che stima i punti di modifica in una serie temporale distribuita in modo indipendente (i.i.d.) in base alle stime della densità del kernel adattivo e ai punteggi martingale.
[System.Obsolete("This API method is deprecated, please use the overload with confidence parameter of type double.")]
public static Microsoft.ML.Transforms.TimeSeries.IidChangePointEstimator DetectIidChangePoint (this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string inputColumnName, int confidence, int changeHistoryLength, Microsoft.ML.Transforms.TimeSeries.MartingaleType martingale = Microsoft.ML.Transforms.TimeSeries.MartingaleType.Power, double eps = 0.1);
public static Microsoft.ML.Transforms.TimeSeries.IidChangePointEstimator DetectIidChangePoint (this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string inputColumnName, int confidence, int changeHistoryLength, Microsoft.ML.Transforms.TimeSeries.MartingaleType martingale = Microsoft.ML.Transforms.TimeSeries.MartingaleType.Power, double eps = 0.1);
[<System.Obsolete("This API method is deprecated, please use the overload with confidence parameter of type double.")>]
static member DetectIidChangePoint : Microsoft.ML.TransformsCatalog * string * string * int * int * Microsoft.ML.Transforms.TimeSeries.MartingaleType * double -> Microsoft.ML.Transforms.TimeSeries.IidChangePointEstimator
static member DetectIidChangePoint : Microsoft.ML.TransformsCatalog * string * string * int * int * Microsoft.ML.Transforms.TimeSeries.MartingaleType * double -> Microsoft.ML.Transforms.TimeSeries.IidChangePointEstimator
<Extension()>
Public Function DetectIidChangePoint (catalog As TransformsCatalog, outputColumnName As String, inputColumnName As String, confidence As Integer, changeHistoryLength As Integer, Optional martingale As MartingaleType = Microsoft.ML.Transforms.TimeSeries.MartingaleType.Power, Optional eps As Double = 0.1) As IidChangePointEstimator
Parametri
- catalog
- TransformsCatalog
Catalogo della trasformazione.
- outputColumnName
- String
Nome della colonna risultante dalla trasformazione di inputColumnName
.
I dati della colonna sono un vettore di Double. Il vettore contiene 4 elementi: avviso (valore diverso da zero significa un punto di modifica), punteggio non elaborato, p-Value e punteggio martingale.
- inputColumnName
- String
Nome della colonna da trasformare. I dati della colonna devono essere Single. Se impostato su null
, il valore di outputColumnName
verrà usato come origine.
- confidence
- Int32
Attendibilità per il rilevamento dei punti di modifica nell'intervallo [0, 100].
- changeHistoryLength
- Int32
Lunghezza della finestra scorrevole sui valori p per calcolare il punteggio martingale.
- martingale
- MartingaleType
Martingale utilizzato per l'assegnazione dei punteggi.
- eps
- Double
Parametro epsilon per Power martingale.
Restituisce
- Attributi
Esempio
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Collections.Generic;
using Microsoft.ML;
using Microsoft.ML.Data;
namespace Samples.Dynamic
{
public static class DetectIidChangePointBatchPrediction
{
// 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 points where data distribution changed.
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 change
const int Size = 16;
var data = new List<TimeSeriesData>(Size)
{
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
new TimeSeriesData(5),
//Change point data.
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
new TimeSeriesData(7),
};
// Convert data to IDataView.
var dataView = ml.Data.LoadFromEnumerable(data);
// Setup estimator arguments
string outputColumnName = nameof(ChangePointPrediction.Prediction);
string inputColumnName = nameof(TimeSeriesData.Value);
// The transformed data.
var transformedData = ml.Transforms.DetectIidChangePoint(
outputColumnName, inputColumnName, 95.0d, Size / 4).Fit(dataView)
.Transform(dataView);
// Getting the data of the newly created column as an IEnumerable of
// ChangePointPrediction.
var predictionColumn = ml.Data.CreateEnumerable<ChangePointPrediction>(
transformedData, reuseRowObject: false);
Console.WriteLine($"{outputColumnName} column obtained " +
$"post-transformation.");
Console.WriteLine("Data\tAlert\tScore\tP-Value\tMartingale value");
int k = 0;
foreach (var prediction in predictionColumn)
PrintPrediction(data[k++].Value, prediction);
// Prediction column obtained post-transformation.
// Data Alert Score P-Value Martingale value
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 5 0 5.00 0.50 0.00
// 7 1 7.00 0.00 10298.67 <-- alert is on, predicted changepoint
// 7 0 7.00 0.13 33950.16
// 7 0 7.00 0.26 60866.34
// 7 0 7.00 0.38 78362.04
// 7 0 7.00 0.50 0.01
// 7 0 7.00 0.50 0.00
// 7 0 7.00 0.50 0.00
// 7 0 7.00 0.50 0.00
}
private static void PrintPrediction(float value, ChangePointPrediction
prediction) =>
Console.WriteLine("{0}\t{1}\t{2:0.00}\t{3:0.00}\t{4:0.00}", value,
prediction.Prediction[0], prediction.Prediction[1],
prediction.Prediction[2], prediction.Prediction[3]);
class ChangePointPrediction
{
[VectorType(4)]
public double[] Prediction { get; set; }
}
class TimeSeriesData
{
public float Value;
public TimeSeriesData(float value)
{
Value = value;
}
}
}
}