운동 시간, 체온, 심박수 등의 데이터를 기반으로 운동 중 소모된 칼로리를 예측하는 웹 서비스입니다. 스태킹 앙상블 모델을 사용하여 더 정확한 예측을 제공합니다.
- Python 3.9
- pip (Python 패키지 관리자)
- 레포지토리 클론
- 가상환경 생성 및 활성화
- 필요한 패키지 설치 pip install -r requirements.txt
- 웹 서비스 실행
python app.py
- 실행 후 http://localhost:5000 접속
| 입력 항목 | 단위 | 허용 범위 |
|---|---|---|
| 운동 시간 | 분 | 1~120 |
| 체온 | °C | 35~42 |
| 심박수 | BPM | 60~200 |
| 신장 | cm | 140~200 |
| 체중 | kg | 40~120 |
| 나이 | 세 | 15~80 |
| 성별 | - | 남성/여성 |
calories-prediction/
├── app_final.py # Flask 웹 서버 (스태킹 모델)
├── finalModel.ipynb # 모델 학습 노트북
├── final_model.pkl # 학습된 스태킹 모델
├── templates/
│ └── index_final.html # 메인 페이지
├── static/
│ ├── css/
│ │ └── style_final.css
│ └── js/
│ └── script_final.js
└── README.md
스태킹 앙상블 모델에 사용된 기본 모델들:
- Linear Regression
- Ridge Regression
- Random Forest (n_estimators=50)
- XGBoost (n_estimators=100)
- LightGBM (n_estimators=100)
- SVR (kernel='rbf')
- Elastic Net (alpha=1.0, l1_ratio=0.5)
- Neural Network (MLP)
- KNN (n_neighbors=5)
-
단위 변환
- 체온: °C → °F
- 체중: kg → lb
- 신장: cm → feet & inches
-
특성 생성
- PolynomialFeatures(degree=3)로 고차항 생성
- SelectKBest로 상위 40개 특성 선택
-
Backend
- Flask 2.0.1
- Python 3.9
-
Frontend
- HTML5/CSS3
- JavaScript (Vanilla JS)
-
Machine Learning
- scikit-learn 1.5.2
- XGBoost 1.5.0
- LightGBM 3.3.2
- pandas 1.3.3
- numpy 1.23.0
- 이름: 임나경, 이호준, 조세은
- v2.0.0 (2024-03-21)
- 스태킹 모델 적용
- 전처리 과정 개선
- UI/UX 개선