Fioneのアシスタントで学習結果とテーブルのつながりを確認する改善案

Fione v2のアシスタントに、評価や失敗の説明を読みやすくする案と、同じプロジェクトのデータセットの関係を調べる案が出ています。

評価と失敗の理由を聞く

分類では少数クラスをどれだけ拾えたか、拾ったうちどれだけ正しかったかを結果画面で読めます。同じプロジェクトの失敗ジョブからは、質問が入力された状態でアシスタントを開けます。エラーメッセージには入力値が含まれる場合があり、例示値の共有を有効にした場合だけアシスタントへ渡されます。MCP連携で学習提案を読む場合、警告の戻り値がコード・文言・引数を含む形になる点も確認します。

学習に使う表を用意する

たとえば顧客表と購入履歴を同じプロジェクトに置き、共通キーを質問します。提案中のツールは同名列の値の重なりを調べ、最大8データセット、読み取り30秒、500万行を超えるとサンプルで判定します。セル値は回答用データに含みません。提案を確認したら利用者がJoinモジュールで左結合します。右側のキーが重複するときは要約を有効にし、件数・平均・最小・最大・合計などへ集約します。要約の初期値は無効で、予測対象期間のデータを混ぜないようにします。

利用にはアシスタント用のLLM設定が必要です。文脈上限の初期値は16384、応答上限は1024トークンです。

Fione #48 / Fione #49

Fioneのlagモジュールで前週の売上を特徴量にする

店舗ごとの日次売上を予測するときは、同じ店舗の1週間前の売上が手掛かりになります。Fione v2の開発版に追加された lag モジュールでは、日付列を基準に、指定した日数だけ前の値を別の列にできます。関連変更は開発ブランチにマージ済みです。

日付と過去の値を指定する

sale_date、store_id、units_sold を持つデータセットに対し、組み込みモジュールの lag(Add values from earlier times)を次のパラメーターで実行します。

{
  "time": "sale_date",
  "by": ["store_id"],
  "columns": ["units_sold"],
  "lags": "7,14",
  "how": "sum"
}

同じ店舗の7日前と14日前の売上が、それぞれ units_sold_lag7 と units_sold_lag14 に入ります。店舗と商品を組み合わせる場合は by に両方の列を指定します。by を省略すると全体を一つのグループとして扱います。lags の初期値は "1" で、1以上の整数をカンマで区切れます。同じグループの同じ日に複数行あれば先に集約し、how の初期値 mean では平均、sum では合計を使います。対象値がすべて欠損のときは、合計でも空欄です。

何日前を参照するか確認する

日付列では1ステップが1日です。7日前の行がないときは空欄になります。直前の行を探して埋める処理や移動平均は行いません。日付型または 2026-11-01 のような年・月・日の順の文字列を使用します。時刻を含む日時や月だけの文字列は対象外です。月単位に処理する場合は、連続した月番号のような整数値を time に指定します。元の行数と並び順は維持されます。

学習用と予測用の行を分ける

予測対象日の行に過去値を付けるには、先に履歴と予測用の行を一つのデータセットに入れてモジュールを実行し、その後で行を分けます。目的変数が空の予測用の行は学習用データから外します。モジュールは同時点や将来の行を参照しませんが、複数日先を一度に予測する場合は、予測時点で判明している実績だけを入力に用意します。

関連PR

  • 過去の値を追加するモジュール Fione #74
  • 日付を基準にした過去値の参照 Fione #81

FioneのAutoMLで時系列とグループに合わせて交差検証を設定する

来月の売上を予測するときに、検証対象より後の売上を学習に使うと、実運用より良いスコアが出ることがあります。同じ顧客の履歴を学習側と検証側の両方に入れる場合も、新規顧客への予測性能を高く見積もりがちです。Fione v2の開発版では、学習フォームで予測先に合わせて行の分け方を選べます。以下は関連変更を含む開発ビルドの手順です。

来月の売上は過去から未来へ検証する

学習フォームの「行の時間順」で売上日などを選びます。APIの項目は time_column で、初期値は未指定です。時刻の順序を表す数値、日付、日付として読み取れる文字列を使えます。欠損のない列が必要です。同じ日付の行は同じ区間に入り、異なる値が少ないと分割数が減ります。

分割数 nfolds の初期値は5です。5分割なら行を時系列順におおむね6区間に分け、最初は第1区間で学習して第2区間を検証し、次は第1・第2区間で学習して第3区間を検証します。先頭区間に交差検証の予測は作られません。分類では各分割の学習側にすべてのクラス、検証側に複数のクラスが必要です。この方式では派生特徴量の自動試行が省かれます。日付を特徴量から外しても、行の順序には使えます。

新規顧客を予測するなら顧客単位で分ける

「同じ値の行をまとめる列」に customer_id などを指定します。APIの cv_group_column は初期値が未指定です。同一グループは探索や派生特徴量の評価でも同じ分割に入ります。欠損はまとめて1グループとして数えます。グループは最低2つ必要で、希望分割数より少ない場合は分割数が減ります。分類の学習側からあるクラスが消える分割はエラーになります。

IDらしい列の候補が表示されても、設定は手動で選びます。指定した列は学習入力にも残るため、顧客IDを入力に使わない場合は除外列にも指定します。「行の時間順」とグループ列は同時に指定できません。

小さいデータでは繰り返し回数を確認する

「交差検証の繰り返し回数」(cv_repeats) の初期値は自動です。通常は2,000行以下で3回、5,000行以下で2回、それより多ければ1回です。指定できる値は1〜10で、1なら繰り返しません。時系列分割や、グループ数が分割数以下の場合は1回です。

探索は各回のスコアの平均で候補を比較します。診断や保存する交差検証の予測は初回分です。同じ実行時間では、繰り返しが多いほど試せる候補は少なくなります。設定を変えて比較するときは、最終的に予測したい期間や顧客に合わせて取っておいた検証用データでもスコアを確認します。

関連PR

  • 時系列の順序で交差検証する Fione #73
  • 同じグループを同じ分割に入れる Fione #76
  • 少量データで分割を繰り返す Fione #77