Spaces:
Sleeping
Sleeping
| import argparse | |
| import os | |
| from data_loader import load_and_process_data, CATEGORICAL_COLUMNS | |
| from model_trainer import train_models | |
| from model_manager import save_models, load_models | |
| from model_predictor import predict | |
| from config import MODEL_DIR | |
| ## =========================== | |
| # MAIN FUNCTION | |
| # =========================== | |
| def main(train=True, retrain=False): | |
| """ Main entry point to train, retrain or predict """ | |
| # Create model directory if it doesn't exist | |
| if not os.path.exists(MODEL_DIR): | |
| os.makedirs(MODEL_DIR) | |
| print("\nπ Loading data...") | |
| X_train, X_val, y_train, y_val, test_df = load_and_process_data() | |
| if train or retrain: | |
| print("\nπ Training models...") | |
| models = train_models(X_train, y_train, CATEGORICAL_COLUMNS) | |
| save_models(models) | |
| else: | |
| print("\nπ Loading existing models...") | |
| models = load_models() | |
| print("\nπ Making predictions...") | |
| predictions = predict(models, test_df) | |
| # Save final predictions | |
| predictions.to_csv("final_predictions.csv", index=False) | |
| print("\nβ Predictions saved successfully as 'final_predictions.csv'!") | |
| # =========================== | |
| # COMMAND-LINE EXECUTION | |
| # =========================== | |
| if __name__ == "__main__": | |
| # parser = argparse.ArgumentParser(description="Train, retrain or make predictions") | |
| # parser.add_argument("--train", action="store_true", help="Train new models") | |
| # parser.add_argument("--retrain", action="store_true", help="Retrain models with updated data") | |
| # | |
| # args = parser.parse_args() | |
| main(train=False, retrain=False) |