| import os | |
| import joblib | |
| def load_all_models(models_dir="models"): | |
| """ | |
| Load all models and their features from the given directory. | |
| """ | |
| models = {} | |
| features = {} | |
| if not os.path.exists(models_dir): | |
| raise FileNotFoundError(f"Models directory '{models_dir}' not found.") | |
| for model_file in os.listdir(models_dir): | |
| if model_file.endswith(".pkl"): | |
| model_name = os.path.splitext(model_file)[0] | |
| data = joblib.load(os.path.join(models_dir, model_file)) | |
| models[model_name] = data['model'] | |
| features[model_name] = data['features'] | |
| print(f"Model '{model_name}' loaded successfully with features: {features[model_name]}") | |
| return models, features | |
| def predict_with_model(model, input_data): | |
| """ | |
| Predict using a loaded model. | |
| Parameters: | |
| - model: The loaded model. | |
| - input_data: A dictionary or Pandas DataFrame row containing input features. | |
| Returns: | |
| - prediction: Model prediction. | |
| """ | |
| prediction = model.predict([input_data]) | |
| return int(prediction[0]) |