| import pandas as pd |
| import gradio as gr |
| import joblib |
|
|
| |
| le = joblib.load('le_col.pkl') |
| std = joblib.load('std_col.pkl') |
| lg = joblib.load('lg.pkl') |
|
|
| le_col = ['gender','education','region','loyalty_status','purchase_frequency','product_category'] |
| std_col = ['age','income','purchase_amount','promotion_usage','satisfaction_score'] |
|
|
| def Prediction_will_purchase_again_Model(a,g,i,e,r,l,p,pp,c,u,s): |
| try: |
| input_data = pd.DataFrame({ |
| 'age':[a], |
| 'gender':[g], |
| 'income':[i], |
| 'education':[e], |
| 'region':[r], |
| 'loyalty_status':[l], |
| 'purchase_frequency':[p], |
| 'purchase_amount':[pp], |
| 'product_category':[c], |
| 'promotion_usage':[u], |
| 'satisfaction_score':[s] |
| }) |
|
|
| |
| for col in le_col: |
| input_data[col] = le[col].transform(input_data[col]) |
| |
| |
| input_data[std_col] = std.transform(input_data[std_col]) |
|
|
| |
| prob = lg.predict_proba(input_data)[:,1][0] |
| threshold = 0.4 |
| if prob >= threshold: |
| return f'Yes (Prob={prob:.2f})' |
| else: |
| return f'No (Prob={prob:.2f})' |
| except Exception as e: |
| return str(e) |
|
|
| |
| gr.Interface( |
| fn=Prediction_will_purchase_again_Model, |
| inputs=[ |
| gr.Number(label='age'), |
| gr.Dropdown(['Male','Female'],label='gender'), |
| gr.Number(label='income'), |
| gr.Dropdown(['Bachelor', 'Masters', 'HighSchool', 'College'],label='education'), |
| gr.Dropdown(['East', 'West', 'South', 'North'],label='region'), |
| gr.Dropdown(['Gold', 'Regular', 'Silver'],label='loyalty_status'), |
| gr.Dropdown(['frequent', 'rare', 'occasional'],label='purchase_frequency'), |
| gr.Number(label='purchase_amount'), |
| gr.Dropdown(['Books', 'Clothing', 'Food', 'Electronics', 'Home', 'Beauty','Health'],label='product_category'), |
| gr.Number(label='promotion_usage'), |
| gr.Number(label='satisfaction_score') |
| ], |
| title='Prediction_will_purchase_again_Model', |
| outputs=gr.Textbox(label='Prediction') |
| ).launch() |
|
|