TimeSeriesCatalog.DetectSeasonality Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Dans les données de série chronologique, la saisonnalité (ou la périodicité) est la présence de variations qui se produisent à intervalles réguliers spécifiques, tels que hebdomadaire, mensuel ou trimestriel.
Cette méthode détecte cet intervalle prévisible (ou période) en adoptant des techniques d’analyse fourier. En supposant que les valeurs d’entrée ont le même intervalle de temps (par exemple, les données de capteur collectées à chaque seconde ordonnées par horodatage), cette méthode prend une liste de données de série chronologique et retourne la période régulière pour les données saisonnières d’entrée, si une fluctuation ou un modèle prévisible peut être trouvé qui récursive ou se répète au cours de cette période tout au long des valeurs d’entrée.
Retourne -1 si aucun modèle de ce type n’est trouvé, autrement dit, les valeurs d’entrée ne suivent pas une fluctuation saisonnière.
public static int DetectSeasonality(this Microsoft.ML.AnomalyDetectionCatalog catalog, Microsoft.ML.IDataView input, string inputColumnName, int seasonalityWindowSize = -1, double randomnessThreshold = 0.95);
static member DetectSeasonality : Microsoft.ML.AnomalyDetectionCatalog * Microsoft.ML.IDataView * string * int * double -> int
<Extension()>
Public Function DetectSeasonality (catalog As AnomalyDetectionCatalog, input As IDataView, inputColumnName As String, Optional seasonalityWindowSize As Integer = -1, Optional randomnessThreshold As Double = 0.95) As Integer
Paramètres
- catalog
- AnomalyDetectionCatalog
Catalogue de détection de saisonnalité.
- seasonalityWindowSize
- Int32
Limite supérieure du nombre de valeurs à prendre en compte dans les valeurs d’entrée. Quand la valeur est -1, utilisez l’entrée entière pour ajuster le modèle ; lorsqu’elle est définie sur un entier positif, seule la première fenêtreSize du nombre de valeurs est prise en compte. La valeur par défaut est -1.
- randomnessThreshold
- Double
Seuil de randomité qui spécifie la façon dont les valeurs d’entrée suivent un modèle prévisible récurrent en tant que données saisonnières. La plage est comprise entre [0, 1]. Par défaut, elle est définie sur 0,95.
Retours
Intervalle régulier pour l’entrée sous forme de données saisonnières, sinon retournez -1.
Exemples
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.ML;
using Microsoft.ML.TimeSeries;
namespace Samples.Dynamic
{
public static class DetectSeasonality
{
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 mlContext = new MLContext();
// Create a seasonal data as input: y = sin(2 * Pi + x)
var seasonalData = Enumerable.Range(0, 100).Select(x => new TimeSeriesData(Math.Sin(2 * Math.PI + x)));
// Load the input data as a DataView.
var dataView = mlContext.Data.LoadFromEnumerable(seasonalData);
/* Two option parameters:
* seasonalityWindowSize: Default value is -1. When set to -1, use the whole input to fit model;
* when set to a positive integer, only the first windowSize number of values will be considered.
* randomnessThreshold: Randomness threshold that specifies how confidence the input values follows
* a predictable pattern recurring as seasonal data. By default, it is set as 0.99.
* The higher the threshold is set, the more strict recurring pattern the
* input values should follow to be determined as seasonal data.
*/
int period = mlContext.AnomalyDetection.DetectSeasonality(
dataView,
nameof(TimeSeriesData.Value),
seasonalityWindowSize: 40);
// Print the Seasonality Period result.
Console.WriteLine($"Seasonality Period: #{period}");
}
private class TimeSeriesData
{
public double Value;
public TimeSeriesData(double value)
{
Value = value;
}
}
}
}