補足記事です
以前の記事で【訓練編】と称して、MatillionからForecastFlowでモデル作成する方法を紹介しました。しかし、この記事で紹介したコードはいわゆる分類問題のもののみであり、よくよく考えると回帰問題に対するコードがないのは不親切だと思い至りこの記事を書いております。
グダグダと書いても内容が重複するだけなので、該当部分のコードだけ貼っておきます。適宜コピーして使ってください。別に同じ記事でもよいのですが、紛らわしさ回避で記事分けています。
以前の訓練編はこちら
Matillion for BigQueryとForecastFlowを連携する方法【訓練編】(2022年2月版)※時間がねえ、方法だけ教えてくれよって方は本題まで飛んでください
背景
第27回すいすい会(2022/2/16)でお話しさせ...
コードは以下のような感じです。ほぼ変わっていませんが、訓練設定を操作するためのクラスとその中でMetricsを定義するところが変わっています。
from google.cloud import storage
from forecastflow import User, Project, DataSourceLabel, FileType, RegressorTrainingSettings
from forecastflow.satellite.google.cloud import storage as ff_storage
from forecastflow.enums import RegressionMetrics
# ForecastFlowのユーザー情報
ff_user = User(FF_EMAIL, FF_PASSWORD)
ff_project = Project(ff_user, FF_PROJECT_ID, FF_TEAM_ID)
# データソースをForecastFlowにアップロード
gcs_client = storage.Client()
uri_import = f'gs://{GCS_BUCKET_NAME}/{GCS_PREFIX}/{BQ_TRAIN_TABLE_NAME+".csv"}'
data_source = ff_storage.import_data_source(
uri=uri_import,
project=ff_project,
name=BQ_TRAIN_TABLE_NAME,
label=DataSourceLabel.TRAIN, # データソースのラベル
filetype=FileType.CSV, # データソースのファイル形式 [CSV, TSV, PARQUET]
description=None, # 説明文(省略可能)
skip_profile=False, #データプロファイリングをスキップするかどうか
client=gcs_client # GCSクライアント
)
data_source.wait_until_done()
# モデル訓練の設定
training_settings = RegressorTrainingSettings(
FF_TRAIN_TARGET,
RegressionMetrics.MEAN_SQUARED_ERROR,
primary_id=FF_TRAIN_PRIMARY_ID
)
# モデル訓練実行
data_source.create_model(
training_settings,
name=FF_MODEL_NAME,
test_frac=float(FF_TRAIN_TEST_FRAC)
)