File size: 3,997 Bytes
2c3fee3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#import modules
import numpy as np
import gradio as gr
import joblib
import pandas as pd
import os


def load_model():
    cwd = os.getcwd()

    destination = os.path.join(cwd, "saved cap")

    Final_model_file_path = os.path.join(destination, "Final_model.joblib")
    preprocessor_file_path = os.path.join(destination, "preprocessor.joblib")
    

    Final_model = joblib.load(Final_model_file_path)
    preprocessor = joblib.load(preprocessor_file_path)
    

    return Final_model, preprocessor

Final_model, preprocessor = load_model()


#define prediction function
def make_prediction(REGION, TENURE, MONTANT, FREQUENCE_RECH, REVENUE, ARPU_SEGMENT, FREQUENCE, DATA_VOLUME, ON_NET, ORANGE, TIGO, ZONE1, ZONE2,MRG, REGULARITY, FREQ_TOP_PACK):
    #make a dataframe from input data
    input_data = pd.DataFrame({'REGION':[REGION], 
                               'TENURE':[TENURE], 
                               'MONTANT':[MONTANT], 
                               'FREQUENCE_RECH':[FREQUENCE_RECH], 
                               'REVENUE':[REVENUE],
                               'ARPU_SEGMENT':[ARPU_SEGMENT], 
                               'FREQUENCE':[FREQUENCE], 
                               'DATA_VOLUME':[DATA_VOLUME], 
                               'ON_NET':[ON_NET],
                               'ORANGE':[ORANGE], 
                               'TIGO':[TIGO], 
                               'ZONE1':[ZONE1], 
                               'ZONE2':[ZONE2],
                               'MRG':[MRG],
                               'REGULARITY':[REGULARITY], 
                               'FREQ_TOP_PACK':[FREQ_TOP_PACK]})
    
    transformer = preprocessor.transform(input_data)
   
    predt = Final_model.predict(transformer) 
    #return prediction
    if predt[0]==1:
        return "Customer will Churn" 
    return "Customer will not Churn"
    

#create the input components for gradio
REGION = gr.inputs.Dropdown(choices =['DAKAR', 'THIES', 'SAINT-LOUIS', 'LOUGA', 'KAOLACK', 'DIOURBEL', 'TAMBACOUNDA' 'KAFFRINE,KOLDA', 'FATICK', 'MATAM', 'ZIGUINCHOR', 'SEDHIOU', 'KEDOUGOU']) 
TENURE = gr.inputs.Dropdown(choices =['K > 24 month', 'I 18-21 month', 'H 15-18 month', 'G 12-15 month', 'J 21-24 month', 'F 9-12 month', 'E 6-9 month', 'D 3-6 month']) 
MONTANT = gr.inputs.Number()
FREQUENCE_RECH = gr.Number()
REVENUE = gr.Number()
ARPU_SEGMENT = gr.Number() 
FREQUENCE = gr.Number() 
DATA_VOLUME = gr.Number() 
ON_NET = gr.Number()
ORANGE = gr.Number()
TIGO = gr.Number()
ZONE1 = gr.Number() 
ZONE2 = gr.Number()
MRG = gr.inputs.Dropdown(choices =['NO'])    
REGULARITY = gr.Number()
FREQ_TOP_PACK = gr.Number()

output = gr.Textbox(label='Prediction')
#create the interface component

app = gr.Interface(fn =make_prediction,inputs =[REGION, 
                                                TENURE, 
                                                MONTANT, 
                                                FREQUENCE_RECH, 
                                                REVENUE, 
                                                ARPU_SEGMENT, 
                                                FREQUENCE, 
                                                DATA_VOLUME, 
                                                ON_NET, 
                                                ORANGE, 
                                                TIGO, 
                                                ZONE1, 
                                                ZONE2,
                                                MRG, 
                                                REGULARITY, 
                                                FREQ_TOP_PACK],
                                                 title ="Customer Churn Predictor", 
                                                  description="Enter the feilds Below and click the submit button to Make Your Prediction",
                                                 outputs = output)

app.launch(share = True, debug = True)