【備忘録】機械学習ツール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)
以上
この記事が気に入ったらサポートをしてみませんか?