|
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]) |