|
import streamlit as st
|
|
import pandas as pd
|
|
from prophet import Prophet
|
|
import matplotlib.pyplot as plt
|
|
|
|
st.title("📈 Demand Forecasting App (Prophet ile)")
|
|
|
|
|
|
@st.cache_data
|
|
def load_data():
|
|
df = pd.read_csv("train.csv")
|
|
df['date'] = pd.to_datetime(df['date'])
|
|
return df
|
|
|
|
df = load_data()
|
|
|
|
|
|
store = st.selectbox("Mağaza Seç", sorted(df['store'].unique()))
|
|
item = st.selectbox("Ürün Seç", sorted(df['item'].unique()))
|
|
|
|
|
|
filtered = df[(df['store'] == store) & (df['item'] == item)]
|
|
dfp = filtered[['date', 'sales']].rename(columns={'date': 'ds', 'sales': 'y'})
|
|
|
|
|
|
model = Prophet()
|
|
model.fit(dfp)
|
|
|
|
|
|
future = model.make_future_dataframe(periods=90)
|
|
forecast = model.predict(future)
|
|
|
|
|
|
st.subheader("📊 Tahmin Grafiği")
|
|
fig1 = model.plot(forecast)
|
|
st.pyplot(fig1)
|
|
|
|
|
|
st.subheader("🧠 Mevsimsellik & Trend Bileşenleri")
|
|
fig2 = model.plot_components(forecast)
|
|
st.pyplot(fig2)
|
|
|