Spaces:
Runtime error
Runtime error
import joblib | |
import numpy as np | |
import pandas as pd | |
import gradio as gr | |
# Load the saved models | |
encoder_file = "ordinal_encoder.joblib" | |
scaler_file = "min_max_scaler.joblib" | |
joblib_file = "best_random_forest_model_s.joblib" | |
loaded_encoder = joblib.load(encoder_file) | |
loaded_scaler = joblib.load(scaler_file) | |
loaded_model = joblib.load(joblib_file) | |
# Define the prediction function | |
def predict_from_csv(file_path): | |
df = pd.read_csv(file_path) | |
# Convert date columns to datetime | |
df['appt_slot_date'] = pd.to_datetime(df['appt_slot_date']) | |
df['appt_date'] = pd.to_datetime(df['appt_date']) | |
# Calculate the days_difference | |
df['days_difference'] = (df['appt_slot_date'] - df['appt_date']).dt.days | |
input_columns = ['facilitytype', 'appt_type', 'service_name', 'facility_name', 'directorate_name', 'year', 'region', 'days_difference'] | |
test_data = df[input_columns] | |
test_data = test_data.astype(str) | |
test_data_encoded = loaded_encoder.transform(test_data) | |
test_data_scaled = loaded_scaler.transform(test_data_encoded) | |
predictions = loaded_model.predict(test_data_scaled) | |
df['Prediction'] = predictions | |
df['Prediction'] = np.where(predictions == 0, "No Show", "Show") | |
print(df['Prediction'].value_counts()) | |
output_file = "predictions.csv" | |
df.to_csv(output_file, index=False, encoding='utf-8-sig') | |
return output_file | |
# Define the Gradio interface | |
interface = gr.Interface( | |
fn=predict_from_csv, | |
inputs=gr.File(label='Upload CSV file', type='filepath', file_count='single'), | |
outputs=gr.File(label='Download CSV file with predictions'), | |
title="Appointment Status Prediction in Saudi Arabian Health Care System", | |
description="Upload a CSV file with the required columns to get predictions." | |
) | |
# Launch the Gradio app | |
if __name__ == "__main__": | |
interface.launch(debug=True) | |