import gradio as gr from joblib import load import pandas as pd dv , model = load("train_model.joblib") # creating a predict function to be passed into gradio UI def predict(age, job, marital, education, default, housing, loan, contact, month,day_of_week,campaign,pdays, previous,poutcome,cons_price_idx,cons_conf_idx,emp_var_rate): customer = { 'age': age, 'job': job, 'marital': marital, 'education': education, 'default': default, 'housing': housing, 'loan': loan, 'contact': contact, 'month': month, 'day_of_week': day_of_week, 'campaign': campaign, 'pdays': pdays, 'previous': previous, 'poutcome': poutcome, 'cons_price_idx': cons_price_idx, 'cons_conf_idx': cons_conf_idx, 'emp_var_rate': emp_var_rate } print(customer) df_transformed = dv.transform([customer]) prediction = model.predict_proba(df_transformed)[:,1] # Desposited = prediction >= 0.50 # result = { # "deposit_probability": float(prediction), # "Deposited": bool(Deposited) # } print(f' The probabilty of depositing in the bank is : {str(prediction)}') return str(prediction) age = gr.inputs.Slider(minimum=1,default = 35, maximum=100, label = 'age') #default=data['age'].mean() job = gr.inputs.Dropdown(choices=["housemaid", "services","admin.","blue-collar","technician", "retired","management","unemployed","self-employed","unknown", "entrepreneur","student"],label = 'job') marital = gr.inputs.Dropdown(choices=["married", "single","divorced","unknown"],label = 'marital') education = gr.inputs.Dropdown(choices=["basic.4y", "high.school","basic.6y","basic.9y","professional.course", "unknown","university.degree","illiterate"],label = 'education') default = gr.inputs.Dropdown(choices=["yes", "no","unknown"],label = 'default') housing = gr.inputs.Dropdown(choices=["yes", "no","unknown"],label = 'housing') loan = gr.inputs.Dropdown(choices=["yes", "no","unknown"],label = 'loan') contact = gr.inputs.Dropdown(choices=["telephone", "cellular"],label = 'contact') month = gr.inputs.Dropdown(choices=['may', 'jun', 'jul', 'aug', 'oct', 'nov', 'dec', 'mar', 'apr','sep'],label = 'month') day_of_week = gr.inputs.Dropdown(choices=['mon', 'tue', 'wed', 'thu', 'fri'],label = 'day_of_week') campaign = gr.inputs.Slider(minimum=1,default = 2, maximum=56, label = 'campaign') pdays = gr.inputs.Slider(minimum=0,default = 0, maximum=27, label = 'pdays') previous = gr.inputs.Slider(minimum=0,default = 0, maximum=7, label = 'previous') poutcome = gr.inputs.Dropdown(choices=["nonexistent", "failure","success"],label = 'poutcome') cons_price_idx = gr.inputs.Slider(minimum=92,default = 94, maximum=95, label = 'cons_price_idx') cons_conf_idx = gr.inputs.Slider(minimum=-51,default = -42, maximum=-27, label = 'cons_conf_idx') emp_var_rate = gr.inputs.Slider(minimum=4964,default = 5191, maximum=5228, label = 'emp_var_rate') iface = gr.Interface(predict,[age, job, marital, education, default, housing, loan, contact, month,day_of_week,campaign,pdays, previous,poutcome,cons_price_idx,cons_conf_idx,emp_var_rate], outputs = "number", interpretation="default" ) iface.launch(share=True)