Spaces:
Sleeping
Sleeping
#!/usr/bin/env python | |
# coding: utf-8 | |
# In[8]: | |
#!/usr/bin/env python | |
# coding: utf-8 | |
# In[6]: | |
# app.py | |
import gradio as gr | |
import joblib | |
import json | |
import numpy as np | |
# Load the model and scaler | |
model = joblib.load('xgboost_breast_cancer_model.joblib') | |
scaler = joblib.load('scaler.joblib') | |
# Load feature names | |
with open('feature_names.json', 'r') as f: | |
feature_names = json.load(f) | |
def predict_cancer(*features): | |
# Convert inputs to numpy array | |
input_data = np.array(features).reshape(1, -1) | |
# Scale the input data | |
scaled_input = scaler.transform(input_data) | |
# Make prediction | |
prediction_proba = model.predict_proba(scaled_input)[0, 1] | |
# Apply threshold | |
prediction = "Malignant" if prediction_proba >= 0.4 else "Benign" | |
return f"Prediction: {prediction}\nProbability of being malignant: {prediction_proba:.2f}" | |
# Create Gradio interface | |
iface = gr.Interface( | |
fn=predict_cancer, | |
inputs=[gr.Number(label=name) for name in feature_names], | |
outputs="text", | |
title="Breast Cancer Prediction", | |
description="Enter the feature values to predict whether a breast mass is benign or malignant." | |
) | |
iface.launch() | |
# In[ ]: | |
# In[ ]: | |