File size: 2,994 Bytes
13cce62 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
import pandas as pd
import gradio as gr
import joblib
le=joblib.load('le_col.pkl')
min_max=joblib.load('MinMax.pkl')
lr=joblib.load('model.pkl')
le_col=['gender','Partner','Dependents','PhoneService','PaperlessBilling','MultipleLines','InternetService','OnlineSecurity','OnlineBackup','DeviceProtection','TechSupport','StreamingTV','StreamingMovies','Contract','PaymentMethod']
MinMax=['TotalCharges','MonthlyCharges','tenure']
def prediction_churn_model(gr,sc,pr,dp,t,ps,mp,Is,os,ob,dd,ts,st,sm,cr,pb,pm,mc,tc):
try:
input_data=pd.DataFrame({
'gender':[gr],
'SeniorCitizen':[sc],
'Partner':[pr],
'Dependents':[dp],
'tenure':[t],
'PhoneService':[ps],
'MultipleLines':[mp],
'InternetService':[Is],
'OnlineSecurity':[os],
'OnlineBackup':[ob],
'DeviceProtection':[dd],
'TechSupport':[ts],
'StreamingTV':[st],
'StreamingMovies':[sm],
'Contract':[cr],
'PaperlessBilling':[pb],
'PaymentMethod':[pm],
'MonthlyCharges':[mc],
'TotalCharges':[tc]
})
for col in le_col:
input_data[col]=le[col].transform(input_data[col])
input_data[MinMax]=min_max.transform(input_data[MinMax])
prediction=lr.predict(input_data)
if prediction[0]==0:
return 'No'
else:
return 'Yes'
except Exception as e:
return str(e)
gr.Interface(
inputs=[
gr.Dropdown(['Female', 'Male'],label='gender'),
gr.Number(label='SeniorCitizen'),
gr.Dropdown(['No','Yes'],label='Partner'),
gr.Dropdown(['No','Yes'],label='Dependents'),
gr.Number(label='tenure'),
gr.Dropdown(['Yes','No'],label='PhoneService'),
gr.Dropdown(['No','Yes'],label='MultipleLines'),
gr.Dropdown(['Fiber optic','DSL','No'],label='InternetService'),
gr.Dropdown(['No','Yes','No internet service'],label='OnlineSecurity'),
gr.Dropdown(['No','Yes','No internet service'],label='OnlineBackup'),
gr.Dropdown(['No','Yes','No internet service'],label='DeviceProtection'),
gr.Dropdown(['No','Yes','No internet service'],label='TechSupport'),
gr.Dropdown(['No','Yes','No internet service'],label='StreamingTV'),
gr.Dropdown(['No','Yes','No internet service'],label='StreamingMovies'),
gr.Dropdown(['Month-to-month','Two year','One year'],label='Contract'),
gr.Dropdown(['Yes','No'],label='PaperlessBilling'),
gr.Dropdown(['Electroniccheck', 'Mailedcheck', 'Banktransfer', 'Creditcard'],label='PaymentMethod'),
gr.Number(label='MonthlyCharges'),
gr.Number(label='TotalCharges')
],
fn=prediction_churn_model,
outputs=gr.Textbox(label='Prediction'),
title='Prediction Telecoum Churn Model'
).launch() |