見出し画像

【備忘録】機械学習ツールH2O.aiを用いた予測モデルの構築 -AutoMLオプション編-(7/18更新)

!!!7/18もオプションを検証中!!!

前提:

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

max_runtime_secs

● 全体の最大トレーニング時間(秒)。デフォルトは3600秒。
● トレーニング時間を長くすると多くのモデルを試して良いモデルを発見する可能性は高まるが、過学習のリスクが高まり予測精度が低下する可能性もある。
● 検証結果:
※実績 2024:72,884,966
max_runtime_secs=300 2024:42,534,873 2025:16,527,511
max_runtime_secs=600 2024:96,117,197 2025:15,948,297
max_runtime_secs=1200 2024:99,255,074 2025:17,228,564
max_runtime_secs=2400 2024:76,893,374 2025:7,452,503 ★
max_runtime_secs=3600 2024:48,043,766 2025:9,747,422
max_runtime_secs=4800 2024:53,885,482 2025:15,948,297

# AutoMLを使用したモデルのトレーニング
aml = H2OAutoML(max_runtime_secs=2400, seed=1234, nfolds=5)  # トレーニング時間をN秒に設定
aml.train(x=x, y=y, training_frame=train_h2o)

max_models

● 訓練する最大モデル数。デフォルトは無制限。
● モデル数を増やすと多くのモデルを試して良いモデルを発見する可能性は高まるが、トレーニング時間が長くなって過学習のリスクが高まり予測精度が低下する可能性もある。
● 検証結果:
※実績 2024:72,884,966
max_models=10 2024: 2025:
max_models=50 2024: 2025:
max_models=100 2024: 2025:

# AutoMLを使用したモデルのトレーニング
aml = H2OAutoML(max_runtime_secs=2400, max_models=50, seed=1234, nfolds=5)  # トレーニング時間をN秒に設定
aml.train(x=x, y=y, training_frame=train_h2o)

stopping_metric

早期停止のための評価指標。デフォルトは"AUTO"。
オプション: "AUTO", "deviance", "logloss", "MSE", "RMSE", "MAE", "RMSLE", "AUC", "AUCPR", "lift_top_group", "misclassification", "mean_per_class_error".
例: stopping_metric="AUC"

stopping_tolerance

早期停止の許容誤差。デフォルトは0.001。
例: stopping_tolerance=0.001

stopping_rounds

早期停止のチェック間隔。デフォルトは3。
例: stopping_rounds=5

seed

再現性のためのランダムシード。デフォルトは無制限。
例: seed=1234

nfolds

クロスバリデーションのフォールド数。デフォルトは5。
例: nfolds=5

balance_classes

クラスのバランス調整。デフォルトはFalse。
例: balance_classes=True

class_sampling_factors

クラスのサンプリングファクター。デフォルトはNone。
例: class_sampling_factors=[1.0, 1.0, 1.0]

keep_cross_validation_predictions

クロスバリデーション予測を保持。デフォルトはFalse。
例: keep_cross_validation_predictions=True

sort_metric

結果をソートする指標。デフォルトは"AUTO"。
オプション: "AUTO", "deviance", "logloss", "MSE", "RMSE", "MAE", "RMSLE", "AUC", "AUCPR", "lift_top_group", "misclassification", "mean_per_class_error".
例: sort_metric="AUC"

使用例:

from h2o.automl import H2OAutoML

# AutoMLを使用したモデルのトレーニング
aml = H2OAutoML(
    max_runtime_secs=600, 
    max_models=20,
    stopping_metric="AUC",
    stopping_tolerance=0.001,
    stopping_rounds=5,
    seed=1234,
    nfolds=5,
    balance_classes=True,
    class_sampling_factors=[1.0, 1.0, 1.0],
    keep_cross_validation_predictions=True,
    sort_metric="AUC"
)
aml.train(x=x, y=y, training_frame=train_h2o)

以上


この記事が気に入ったらサポートをしてみませんか?