MfTransformerとは

MfTとは_1.png

MfTransformerは、未来を予測する時系列系のレシピブロックです。
同じ時系列解析を行うTrendFlowと異なるのは、「説明変数を複数指定できる」点と「予測は1行分のみ」である点です。

  • 説明変数を複数指定できます(TrendFlowは1つのみ)
  • 投入したデータセットの最終行の次の1行分を予測します
  • あらゆるパターンの変化に対応して自動でフィットします

■パラメータについて
データセットに合わせて次のパラメータを適切に設定します。
これ以外のパラメータは、納得感のある予測結果が得られるようであればデフォルトのままで差し支えありません。

MfTとは_2.png

1.入力列の長さ
何行ずつ読み込んで学習を行うか、その行数を偶数で指定します。
偶数で指定しなかった場合、エラーにはなりませんが自動で偶数に丸められます。
※「テストデータの割合」との兼ね合いを考慮する必要があります。詳細は次項の<注意>をご覧ください。

<参考>学習は次の流れを繰り返して進みます。
  1.指定した行数分のデータを読み込む(例:2-29行目を読み込む)
  2.次の1行を推論する(例:30行目を推論する)
  3.1行ずらし、指定した行数分のデータを読み込む(例:3-30行目を読み込む)
  4.次の1行を推論する(例:31行目を推論する)
  5.3.~4.を最終行まで繰り返す

2.テストデータの割合
学習データのどのくらいのデータ数をテストデータとして使うか割合を指定します。
デフォルトは0.1で、10%分をテストデータとして使います。

例:投入するデータセット=500行、テストデータの割合=0.1の場合、次のように分割されます。
  学習データ :450行
  テストデータ: 50行

<注意>ここに指定した割合により学習データからテストデータが分割されたとき、それぞれのデータ数が前項「入力列の長さ」に満たないとエラーになります。
例えば、投入するデータセットが200行で、入力列の長さを28、テストデータの割合を0.1と0.2に設定した場合、次の通りです。

テストデータの割合 学習データ数 テストデータ数 OK / NG
0.1 180 20 NG
(テストデータ数が入力列の長さ28に満たない)
0.2 160 40 OK

3.予測列に対数関数を適用 (正値のデータのみ)
この機能をonにすると、値を対数に変換して学習/予測を行います。
値の範囲が広かったり、外れ値を含んでいて予測結果が芳しくない場合などに利用すると、値の変化がなだらかになりピークが捉えやすくなるため有効なケースがあります。
結果は元に戻して表示します。

■データセットについて
冒頭で述べた通り、予測できるのは1行分です。
データセットの日付列が日次であれば最終行の翌日を予測し、週次であれば最終行の翌週を予測します。
日次のデータセットで1か月先の予測を行いたい場合は、日次データを合計したり、平均を取るなどして月次データに編集することで予測ができるようになります。