sifaaral's picture
Upload 3 files
94d2bf0 verified
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}')