| import pickle |
| import pandas as pd |
| import json |
|
|
| def load_model(): |
| try: |
| with open("model/expense_forecaster_model.pkl", "rb") as f: |
| model = pickle.load(f) |
| return model |
| except Exception as e: |
| print(f"Error loading model: {e}") |
| return None |
|
|
| def predict(data): |
| model = load_model() |
| if model is None: |
| return {"error": "Model loading failed"} |
|
|
| try: |
| |
| if not isinstance(data, dict): |
| return {"error": "Input data must be a dictionary"} |
|
|
| df = pd.DataFrame([data]) |
| prediction = model.predict(df) |
| return prediction.tolist() |
|
|
| except Exception as e: |
| return {"error": f"Prediction error: {e}"} |
|
|
| if __name__ == "__main__": |
| example_input = {"income": 5000, "previous_expenses": 3000, "month": 12} |
| prediction = predict(example_input) |
| print(f"Prediction: {prediction}") |