Parthebhan's picture
Update app.py
0d68274 verified
import pickle
import gradio as gr
# Load the pickled model
with open('./RF.pickle', 'rb') as file:
model = pickle.load(file)
# Define the function for making predictions
def cerviccancer(Age, Num_sexual_partners, First_sexual_intercourse, Num_pregnancies, Smokes, Smokes_years, Smokes_packs_year,
Hormonal_Contraceptives, Hormonal_Contraceptives_years, IUD, IUD_years, STDs, STDs_condylomatosis, STDs_cervical_condylomatosis,
STDs_vaginal_condylomatosis, STDs_vulvoperineal_condylomatosis, STDs_syphilis, STDs_pelvic_inflammatory_disease, STDs_genital_herpes,
STDs_molluscum_contagiosum, STDs_AIDS, STDs_HIV, STDs_Hepatitis_B, STDs_HPV, STDs_Num_of_diagnosis, Dx_Cancer, Dx_CIN, Dx, Hinselmann, Schiller, Citology):
inputs = [[Age, Num_sexual_partners, First_sexual_intercourse, Num_pregnancies, Smokes, Smokes_years, Smokes_packs_year,
Hormonal_Contraceptives, Hormonal_Contraceptives_years, IUD, IUD_years, STDs, STDs_condylomatosis, STDs_cervical_condylomatosis,
STDs_vaginal_condylomatosis, STDs_vulvoperineal_condylomatosis, STDs_syphilis, STDs_pelvic_inflammatory_disease, STDs_genital_herpes,
STDs_molluscum_contagiosum, STDs_AIDS, STDs_HIV, STDs_Hepatitis_B, STDs_HPV, STDs_Num_of_diagnosis, Dx_Cancer, Dx_CIN, Dx, Hinselmann, Schiller, Citology]]
prediction = model.predict(inputs)
prediction_value = prediction[0]
# Categorize prediction_value
if prediction_value == 0:
result = "Biopsy Not Needed 🟒"
else:
result = "Biopsy Needed πŸ”΄"
return f"Biopsy Prediction: {prediction_value} \n\nResult: {result}"
# Create the Gradio interface
cerviccancer_ga = gr.Interface(fn=cerviccancer,
inputs = [
gr.Number(13.0, 84.0, label="Age: [13 to 84]"),
gr.Number(1.0, 28.0, label="Number of sexual partners: [1 to 28]"),
gr.Number(10.0, 32.0, label="First sexual intercourse: [10 to 32]"),
gr.Number(0.0, 11.0, label="Num of pregnancies: [0 to 11]"),
gr.Number(0.0, 1.0, label="Smokes: [0 or 1]"),
gr.Number(0.0, 37.0, label="Smokes (years): [0 to 37]"),
gr.Number(0.0, 37.0, label="Smokes (packs/year): [0 to 37]"),
gr.Number(0.0, 1.0, label="Hormonal Contraceptives: [0 or 1]"),
gr.Number(0.0, 30.0, label="Hormonal Contraceptives (years): [0 to 30]"),
gr.Number(0.0, 1.0, label="IUD: [0 or 1]"),
gr.Number(0.0, 19.0, label="IUD (years): [0.0 19.0]"),
gr.Number(0.0, 1.0, label="STDs: [0 or 1]"),
gr.Number(0.0, 1.0, label="STDs:condylomatosis: [0 or 1]"),
gr.Number(0.0, 0.0, label="STDs:cervical condylomatosis: [0]"),
gr.Number(0.0, 1.0, label="STDs:vaginal condylomatosis: [0 or 1]"),
gr.Number(0.0, 1.0, label="STDs:vulvo-perineal condylomatosis: [0 or 1]"),
gr.Number(0.0, 1.0, label="STDs:syphilis: [0 or 1]"),
gr.Number(0.0, 1.0, label="STDs:pelvic inflammatory disease: [0 or 1]"),
gr.Number(0.0, 1.0, label="STDs:genital herpes: [0 or 1]"),
gr.Number(0.0, 1.0, label="STDs:molluscum contagiosum: [0 or 1]"),
gr.Number(0.0, 0.0, label="STDs:AIDS: [0]"),
gr.Number(0.0, 1.0, label="STDs:HIV: [0 or 1]"),
gr.Number(0.0, 1.0, label="STDs:Hepatitis B: [0 or 1]"),
gr.Number(0.0, 1.0, label="STDs:HPV: [0 or 1]"),
gr.Number(0.0, 3.0, label="STDs: Number of diagnosis: [0 to 3]"),
gr.Number(0.0, 1.0, label="Dx:Cancer: [0 or 1]"),
gr.Number(0.0, 1.0, label="Dx:CIN: [0 or 1]"),
gr.Number(0.0, 1.0, label="Dx: [0 or 1]"),
gr.Number(0.0, 1.0, label="Hinselmann: [0 or 1]"),
gr.Number(0.0, 1.0, label="Schiller: [0 or 1]"),
gr.Number(0.0, 1.0, label="Citology: [0 or 1]")
],
outputs="text", title="Cervical Cancer Risk Prediction",
examples = [
[33, 2, 24, 2, 0, 0, 0, 1, 0.08, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[29, 2, 20, 1, 0, 0, 0, 1, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[21, 1, 17, 2.2, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
[33, 3, 18, 2, 0.14, 1.21, 0.45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
[20, 3, 17, 2, 0, 0, 0, 1, 0.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[30, 1, 17, 3, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0]
],
description="Predicting probability of Biopsy Using Machine Learning.\n\n Associated Data: \n\nData of Cervical cancer Availability Statement: dataset was obtained from the open-access Cervical cancer (Risk Factors) Data Set database of Cervical Cancer Risk Factors for Biopsy and are available at https://archive.ics.uci.edu/ml/datasets/Cervical+cancer+%28Risk+Factors%29 (accessed on 24 March 2022).\n\nDeveloped by: Parthebhan Pari \n\n Last updated on: Apl 2024",
theme='dark'
)
cerviccancer_ga.launch(share=True,debug=True)