File size: 1,917 Bytes
94d2bf0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import joblib
import pandas as pd

# Modeli yükle
model_filename = 'random_forest_model.joblib'
model = joblib.load(model_filename)

# Kategorik verileri manuel olarak sayılara dönüştüren bir fonksiyon
def encode_family(family):
    family_mapping = {'family1': 0, 'family2': 1, 'family3': 2}
    return family_mapping.get(family, -1)  # -1, geçersiz kategori

def encode_holiday_or_weekday(holiday_or_weekday):
    holiday_mapping = {'weekday': 0, 'holiday': 1}
    return holiday_mapping.get(holiday_or_weekday, -1)  # -1, geçersiz kategori

# Tahmin fonksiyonu
def predict(input_data):
    input_df = pd.DataFrame(input_data, index=[0])
    
    # Kategorik verileri manuel olarak dönüştür
    input_df['family'] = input_df['family'].apply(encode_family)
    input_df['holiday_or_weekday'] = input_df['holiday_or_weekday'].apply(encode_holiday_or_weekday)
    
    # Modelle tahmin yap
    prediction = model.predict(input_df)
    return prediction[0]

# Streamlit UI
st.title("Sales Prediction App")
st.write("Enter the input features:")

# Girdi alanları
store_nbr = st.number_input('Store Number:', min_value=1) 
family = st.selectbox('Family:', ['family1', 'family2', 'family3']) 
date_conv = st.number_input('Date (YYYYMMDD):')  
dcoilwtico = st.number_input('Oil Price (dcoilwtico):')  
day_week = st.number_input('Day of Week (0=Monday, 6=Sunday):', min_value=0, max_value=6)  
holiday_or_weekday = st.selectbox('Holiday or Weekday:', ['weekday', 'holiday'])  

# Girdi verilerini hazırla
input_data = {
    'id': 0,  
    'store_nbr': store_nbr,
    'family': family,
    'date_conv': date_conv,
    'dcoilwtico': dcoilwtico,
    'day_week': day_week,
    'holiday_or_weekday': holiday_or_weekday,
}

if st.button('Predict'):
    prediction = predict(input_data)
    st.write(f'Predicted sales: {prediction:.2f}')