'''import gradio as gr import pickle import pandas as pd # Load the saved model with open("model_AD.pkl", "rb") as f: model = pickle.load(f) def predict_pcos(input_features): # Convert input features into a DataFrame (assuming 8 features here) input_data = pd.DataFrame([input_features], columns=["Age (yrs)", "BMI", "Weight (Kg)", "Cycle length(days)", "Follicle No. (L)", "Follicle No. (R)", "AMH(ng/mL)", "beta-HCG(mIU/mL)"]) # Predict using the loaded model prediction = model.predict(input_data) return "PCOS Positive" if prediction[0] == 1 else "PCOS Negative" # Define Gradio inputs and outputs iface = gr.Interface( fn=predict_pcos, inputs=[ gr.inputs.Number(label="Age (yrs)"), gr.inputs.Number(label="BMI"), gr.inputs.Number(label="Weight (Kg)"), gr.inputs.Number(label="Cycle length(days)"), gr.inputs.Number(label="Follicle No. (L)"), gr.inputs.Number(label="Follicle No. (R)"), gr.inputs.Number(label="AMH(ng/mL)"), gr.inputs.Number(label="beta-HCG(mIU/mL)") ], outputs="text", title="PCOS Detection", description="Predicts PCOS based on user-provided medical data." ) # Launch the Gradio interface iface.launch() import gradio as gr import pickle import numpy as np # Load the trained model with open("model_AD.pkl", "rb") as f: model = pickle.load(f) def predict_pcos(age, weight, height, bmi, pulse_rate, cycle_length): input_data = np.array([[age, weight, height, bmi, pulse_rate, cycle_length]]) prediction = model.predict(input_data) return "Positive" if prediction[0] == 1 else "Negative" # Define the Gradio interface interface = gr.Interface( fn=predict_pcos, inputs=[ gr.Number(label="Age (yrs)"), gr.Number(label="Weight (Kg)"), gr.Number(label="Height (Cm)"), gr.Number(label="BMI"), gr.Number(label="Pulse rate(bpm)"), gr.Number(label="Cycle length(days)") ], outputs=gr.Textbox(label="PCOS Prediction"), title="PCOS Detection Model", description="Predicts the likelihood of PCOS based on user input features." ) # Launch the Gradio app interface.launch() ''' import gradio as gr import pickle import numpy as np # Load the model with open('model_AD.pkl', 'rb') as f: loaded_model = pickle.load(f) # Define the prediction function def predict_pcos( age, weight, height, bmi, blood_group, pulse_rate, rr, hb, cycle_ri, cycle_length, marriage_status, pregnant, no_of_abortions, fsh, lh, fsh_lh, hip, waist, waist1, tsh, prl, vit_d3, prg, rbs, weight_gain, hair_growth, skin_darkening, hair_loss, pimples, fast_food, reg_exercise, bp_systolic, bp_diastolic, follicle_no_l, follicle_no_r, avg_f_size_l, avg_f_size_r, endometrium): # Prepare the input data as a single-row array input_data = np.array([[ age, weight, height, bmi, blood_group, pulse_rate, rr, hb, cycle_ri, cycle_length, marriage_status, pregnant, no_of_abortions, fsh, lh, fsh_lh, hip, waist, waist1, tsh, prl, vit_d3, prg, rbs, weight_gain, hair_growth, skin_darkening, hair_loss, pimples, fast_food, reg_exercise, bp_systolic, bp_diastolic, follicle_no_l, follicle_no_r, avg_f_size_l, avg_f_size_r, endometrium ]]) # Get prediction prediction = loaded_model.predict(input_data)[0] return "PCOS Detected" if prediction == 1 else "No PCOS" # Define the Gradio interface inputs = [ gr.Number(label="Age (yrs)"), gr.Number(label="Weight (Kg)"), gr.Number(label="Height (Cm)"), gr.Number(label="BMI"), gr.Number(label="Blood Group"), # Convert categorical data appropriately if needed gr.Number(label="Pulse rate (bpm)"), gr.Number(label="RR (breaths/min)"), gr.Number(label="Hb (g/dl)"), gr.Number(label="Cycle (R/I)"), gr.Number(label="Cycle length (days)"), gr.Number(label="Marriage Status (Yrs)"), gr.Number(label="Pregnant (Y/N)"), # 1 for Yes, 0 for No gr.Number(label="No. of abortions"), gr.Number(label="FSH (mIU/mL)"), gr.Number(label="LH (mIU/mL)"), gr.Number(label="FSH/LH"), gr.Number(label="Hip (inch)"), gr.Number(label="Waist (inch)"), gr.Number(label="Waist1 (inch)"), gr.Number(label="TSH (mIU/L)"), gr.Number(label="PRL (ng/mL)"), gr.Number(label="Vit D3 (ng/mL)"), gr.Number(label="PRG (ng/mL)"), gr.Number(label="RBS (mg/dl)"), gr.Number(label="Weight gain (Y/N)"), # 1 for Yes, 0 for No gr.Number(label="Hair growth (Y/N)"), # 1 for Yes, 0 for No gr.Number(label="Skin darkening (Y/N)"), # 1 for Yes, 0 for No gr.Number(label="Hair loss (Y/N)"), # 1 for Yes, 0 for No gr.Number(label="Pimples (Y/N)"), # 1 for Yes, 0 for No gr.Number(label="Fast food (Y/N)"), # 1 for Yes, 0 for No gr.Number(label="Regular Exercise (Y/N)"), # 1 for Yes, 0 for No gr.Number(label="BP Systolic (mmHg)"), gr.Number(label="BP Diastolic (mmHg)"), gr.Number(label="Follicle No. (L)"), gr.Number(label="Follicle No. (R)"), gr.Number(label="Avg. F size (L) (mm)"), gr.Number(label="Avg. F size (R) (mm)"), gr.Number(label="Endometrium (mm)") ] outputs = gr.Textbox(label="PCOS Prediction") custom_css = """ body { background-color: #eafaf8; color: #333333; font-family: Arial, sans-serif; } .gradio-container { background: #ffffff; border: 2px solid #d4efdf; border-radius: 15px; padding: 20px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .input, .output { font-size: 16px; color: #2e4053; } .gr-button { background-color: #76d7c4; color: white; border: none; padding: 10px 20px; text-align: center; font-size: 14px; font-weight: bold; cursor: pointer; border-radius: 8px; transition: background-color 0.3s ease; } .gr-button:hover { background-color: #48c9b0; } .gr-input, .gr-textbox { border: 1px solid #a9dfbf; border-radius: 5px; padding: 8px; font-size: 14px; } .gr-title { font-size: 24px; font-weight: bold; color: #1abc9c; text-align: center; margin-bottom: 10px; } .gr-description { font-size: 16px; color: #5d6d7e; text-align: center; margin-bottom: 20px; } """ # Create and launch the app app = gr.Interface( fn=predict_pcos, inputs=inputs, outputs=outputs, title="PCOS Prediction Model", description="Enter the patient's information to predict PCOS.", css=custom_css ) app.launch()