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}')