ForecastingParameters クラス

予測タスクで使用されるパラメーターを管理します。

継承
builtins.object
ForecastingParameters

コンストラクター

ForecastingParameters(time_column_name: str | None = None, forecast_horizon: str | int = 1, time_series_id_column_names: str | List[str] | None = None, group_column_names: str | List[str] | None = None, target_lags: List[int] | int | str | None = None, feature_lags: str | None = None, target_rolling_window_size: str | int | None = None, holiday_country: str | None = None, seasonality: str | int | None = 'auto', country_or_region_for_holidays: str | None = None, use_stl: str | None = None, short_series_handling: bool = True, short_series_handling_configuration: str | None = 'auto', freq: str | None = None, target_aggregation_function: str | None = None, cv_step_size: str | int | None = 'auto', features_unknown_at_forecast_time: str | List[str] | None = None, validate_parameters: bool = True, _enable_future_regressors: bool = False, **kwargs: Any)

パラメーター

time_column_name
str
既定値: None

時間列の名前。 このパラメーターは、時系列の構築とその頻度の推定に使用される入力データで、予測によって datetime 列を指定する場合に必要です。

forecast_horizon
int または str
既定値: 1

時系列頻度を単位にした目的の最大予測期間。 既定値は 1 です。

単位は、トレーニング データの時間間隔に基づきます。たとえば、予測者が予測する必要がある月ごと、週ごとなどです。タスクの種類が予測である場合、このパラメーターは必須です。 予測パラメーターの設定の詳細については、時系列予測モデルの自動トレーニングに関する記事をご覧ください。

time_series_id_column_names
str または list(str)
既定値: None

時系列をグループ化するために使用される列の名前。 複数の系列を作成するために使用できます。 時系列 ID 列名が定義されていない場合、または指定された識別子列によってデータセット内のすべての系列が識別されない場合は、データセットに対して時系列識別子が自動的に作成されます。

group_column_names
str または list(str)
既定値: None
target_lags
int, str または list(int)
既定値: None

ターゲット列からのラグとして指定する過去の期間の数。 既定では、ラグはオフになっています。

予測時に、このパラメーターは、データの頻度に基づいてターゲット値を遅延させる行数を表します。 これは一覧または単一の整数として表されます。 独立変数と依存変数の間のリレーションシップが既定で一致しない場合、または関連付けられていない場合、ラグを使用する必要があります。 たとえば、製品の需要を予測しようとする場合、任意の月の需要は、3 か月前の特定の商品の価格によって異なる可能性があります。 この例では、モデルが正しいリレーションシップでトレーニングされるように、目標 (要求) を 3 か月間遅延させてください。 詳細については、時系列予測モデルの自動トレーニングに関する記事をご覧ください。

ターゲット ラグとローリング ウィンドウのサイズの自動検出に関する注意事項です。 ローリング ウィンドウ セクションの対応するコメントを参照してください。 次のアルゴリズムを使用して、最適なターゲット ラグとローリング ウィンドウのサイズを検出します。

  1. ルックバック特徴選択のための最大ラグ次数を推定します。 この例では、次の日付の頻度粒度までの期間数です。つまり、頻度が日次の場合は 1 週間 (7)、週次の場合は月 (4) になります。 この値に 2 を掛けたものが、ラグまたはローリング ウィンドウの可能な最大値です。 この例では、最大ラグ次数 14 と 8 をそれぞれ考慮します。

  2. 傾向と残余コンポーネントを追加して、季節性を取り除いた系列を作成します。 これは、次の手順で使用します。

  3. (2) のデータで PACF (偏自己相関関数) を推定し、自己相関が有意である、つまりその絶対値が、95% の有意性に相当する 1.96/平方根 (最大ラグ値) より大きいポイントを検索します。

  4. すべてのポイントが有意である場合は、それが強い季節性であると見なし、ルックバック特徴を作成しません。

  5. PACF の値を先頭からスキャンし、最初の有意でない自己相関の前の値をラグに指定します。 最初の有意な要素 (それ自身と相関のある値) の後に有意でないものが続く場合、ラグは 0 となり、ルックバック特徴を使用しません。

feature_lags
str または None
既定値: None

数値特徴のラグを 'auto' または None で生成するためのフラグ。

target_rolling_window_size
int, str または None
既定値: None

ターゲット列のローリング ウィンドウの平均を作成するために使用する過去の期間の数。

予測時に、このパラメーターは、予測値を生成するために使用する n 個の履歴期間を表し、トレーニング セットのサイズ以下です。 省略した場合、n はトレーニング セットの全体のサイズになります。 モデルのトレーニング時に特定の量の履歴のみを考慮する場合は、このパラメーターを指定します。 "auto" に設定した場合、ローリング ウィンドウは、PACF が有意性しきい値より大きい最後の値として推定されます。 詳細については target_lags のセクションを参照してください。

holiday_country
str または None
既定値: None
seasonality
int, str または None
既定値: auto

時系列頻度の倍数 (整数) としての時系列の季節性を設定します。 'auto' に設定した場合、季節性は推論されます。 None に設定すると、時系列は季節性 = 1 に相当する非季節性と見なされます。

country_or_region_for_holidays
str または None
既定値: None

休日の特徴を生成するために使用される国または地域。 これらは、ISO 3166 の 2 文字の国または地域コード ("US" や "GB" など) である必要があります。

use_stl
str または None
既定値: None

時系列ターゲット列の STL 分解を構成します。 use_stl は 3 つの値を取ることができます: None (既定) - stl 分解なし。'season' - 季節コンポーネントのみを生成します。season_trend - 季節と傾向の両方のコンポーネントを生成します。

short_series_handling
bool
既定値: True

予測タスクのための短い系列処理を構成します。

short_series_handling_configuration
str または None
既定値: auto

AutoML で短い時系列を処理する方法を定義するパラメーター。

使用可能な値: 'auto' (既定値)、'pad'、'drop'、None。

  • auto 短い系列は、長い系列がない場合はパディングされ、それ以外は、短い系列は削除されます。
  • pad すべての短い系列はパディングされます。
  • drop すべての短い系列は削除されます。
  • None 短い系列は変更されません。 'pad' に設定すると、テーブルには、リグレッサーのゼロと空の値が埋め込まれます。target のランダムな値は、指定された時系列 ID のターゲット値の中央値と等しい平均になります。中央値が 0 以上の場合、最小埋め込み値は 0 で切り取られます。 次の内容を入力します。

日付

numeric_value

string

target

2020-01-01

23

green

55

値の最小数が 4 であると仮定した場合の出力:

日付

numeric_value

string

target

2019-12-29

0

NA

55.1

2019-12-30

0

NA

55.6

2019-12-31

0

NA

54.5

2020-01-01

23

green

55

注: short_series_handling_configuration と legacy short_series_handling の 2 つのパラメーターがあります。 両方のパラメーターを設定すると、次の表に示すように同期されます (short_series_handling_configuration と short_series_handling はそれぞれ、handling_configuration と handling と簡潔して表記されています)。

処理

handling_configuration

結果の処理

結果のhandling_configuration

True

自動

True

自動

True

パッド

True

自動

True

drop

True

自動

True

なし

False

なし

False

自動

False

なし

False

パッド

False

なし

False

drop

False

なし

False

なし

False

なし

freq
str または None
既定値: None

予測頻度。

予測する場合、このパラメーターは、日単位、週単位、年単位など、予測が必要な期間を表します。予測頻度は、既定ではデータセットの頻度です。 必要に応じて、データセットよりも高い頻度 (低い頻度は不可) に設定することができます。 データを集計し、予測頻度で結果を生成します。 たとえば、毎日のデータの場合、頻度を日単位、週単位、または月単位に設定できますが、時間単位に設定することはできません。 頻度には、pandas のオフセット エイリアスを使用する必要があります。 詳細については、pandas のドキュメントをご覧ください: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects

target_aggregation_function
str または None
既定値: None

ユーザー指定の頻度に従って時系列ターゲット列を集計するために使用する関数。 target_aggregation_function を設定しても、freq パラメーターを設定しないと、エラーが発生します。 使用可能なターゲット集計関数は、"sum"、"max"、"min"、"mean" です。

  • ターゲット列の値が、指定された操作に基づいて集計されます。 通常、ほとんどのシナリオでは sum が適しています。

  • データ内の数値予測列は、合計、平均、最小値、最大値で集計されます。 その結果、自動 ML では、末尾に集計関数名が付いた新しい列が生成され、選択した集計操作が適用されます。

  • カテゴリ予測列の場合、データは、ウィンドウ内で最も目立つカテゴリであるモードで集計されます。

  • 日付予測列は、最小値、最大値、モードで集計されます。

周波数

target_aggregation_function

データの規則性の修正メカニズム

なし (既定)

なし (既定)

集計は適用されません。有効な頻度がベッド決定できない場合は、エラーが発生します。

一部の値

なし (既定)

集計は適用されません。指定された周波数グリッドに準拠するデータ ポイントの数が少ない場合、これらのポイントは 90% 削除され、それ以外の場合はエラーが発生します。

なし (既定)

集計関数

frequency パラメーターの欠落に関するエラーが発生しました。

一部の値

集計関数

providedaggregation 関数を使用して頻度に集計します。

cv_step_size
str, int または None
既定値: auto

1 つの CV フォールドの origin_time と次のフォールドの間の期間数。 たとえば、日次データに対して n_step = 3 の場合、各フォールドの原点の時間は 3 日離れています。

validate_parameters
bool
既定値: True

入力パラメーターを検証するように構成します。

features_unknown_at_forecast_time
既定値: None
_enable_future_regressors
既定値: False

メソッド

from_parameters_dict

辞書から ForecastingParameters クラスを構築します。

validate_parameters

ForecastingParameters クラスのパラメーターを検証します。

from_parameters_dict

辞書から ForecastingParameters クラスを構築します。

static from_parameters_dict(parameter_dict: Dict[str, Any], validate_params: bool, show_deprecate_warnings: bool | None = True) -> ForecastingParameters

パラメーター

parameter_dict
必須

辞書にはすべての予測パラメーターが含まれます。

validate_params
必須

入力パラメーターを検証するかどうか。

show_deprecate_warnings
既定値: True

非推奨のパラメーターの警告を表示するように切り替えます。

validate_parameters

ForecastingParameters クラスのパラメーターを検証します。

validate_parameters()

属性

country_or_region_for_holidays

休日の特徴を生成するために使用される国または地域。 これらは、2 文字の ISO 3166 国または地域コード ("US" や "GB" など) である必要があります。

cv_step_size

1 つの CV フォールドの origin_time と次のフォールドの間の期間数。 たとえば、日次データに対して n_step = 3 の場合、各フォールドの原点の時間は 3 日離れています。

drop_column_names

予測タスクのためにドロップする列の名前。

dropna

時系列データ トランスフォーマーで dropna を構成します。

feature_lags

数値特徴のラグを生成するためのフラグ。

features_unknown_at_forecast_time

トレーニングに使用できるが、予測/推論時には不明な機能の列名。 これが定義されていない場合は、すべての特徴列が予測時に既知であると見なされます。

forecast_horizon

時系列頻度を単位にした目的の最大予測期間。 既定値は 1 です。 単位は、月ごとや週ごとなどの予測を実行する必要があるトレーニング データの時間間隔に基づきます。

formatted_drop_column_names

予測タスクのためにドロップする列の書式設定された名前。

formatted_group_column_names

formatted_target_lags

ターゲット列からのラグとして指定する過去の期間の書式設定された数。

formatted_time_series_id_column_names

時系列をグループ化するために使用される列の名前。 複数の系列を作成するために使用できます。 time_series_id_column_names が定義されていない場合、データ セットは 1 つの時系列であると見なされます。

formatted_unknown_features

トレーニングに使用できるが、予測/推論時には不明な機能の列名。 これが定義されていない場合は、すべての特徴列が予測時に既知であると見なされます。 dnn/tcn でのみサポートされます。 ユーザーが何も指定しない場合、今後の機能は dnn で有効になりません。 ただし、空のリストが提供されている場合は、将来の機能が有効になり、すべての特徴列が予測時に既知であると見なされます。

freq

データ セットの頻度。

group_column_names

holiday_country

休日の特徴を生成するために使用される国または地域。 これらは、2 文字の ISO 3166 国または地域コード ("US" や "GB" など) である必要があります。

overwrite_columns

時系列データ トランスフォーマーで overwrite_columns を構成します。

seasonality

時系列頻度の倍数 (整数) としての時系列の季節性。

short_series_handling_configuration

短いグレインのパディングが必要かどうかを返します。

target_aggregation_function

ターゲットの集計関数を返します。

target_lags

ターゲット列からのラグとして指定する過去の期間の数。

target_rolling_window_size

time_column_name

時間列の名前。 このパラメーターは、時系列の構築とその頻度の推定に使用される入力データで、予測によって datetime 列を指定する場合に必要です。

time_series_id_column_names

時系列をグループ化するために使用される列の名前。 複数の系列を作成するために使用できます。 time_series_id_column_names が定義されていない場合、データ セットは 1 つの時系列であると見なされます。

transform_dictionary

時系列データ トランスフォーマーで transform_dictionary を構成します。

use_stl

時系列ターゲット列の STL 分解を構成します。 use_stl は 3 つの値を取ることができます: None (既定) - stl 分解なし。'season' - 季節コンポーネントのみを生成します。season_trend - 季節と傾向の両方のコンポーネントを生成します。

DEFAULT_TIMESERIES_VALUE

DEFAULT_TIMESERIES_VALUE = {'_enable_future_regressors': False, 'cv_step_size': 'auto', 'feature_lags': None, 'features_unknown_at_forecast_time': None, 'forecast_horizon': 1, 'freq': None, 'max_horizon': 1, 'seasonality': 'auto', 'short_series_handling': True, 'short_series_handling_configuration': 'auto', 'target_aggregation_function': None, 'target_lags': None, 'target_rolling_window_size': None, 'use_stl': None}

DEPRECATED_DICT

DEPRECATED_DICT = {'country': 'country_or_region_for_holidays', 'country_or_region': 'country_or_region_for_holidays', 'grain_column_names': 'time_series_id_column_names', 'holiday_country': 'country_or_region_for_holidays', 'max_horizon': 'forecast_horizon'}

EMPTY_TIME_COLUMN_NAME

EMPTY_TIME_COLUMN_NAME = '_EMPTY_TIME_COLUMN_NAME'

MAX_LAG_LENGTH

MAX_LAG_LENGTH = 2000