Spaces:
Sleeping
Sleeping
from flask import Flask, render_template, request | |
import pandas as pd | |
import joblib | |
app = Flask(__name__) | |
# Load model pipeline | |
model = joblib.load("ckd_rf_model_pca.pkl") | |
scaler = joblib.load("ckd_scaler.pkl") | |
pca = joblib.load("ckd_pca.pkl") | |
# Feature list | |
features = [ | |
'age', 'blood_pressure', 'specific_gravity', 'albumin', 'sugar', | |
'red_blood_cells', 'pus_cell', 'pus_cell_clumps', 'bacteria', | |
'blood_glucose_random', 'blood_urea', 'serum_creatinine', 'sodium', | |
'potassium', 'haemoglobin', 'packed_cell_volume', 'white_blood_cell_count', | |
'red_blood_cell_count', 'hypertension', 'diabetes_mellitus', | |
'coronary_artery_disease', 'appetite', 'peda_edema', 'aanemia' | |
] | |
def index(): | |
if request.method == 'POST': | |
input_data = {feature: float(request.form[feature]) for feature in features} | |
# Convert to DataFrame | |
input_df = pd.DataFrame([input_data]) | |
# Preprocess | |
scaled = scaler.transform(input_df) | |
pca_input = pca.transform(scaled) | |
# Predict | |
prediction = model.predict(pca_input)[0] | |
prob = model.predict_proba(pca_input)[0][1] | |
if prediction == 1: | |
result = f"π’ CKD Detected with {prob:.2%} confidence" | |
else: | |
result = f"π‘ No CKD Detected with {(1 - prob):.2%} confidence" | |
return render_template("index.html", result=result) | |
return render_template("index.html", result=None) | |
if __name__ == '__main__': | |
app.run(debug=True,port=5000) | |