Project/Convenience Store Location Analysis

[편의점 매출 예측] Streamlit 페이지 구현 1. 페이지 설명 및 구현 순서

skwkiix 2023. 12. 22. 16:37
728x90

 

Streamlit  페이지 구현  1. 페이지 설명 및 구현 순서


1. Streamlit 구현 페이지

 

Home

This app was built in Streamlit! Check it out and visit https://streamlit.io for more awesome community apps. 🎈

procspredictor.streamlit.app


2. Streamlit 구현 페이지 상세

 ┣ 📂pages
 ┃ ┣ 📜main_page.py # 메인 페이지
 ┃ ┗ 📜sub_page.py # 서브 페이지
 ┣ 📜Home.py # 첫 페이지

 

Home Page  > 서비스 안내 등 main page, sub page 이용 방법을 안내하는 페이지이다.

Main Page > map 에서 원하는 상권을 확인 후, Side Bar 에서 상권과 분기를 선택하면 시간대별 매출 예측 그래프가 나타난다.

Sub Page > Side Bar 에서 상권, 시간대, 분기를 선택 후, 세부 피쳐를 조정하면, 상황에 맞춰 변화된 매출 예측 결과가 나타난다.


3. Streamlit 주요 아키텍쳐

Streamlit
 ┣ 📂data
 ┣ 📂models
 ┃ ┣ 📜gm_model.pkl # 모델 pkl
 ┃ ┗ 📜ngm_model.pkl # 모델 pkl
 ┣ 📂pages
 ┃ ┣ 📜main_page.py # 메인 페이지
 ┃ ┗ 📜sub_page.py # 서브 페이지
 ┣ 📜Home.py # 첫 페이지
 ┣ 📜models_gol.py # 골목상권 모델
 ┣ 📜models_ngol.py # 비골목상권 모델
 ┗ 📜requirements.txt

 

data : png, csv 파일

models : 모델 pkl 파일(메인 models_gol.py, models_ngol.py에서 생성)

Pages : main page, subpage 각각 페이지 py 파일

Home.py : 링크 접속 시, 첫 페이지 코드


4. 구현 순서도

0. github repository 생성 후 Local 과 연결

 

1. 모델을 pkl 형태로 저장

> models_gol.py, models_ngol.py 에서 각각 진행

> models 폴더에 gm_model.pkl,과 ngm_model.pkl 이 저장됨

 

 

2. Pages 의 sub_page, main_page 코드 작성

 

> (공통) 상권 별 골목/비골목 개별 모델 적용 코드 

> (main_page) 개별 모델 적용 후, (기본값: 가장 최신 데이터) 기준 시간대별 매출 예측 시각화 그래프 구현

> (sub_page) 개별 모델 적용 이후, 피쳐 별 slider로 조절 기능 추가 및 예측(기본값: 가장 최신 데이터)

 

 

3. Home.py 작성

> 페이지 소개 작성

> pages 를 연결하는 코드 작성

 

4. requirements 점검

5. 배포


자세한 코드는 깃허브 주소를 참고(https://github.com/sin09135/MiniPJT)

728x90