見出し画像

【備忘録】機械学習ツールH2O.aiを用いた予測モデルの構築 -予測精度検証編-(7/12更新)

前提:

● 1万レコードのサンプルデータで売上予測モデルを構築する。
● 売上予測モデルのデータソースを作成するために、自動機械学習を強みとする機械学習ツール:H2O.aiを選択した。
● データソースをビジュアライズするために、私が専門とするBIツール:Tableauデスクトップを選択した。

ステップ1:データのインポートと前処理

Python
import h2o
import pandas as pd
from h2o.frame import H2OFrame

# H2Oの初期化
h2o.init()

# データのインポート
data = h2o.import_file("C:/data/sample_superstore.csv")

# Pandasデータフレームに変換
# フィルタリングを正常処理するためPandasフレームに一旦変換
data_df = data.as_data_frame(use_pandas=True)

# 行番号を追加
# ビジュアライズ時のデータソースの紐づけのため
data_df['行番号'] = range(len(data_df))

# 日付文字列を日付形式に変換
data_df['オーダー日'] = pd.to_datetime(data_df['オーダー日'], format='%Y/%m/%d')

# トレーニングデータセットの抽出
# 2021年1月〜2023年12月の3年分でトレーニング
train_df = data_df[(data_df['オーダー日'] >= "2021-01-01") & (data_df['オーダー日'] <= "2023-12-31")]

# テストデータセットの抽出
# 2024年1月〜2024年12月の1年分をテスト
test_df = data_df[(data_df['オーダー日'] >= "2024-01-01") & (data_df['オーダー日'] <= "2024-12-31")]

# トレーニングデータとテストデータをH2Oフレームに変換
# フィルタリングを正常処理したためH2Oフレームに戻す
train_h2o = H2OFrame(train_df)
test_h2o = H2OFrame(test_df)

2.ステップ2:モデルのトレーニングと予測

# 特徴量とターゲットの設定
x = ["オーダー日", "カテゴリ", "地域", "行番号"]
y = "売上"

# AutoMLを使用したモデルのトレーニング
# H2O.aiを使用する一番の理由はこの自動機械学習
from h2o.automl import H2OAutoML
aml = H2OAutoML(max_runtime_secs=600, seed=1234, nfolds=5)
aml.train(x=x, y=y, training_frame=train_h2o)

# 予測の実行
predictions = aml.leader.predict(test_h2o)

# 予測結果に行番号を追加
# ビジュアライズ時のデータソースの紐づけのため
predictions = predictions.cbind(test_h2o["行番号"])

# 予測結果をCSVファイルにエクスポート
h2o.export_file(predictions, path="C:/data/predictions_2024.csv", force=True)

以上

いいなと思ったら応援しよう!