Matillion

Matillion for BigQueryとForecastFlowを連携する方法【訓練編〜回帰ver.〜】(2022年2月版)

補足記事です

以前の記事で【訓練編】と称して、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)
)

 

Taizo Okabe
脳筋系データサイエンティスト。筋肉は裏切らない。筋肉。