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' ] @app.route('/', methods=['GET', 'POST']) 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)