train_model.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. #!/usr/bin/env python3
  2. """Train the pressure XGBoost assistant model without reading the test set."""
  3. from __future__ import annotations
  4. import argparse
  5. import sys
  6. from pathlib import Path
  7. sys.path.insert(0, str(Path(__file__).resolve().parents[2]))
  8. from models.common import modeling, paths
  9. from models.generalized import features_pressure
  10. def main() -> None:
  11. parser = argparse.ArgumentParser(description="训练压力模型,不读取测试集")
  12. parser.add_argument("--datasets-dir", default=str(paths.PRESSURE_DATAS))
  13. parser.add_argument("--models-dir", default=str(paths.PRESSURE_MODELS))
  14. parser.add_argument("--normal-ratio", type=int, default=None)
  15. parser.add_argument("--all-normal", action="store_true")
  16. parser.add_argument("--seed", type=int, default=20260921)
  17. parser.add_argument("--rounds", type=int, default=800)
  18. parser.add_argument("--early-stopping-rounds", type=int, default=50)
  19. args = parser.parse_args()
  20. if args.normal_ratio is not None and args.normal_ratio < 1:
  21. parser.error("--normal-ratio 必须大于等于 1")
  22. modeling.train(
  23. "pressure", features_pressure, Path(args.datasets_dir), Path(args.models_dir),
  24. args.seed, args.rounds, args.early_stopping_rounds, args.all_normal, args.normal_ratio,
  25. )
  26. if __name__ == "__main__":
  27. main()