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()