Spaces:
Sleeping
Sleeping
import gradio as gr | |
import pickle | |
def example1(): | |
model = pickle.load(open('model.pkl', 'rb')) | |
input_model = [[65,1.8,2,0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1]] | |
pred=model.predict(input_model) | |
churn = "False" | |
if pred[0] == 1: | |
churn = "He Will Churn" | |
elif pred[0] == 0: | |
churn = "He Will Not Churn" | |
return churn | |
def example2(): | |
model = pickle.load(open('model.pkl', 'rb')) | |
input_model = [[41,2,2,0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0]] | |
pred=model.predict(input_model) | |
churn = "False" | |
if pred[0] == 1: | |
churn = "He Will Churn" | |
elif pred[0] == 0: | |
churn = "He Will Not Churn" | |
return churn | |
def example3(): | |
model = pickle.load(open('model.pkl', 'rb')) | |
input_model = [[10,1.1,2,0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0]] | |
pred=model.predict(input_model) | |
churn = "False" | |
if pred[0] == 1: | |
churn = "He Will Churn" | |
elif pred[0] == 0: | |
churn = "He Will Not Churn" | |
return churn | |
def example4(): | |
model = pickle.load(open('model.pkl', 'rb')) | |
input_model = [[7,0.8,5,0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,0, 0, 1]] | |
pred=model.predict(input_model) | |
churn = "False" | |
if pred[0] == 0: | |
churn = "She Will Churn" | |
elif pred[0] == 1: | |
churn = "She Will Not Churn" | |
return churn | |
def greet(Total_Transaction, Total_Ct_Chng_Q4_Q1, Total_Relationship_Count, Education=None, Annual_Income=None, Marital_Status=None, Card_Type=None): | |
educ, edud, edug, eduh, edup, eduu, ai0, ai40, ai60, ai80, ai120, msd, msm, mss, ctb, ctg, cts = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |
if Annual_Income == "0k-40k": | |
ai0 = 1 | |
elif Annual_Income == "40k-60k": | |
ai40 = 1 | |
elif Annual_Income == "60k-80k": | |
ai60 = 1 | |
elif Annual_Income == "80k-120k": | |
ai80 = 1 | |
elif Annual_Income == "120k+": | |
ai120 = 1 | |
if Marital_Status == "Single": | |
mss = 1 | |
elif Marital_Status == "Married": | |
msm = 1 | |
elif Marital_Status == "Divorced": | |
msd = 1 | |
if Card_Type == "Blue": | |
ctb = 1 | |
elif Card_Type == "Gold": | |
ctg = 1 | |
elif Card_Type == "Silver": | |
cts = 1 | |
if Education == "College": | |
educ = 1 | |
elif Education == "Doctorate": | |
edud = 1 | |
elif Education == "Graduate": | |
edug = 1 | |
elif Education == "High-School": | |
eduh = 1 | |
elif Education == "Post-Graduate": | |
edup = 1 | |
elif Education == "Uneducated": | |
eduu = 1 | |
input_model = [[Total_Transaction,Total_Ct_Chng_Q4_Q1,Total_Relationship_Count,educ, edud, edug, eduh, edup, eduu, ai120, ai40, ai60, ai80, ai0, msd, msm, mss,ctb, ctg, cts]] | |
model = pickle.load(open('model.pkl', 'rb')) | |
pred=model.predict(input_model) | |
churn = "False" | |
if pred[0] == 1: | |
churn = "True" | |
elif pred[0] == 0: | |
churn = "False" | |
return churn | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
with gr.Column(scale=1,min_width=600): | |
gr.Image("logo2.png").style(height='7') | |
Total_Transaction = gr.Slider(0, 200,label="Total Transaction Count") | |
Total_Ct_Chng_Q4_Q1 = gr.Slider(0, 30,label="Transaction Count Q4 vs Q1") | |
Total_Relationship_Count = gr.Slider(0, 20,step=1,label="Total Relationship Count") | |
with gr.Column(scale=2,min_width=600): | |
with gr.Row(): | |
with gr.Column(scale=1,min_width=300): | |
Annual_Income = gr.Dropdown(["0k-40k","40k-60k","60k-80k","80k-120K","120k+"],label="Annual Income") | |
with gr.Column(scale=2,min_width=300): | |
Education = gr.Dropdown(["College","Doctorate","Graduate","High-School","Post-Graduate","Uneducated","Unknown"],label="Education") | |
with gr.Row(): | |
with gr.Column(scale=3,min_width=300): | |
Marital_Status = gr.Dropdown(["Single","Married","Divorced","Unknown"],label="Marital Status") | |
with gr.Column(scale=4,min_width=300): | |
Card_Type = gr.Dropdown(["Blue","Silver","Gold"],label="Crad Type") | |
churn = gr.Textbox(value="", label="Churn") | |
btn = gr.Button("PREDICT").style() | |
btn.click(fn=greet, inputs=[Total_Transaction,Total_Ct_Chng_Q4_Q1,Total_Relationship_Count,Education,Annual_Income,Marital_Status,Card_Type], outputs=[churn]) | |
gr.Markdown("""# Few Examples Based on Real-World Simulations""") | |
with gr.Row(): | |
with gr.Column(scale=1,min_width=300): | |
gr.Image("avatars/1.png") | |
churn1 = gr.Textbox(value="", label="Churn") | |
btn1 = gr.Button("PREDICT").style() | |
exp =1 | |
btn1.click(fn=example1, inputs=[], outputs=[churn1]) | |
gr.Markdown(""" | |
# Corporate Professional! | |
Total Transaction Count - 45\n | |
Transaction Count Q4 vs Q1 - 1.3\n | |
Total Relationship Count - 2\n | |
Annual Income - 40k-60k\n | |
Education - Graduate\n | |
Marital Status - Married\n | |
Card Type - Silver\n | |
""") | |
with gr.Column(scale=2,min_width=300): | |
gr.Image("avatars/4.png") | |
churn2 = gr.Textbox(value="", label="Churn") | |
bt2 = gr.Button("PREDICT").style() | |
bt2.click(fn=example4, inputs=[], outputs=[churn2]) | |
gr.Markdown(""" | |
# Medical Professional! | |
Total Transaction Count - 7\n | |
Transaction Count Q4 vs Q1 - 0.8\n | |
Total Relationship Count - 5\n | |
Annual Income - 80k-120k\n | |
Education - Doctorate\n | |
Marital Status - Married\n | |
Card Type - Gold\n | |
""") | |
with gr.Column(scale=3,min_width=300): | |
gr.Image("avatars/2.png") | |
churn3 = gr.Textbox(value="", label="Churn") | |
btn3 = gr.Button("PREDICT").style() | |
btn3.click(fn=example2, inputs=[], outputs=[churn3]) | |
gr.Markdown(""" | |
# Freelance Photographer! | |
Total Transaction Count - 41\n | |
Transaction Count Q4 vs Q1 - 2\n | |
Total Relationship Count - 2\n | |
Annual Income - 0k-40k\n | |
Education - High-School\n | |
Marital Status - Single\n | |
Card Type - Blue\n | |
""") | |
with gr.Column(scale=4,min_width=300): | |
gr.Image("avatars/3.png") | |
churn4 = gr.Textbox(value="", label="Churn") | |
btn4 = gr.Button("PREDICT").style() | |
btn4.click(fn=example3, inputs=[], outputs=[churn4]) | |
gr.Markdown(""" | |
# Retired Veteran Pensioner! | |
Total Transaction Count - 10\n | |
Transaction Count Q4 vs Q1 - 1.1\n | |
Total Relationship Count - 2\n | |
Annual Income - 80k-120k\n | |
Education - Post-Graduate\n | |
Marital Status - Divorced\n | |
Card Type - GOld\n | |
""") | |
demo.launch() |