File size: 2,858 Bytes
47d06cd
 
 
 
 
6221f3e
47d06cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6221f3e
47d06cd
 
6221f3e
47d06cd
 
6221f3e
47d06cd
 
6221f3e
47d06cd
 
6221f3e
47d06cd
 
 
 
6221f3e
47d06cd
 
6221f3e
47d06cd
 
6221f3e
47d06cd
6221f3e
 
47d06cd
 
6221f3e
47d06cd
 
6221f3e
47d06cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6221f3e
47d06cd
 
 
 
 
 
 
 
 
 
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
"""
Milestone 2
Nama: Qothrunnadaa Alyaa
Batch: HCK-009

File ini digunakan untuk menjalankan model prediksi penggunaan kupon diskon
"""

import streamlit as st
import pandas as pd
import pickle

# Membuat function untuk dipanggil di app.py
def run():
    st.title('Coupon Redemption Predictor')

    # Memasukkan besaran diskon menggunakan kupon
    coupon_discount = st.number_input(label='Discount from Coupon', min_value=0.00)

    # Memasukkan lamanya periode promo
    campaign_length = st.number_input(label='Promo Period (in Days)', min_value=0.00)

    # Memasukkan tanggal transaksi
    trx_day = st.number_input(label='Transaction Date', min_value=0.00)

    # Memasukkan tanggal mulai periode promosi
    start_day = st.number_input(label='Promotion Start Date', min_value=0.00)

    # Memasukkan tanggal berakhir periode promosi
    end_day = st.number_input(label='Promotion End Date', min_value=0.00)

    # Memasukkan tipe brand
    brand_type = st.selectbox(label='Brand Type', options=['Established','Local'])

    # Daftar kategori barang
    category_opt = ['Dairy, Juices & Snacks','Grocery','Seafood','Prepared Food','Packaged Meat','Meat',
                'Pharmaceutical','Natural Products','Skin & Hair Care','Flowers & Plants','Garden',
                'Travel','Miscellaneous','Bakery','Vegetables (cut)','Salads']
    
    # Memasukkan kategori barang
    category = st.selectbox(label='Item Category', options=category_opt)

    # Memasukkan tipe campaign/promosi
    campaign_type = st.selectbox(label='Campaign Type', options=['Y','X'])

    # Daftar kelompok umur
    age_option = ['18-25','26-35','36-45','46-55','56-70','70+']

    # Memasukkan kelompok umur pelanggan
    age_range = st.selectbox(label='Customer Age Range', options=age_option)

    # Memasukkan tingkat pendapatan pelanggan
    income_bracket = st.select_slider(label='Customer Income Bracket',options=[n for n in range(1,13)])

    # Membuat data inference dari data yang dimasukkan
    data_inf = pd.DataFrame({
        'coupon_discount': coupon_discount,
        'campaign_length': campaign_length,
        'trx_day': trx_day,
        'start_day': start_day,
        'end_day': end_day,
        'brand_type': brand_type,
        'category': category,
        'campaign_type': campaign_type,
        'age_range': age_range,
        'income_bracket': income_bracket
    }, index=[0])
    
    # Menampilkan data 
    st.header("Transaction Overview")
    st.table(data_inf)

    # Memprediksi apakah kupon akan digunakan atau tidak
    if st.button(label='Predict'):
        with open('model.pkl','rb') as model:
            model = pickle.load(model)
            
        y_pred_inf = model.predict(data_inf)
        
        if y_pred_inf == 0:
            st.write('Coupon was not redeemed.')
        else:
            st.write('Coupon was redeemed.')