commited on
Commit
3c35c49
·
verified ·
1 Parent(s): e1c7561

Upload 4 files

Browse files
Files changed (4) hide show
  1. README.md +48 -20
  2. app.py +41 -0
  3. prophet_model.pkl +3 -0
  4. requirements.txt +4 -3
README.md CHANGED
@@ -1,20 +1,48 @@
1
- ---
2
- title: Demand Forecasting With Prophet
3
- emoji: 🚀
4
- colorFrom: red
5
- colorTo: red
6
- sdk: docker
7
- app_port: 8501
8
- tags:
9
- - streamlit
10
- pinned: false
11
- short_description: Streamlit template space
12
- license: mit
13
- ---
14
-
15
- # Welcome to Streamlit!
16
-
17
- Edit `/src/streamlit_app.py` to customize this app to your heart's desire. :heart:
18
-
19
- If you have any questions, checkout our [documentation](https://docs.streamlit.io) and [community
20
- forums](https://discuss.streamlit.io).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Demand Forecasting with Prophet
3
+ emoji: 📈
4
+ colorFrom: green
5
+ colorTo: blue
6
+ sdk: streamlit
7
+ sdk_version: "1.32.2"
8
+ app_file: app.py
9
+ pinned: false
10
+ ---
11
+
12
+ # 📦 Store Item Demand Forecasting App (Prophet ile)
13
+
14
+ Bu uygulama, [Kaggle - Demand Forecasting Challenge](https://www.kaggle.com/competitions/demand-forecasting-kernels-only) veri seti kullanılarak Prophet modeli ile zaman serisi satış tahmini yapmak için geliştirilmiştir. Prophet modeli, tarihsel satış verilerinden trend, haftalık ve yıllık mevsimsellik bileşenlerini öğrenerek 90 gün ileriye yönelik tahminler üretir.
15
+
16
+ ---
17
+
18
+ ## 🎯 Özellikler
19
+
20
+ - Facebook Prophet ile zaman serisi modelleme
21
+ - Kullanıcı seçimi ile mağaza ve ürün bazlı tahmin
22
+ - 90 günlük ileriye dönük satış tahmini
23
+ - Trend, haftalık ve yıllık mevsimsellik bileşen analizi
24
+ - Etkileşimli grafiklerle görselleştirme
25
+
26
+ ---
27
+
28
+ ## 🧠 Model Detayları
29
+
30
+ - **Model:** Prophet (additive time series model)
31
+ - **Girdi:** Tarih (`date`) ve satış miktarı (`sales`)
32
+ - **Tahmin:** 90 günlük ileriye dönük `sales` değeri
33
+ - **Mevsimsellik:** Haftalık ve yıllık otomatik olarak öğrenilir
34
+
35
+ ---
36
+
37
+ ## 📂 Dosya Yapısı
38
+ demand_forecast_app/
39
+ ├── app.py → Streamlit uygulaması
40
+ ├── train.csv → Kaggle'dan alınan eğitim verisi
41
+ ├── requirements.txt → Gerekli Python paketleri
42
+ └── README.md → Bu dosya
43
+
44
+ ---
45
+
46
+ 📌 Veri Kaynağı
47
+ Veri seti Kaggle'dan alınmıştır:
48
+ 👉 Store Item Demand Forecasting Challenge
app.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ from prophet import Prophet
4
+ import matplotlib.pyplot as plt
5
+
6
+ st.title("📈 Demand Forecasting App (Prophet ile)")
7
+
8
+ # Veriyi yükle
9
+ @st.cache_data
10
+ def load_data():
11
+ df = pd.read_csv("train.csv")
12
+ df['date'] = pd.to_datetime(df['date'])
13
+ return df
14
+
15
+ df = load_data()
16
+
17
+ # Kullanıcıdan seçim
18
+ store = st.selectbox("Mağaza Seç", sorted(df['store'].unique()))
19
+ item = st.selectbox("Ürün Seç", sorted(df['item'].unique()))
20
+
21
+ # Prophet için veri hazırla
22
+ filtered = df[(df['store'] == store) & (df['item'] == item)]
23
+ dfp = filtered[['date', 'sales']].rename(columns={'date': 'ds', 'sales': 'y'})
24
+
25
+ # Model kur
26
+ model = Prophet()
27
+ model.fit(dfp)
28
+
29
+ # Tahmin
30
+ future = model.make_future_dataframe(periods=90)
31
+ forecast = model.predict(future)
32
+
33
+ # Tahmin Grafiği
34
+ st.subheader("📊 Tahmin Grafiği")
35
+ fig1 = model.plot(forecast)
36
+ st.pyplot(fig1)
37
+
38
+ # Mevsimsellik bileşenleri
39
+ st.subheader("🧠 Mevsimsellik & Trend Bileşenleri")
40
+ fig2 = model.plot_components(forecast)
41
+ st.pyplot(fig2)
prophet_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ee09975bfc55d2557333710110ccab1ac00ae0dd1b4208aae0128a30380ad94d
3
+ size 1209
requirements.txt CHANGED
@@ -1,3 +1,4 @@
1
- altair
2
- pandas
3
- streamlit
 
 
1
+ streamlit
2
+ pandas
3
+ prophet
4
+ matplotlib