Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| import gradio as gr | |
| import joblib | |
| from sklearn.preprocessing import MinMaxScaler | |
| scaler = MinMaxScaler() | |
| model=joblib.load('churn_model.joblib') | |
| min_max=joblib.load('MinMax.pkl') | |
| le=joblib.load('le_col.pkl') | |
| MinMax=['TotalCharges','MonthlyCharges','tenure'] | |
| yes_no_columns = ['gender','Partner','Dependents','PhoneService','MultipleLines','OnlineSecurity','OnlineBackup', | |
| 'DeviceProtection','TechSupport','StreamingTV','StreamingMovies','PaperlessBilling'] | |
| 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 yes_no_columns: | |
| input_data[col]=le[col].transform(input_data[col]) | |
| # for col in yes_no_columns: | |
| # input_data[col].replace({'Yes': 1,'No': 0},inplace=True) | |
| # input_data['gender'].replace({'Female':1,'Male':0},inplace=True) | |
| input_data = pd.get_dummies(data=input_data, columns=['InternetService','Contract','PaymentMethod']) | |
| input_data[MinMax]=min_max.transform(input_data[MinMax]) | |
| #input_data[MinMax]=scaler.transform(input_data[MinMax]) | |
| prediction=model.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.Dropdown(['No','Yes'],label='Partner'), | |
| gr.Dropdown(['No','Yes'],label='Dependents'), | |
| gr.Dropdown(['Yes','No'],label='PhoneService'), | |
| gr.Dropdown(['No','Yes'],label='MultipleLines'), | |
| gr.Dropdown(['Fiber optic','DSL','No'],label='InternetService'), | |
| gr.Dropdown(['No','Yes'],label='OnlineSecurity'), | |
| gr.Dropdown(['No','Yes'],label='OnlineBackup'), | |
| gr.Dropdown(['No','Yes'],label='DeviceProtection'), | |
| gr.Dropdown(['No','Yes'],label='TechSupport'), | |
| gr.Dropdown(['No','Yes'],label='StreamingTV'), | |
| gr.Dropdown(['No','Yes'],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='SeniorCitizen',minimum=0,maximum=1), | |
| gr.Number(label='tenure'), | |
| gr.Number(label='MonthlyCharges'), | |
| gr.Number(label='TotalCharges') | |
| ], | |
| fn=prediction_churn_model, | |
| outputs=gr.Textbox(label='Prediction'), | |
| title='Telecom Customer Churn Prediction' | |
| ).launch() |