Spaces:
No application file
No application file
| import pickle | |
| import pandas as pd | |
| # import the ml model | |
| with open('model/model.pkl', 'rb') as f: | |
| model = pickle.load(f) | |
| # MLFlow | |
| MODEL_VERSION = '1.0.0' | |
| # Get class labels from model (important for matching probabilities to class names) | |
| class_labels = model.classes_.tolist() | |
| def predict_output(user_input: dict): | |
| df = pd.DataFrame([user_input]) | |
| # Predict the class | |
| predicted_class = model.predict(df)[0] | |
| # Get probabilities for all classes | |
| probabilities = model.predict_proba(df)[0] | |
| confidence = max(probabilities) | |
| # Create mapping: {class_name: probability} | |
| class_probs = dict(zip(class_labels, map(lambda p: round(p, 4), probabilities))) | |
| return { | |
| "predicted_category": predicted_class, | |
| "confidence": round(confidence, 4), | |
| "class_probabilities": class_probs | |
| } |