🎯 SKN16-2nd-1Team : 2023년 흡연율 예측 프로젝트
📌 1. 프로젝트 개요
1.1 프로젝트 소개
> 2020–2022년 지방자치단체별 인구·보건·경제 지표를 활용해 2023년 흡연율을 머신러닝/딥러닝으로 예측
1.2 주제선정 배경
- 최근 지방자치단체들은 금연 정책을 보다 효과적으로 추진하기 위해 지역 단위 맞춤형 프로그램과 첨단 기술을 적극 도입함
2025년 7월, 서울 서초구는 전국 최초로 배터리 내장형 인공지능(AI) 기반 흡연 감지장치 “서초 AI 흡연 제로”를 본격 운영하겠다고 밝혔으며, 간접흡연으로 인한 주민 피해를 획기적으로 저감하고 금연 환경 조성에 나섬
이처럼 시군구 단위에서의 혁신적 금연 지원서비스가 확대됨에 따라, 시군구별 흡연율을 정확히 예측하고 모니터링하는 데이터 기반 접근의 필요성이 대두됨
- 공중보건 강화
자치단체별 흡연율 변화를 사전에 예측하여 금연 정책의 효과를 극대화
- 데이터 활용
시·군·구 단위의 상세 데이터를 모델에 적용해 많은 정보 제공
1.3 프로젝트 목표
1. 과거(2020–2022년) 데이터로 2023년 흡연율 예측
2. 10종 회귀 모델(RF, XGBoost, LGBM, Stacking 등) 성능 비교
3. Streamlit 웹 앱으로 대시보드 배포
🔍 2. 데이터분석 및 전처리
2.1 데이터셋
- 기간 : 2020–2023년, 전국 207개 시·군·구
- 주요 컬럼
`연도` : 조사 연도 (2020–2023)
`시도`, `시군구` : 행정구역 식별자
`총 인구수`, `성인인구`, `흡연인구` : 인구 통계
`담배소매지점개수`, `소비자물가지수`: 경제 지표
`평균 기대수명`, `평균소득월액`, `진학률`, `진료비(천원)' : 보건·복지 지표
`흡연율` : (흡연인구 / 성인인구) × 100(%)
2.2 연도별 지표 변화
2020–2023년 **시도별** 주요 지표 추이

그림 1. 시도별 연도 추이 종합
2.3 변수 간 상관관계
2.3.1 Pearson 상관관계 히트맵

그림 2. 변수 상관관계 히트맵
2.3.2 ‘흡연율’과 상관계수 Top 10

그림 3. 흡연율 상관계수 Top 10 (절댓값)
✅ 2.4 모델 성능 비교 및 해석
2.4.1 최상위 모델: DeepLearning (딥러닝)
Optuna로 최적화한 하이퍼파라미터 적용 모델의 epoch별 성능
DeepLearning : Input → 99 → 80 → Output | ReLU | 0.3703 |
















✅ 최종 선택
- 실험한 epoch: 200, 600, 1000, 2000
- R² 기준으로 성능이 가장 높은 epoch=1000 모델을 최종 사용
🚀 시연 페이지 (Demo)
아래는 Streamlit 웹 앱의 주요 화면입니다.
이미지를 클릭하면 원본 크기로 보실 수 있습니다.
그림 1. 연도별 주요 지표 추이


그림 1. 2020–2023년 시도별 주요 지표 연도별 추이
그림 2. 변수 간 상관관계 히트맵

그림 2. 데이터 전체 변수 간 Pearson 상관관계
그림 3. 전체 예측 성능



그림 3. 실제 vs 예측
그림 4. 예측 오차 분포 히스토그램

그림 4. 예측 오차(Actual – Predicted) 분포 히스토그램
그림 5. 전체 지역 예측 결과 비교

그림 5. 전국 시군구별 실제 vs 예측 흡연율 추이 비교
그림 6. 모델 성능 순위 (R²)


그림 6. 전체 모델 R² 순위 비교

그림 7. 전체 모델 순위 표
📝 4. 결론
4.1 한계점
- 단일 연도(2023) 예측 시 R² 산출 한계
- 사회·환경 변수 미반영
- 소규모 지역 샘플 수 부족
4.2 기대효과
- 지자체 금연 정책 의사결정 지원
- 예측 vs 실제 비교를 통한 정책 개선 인사이트
- 추가 지표 결합으로 모델 확장 가능
© 2025 SKN 16기 2차 단위프로젝트 1팀
📝 프로젝트 회고
이번 「2023년 흡연율 예측 프로젝트」는 2020–2022년 시·군·구별 인구, 보건, 경제 지표를 활용해 2023년 흡연율을 예측하는 것을 목표로 했다. 다양한 회귀 모델을 비교하고, 최종적으로 딥러닝 모델(Optuna로 하이퍼파라미터 최적화)을 적용하여 성능을 높이고자 했다.
1. 프로젝트 진행 중 느낀 점
- 데이터 양의 한계
- 데이터는 전국 207개 시·군·구 × 4년(2020–2023)으로 구성되어 있었지만, 예측 대상이 2023년 단일 연도였기 때문에 실제 학습에 활용할 수 있는 데이터 수는 생각보다 적었다.
- 특히 딥러닝 모델을 적용하기에는 데이터 규모가 부족했고, 오히려 과적합(overfitting) 위험이 컸다.
- 머신러닝 모델(RF, XGBoost, LGBM 등)에서는 비교적 안정적인 성능이 나왔으나, 딥러닝은 데이터 제한 때문에 성능이 불안정하게 변동하는 경향이 있었다.
- 변수 다양성 부족
- 현재 데이터셋은 인구·경제·보건 지표 중심이라 사회·문화·환경적인 요인을 반영하지 못했다.
- 예를 들어 금연 캠페인 횟수, 흡연 단속 건수, 기상 데이터, 유동인구 데이터 등을 포함했다면 예측력이 더 향상될 수 있었을 것으로 판단된다.
- 단일 연도 예측의 제약
- 2023년 흡연율 예측이 프로젝트 목표였지만, 단일 연도 예측은 평가 지표(R² 등) 산출에 제약이 있었다.
- 향후에는 다년간의 시계열 예측으로 확장하거나, 교차검증 전략을 달리 적용해 검증 안정성을 확보할 필요가 있다.
- Streamlit 구현 경험
내가 맡은 부분은 Streamlit 기반 웹 대시보드 구현이었다.
분석 결과를 표, 차트, 지도 시각화 형태로 한눈에 볼 수 있도록 구성했고, 사용자가 특정 시·군·구를 선택하면 해당 지역의 예측값과 실제값, 오차 등을 비교할 수 있도록 만들었다.
단순한 데이터 테이블을 보여주는 것이 아니라, 예측 결과의 의미를 쉽게 파악할 수 있는 UI/UX를 고민하며 구현한 점이 만족스러웠다.
특히 Matplotlib, Plotly 그래프를 Streamlit에 통합하고, 필터·슬라이더·셀렉트박스 등을 활용해 상호작용형 시각화를 제공했다.
2. 아쉬운 점
- 데이터 수집 범위
- 공개된 공공데이터 위주로 진행하다 보니 최신 데이터나 세부 행정구 단위의 데이터를 충분히 확보하지 못함.
- 딥러닝 모델의 한계
- 데이터 크기와 모델 복잡도 간 불균형이 발생해, 딥러닝이 기대한 만큼 성능을 발휘하지 못함.
- 모델 해석력 부족
- 모델 성능은 수치로 비교했지만, 각 변수의 기여도(Feature Importance) 분석이 더 깊이 들어가지 못해 정책 인사이트 도출에는 한계가 있었다.
3. 배운 점
- 데이터 양과 모델 선택의 균형
“좋은 모델”보다 “데이터에 맞는 모델”이 중요하다는 점을 다시 느꼈다.
데이터가 적을수록 딥러닝보다 해석력 있고 가벼운 머신러닝 모델이 적합할 수 있다는 점을 체감했다. - 도메인 지식의 필요성
공중보건 분야의 정책 흐름과 사회적 맥락을 이해하면, 변수 선정과 데이터 수집 방향이 훨씬 정교해진다. - 대시보드 개발 경험
Streamlit을 활용해 예측 결과를 시각적으로 전달할 수 있었던 점은 긍정적이었다.
데이터 분석 결과를 ‘바로 볼 수 있는 형태’로 제공하는 것이 프로젝트의 가치를 높인다고 느꼈다.
4. 향후 개선 방향
- 데이터 확장
- 공공데이터 외에도 SNS 분석, 유동인구 API, 흡연 단속 기록 등 새로운 데이터를 결합.
- 시계열 분석 도입
- Prophet, LSTM, Transformer 기반 시계열 모델 적용.
- 모델 해석 강화
- SHAP, LIME 등을 활용해 정책적 인사이트를 제공할 수 있는 변수 기여도 분석.
📌 정리
이번 프로젝트는 제한된 데이터 환경에서 여러 모델을 실험하고, 시각화까지 구현한 경험이라는 점에서 의미가 있었다.
하지만 데이터 수와 변수 다양성의 한계로 인해 딥러닝의 장점을 충분히 살리지 못했고, 정책적 활용도를 높이기 위한 변수 확장과 모델 해석력이 향후 발전시킬 예정.
✅ 일주일 동안 한 일과 느낀 점
8주차는 한 주 내내 프로젝트 + NLP·추천시스템 실습이라는 두 가지 큰 축으로 흘러갔다.
전반부(8/4~8/6)는 두 번째 미니프로젝트 “2023년 시군구별 흡연율 예측”을 마무리하며, 데이터 분석-모델링-튜닝-대시보드 배포까지 실습형 프로젝트 전 과정을 경험했다.
후반부(8/7~8/8)는 형태소 분석, 토큰화, TF-IDF, 추천 시스템, 임베딩 등 NLP와 정보검색·추천 알고리즘의 기초부터 실전 응용까지 한 번에 배우며, 데이터 종류와 문제 유형에 따라 접근 방식이 어떻게 달라지는지 감을 잡을 수 있었다.
이번 주는 특히 머신러닝·딥러닝 회귀 예측과 NLP 기반 추천이라는 서로 다른 분야를 연속해서 경험하며, 기술 스펙트럼을 크게 확장한 시기였다.
✅ 주요 실습 내용 및 기술 회고
📌 1. 미니프로젝트: 2023년 시군구별 흡연율 예측 (8/4~8/6)
데이터 분석 & 전처리
- 2020~2023년 전국 207개 시·군·구 인구·경제·보건 지표 활용
- Pearson 상관계수 분석으로 흡연율 영향력이 큰 변수 Top 10 도출
- 결측치 처리(SimpleImputer), 스케일링(StandardScaler)
모델링 & 성능 비교
- 10종 회귀 모델(RandomForest, XGBoost, LightGBM, MLP 등) 성능 비교
- Optuna로 하이퍼파라미터 튜닝 → MAE, RMSE, R²로 성능 평가
- Deep MLP 모델에서 Epoch=1000 시점이 최고 R² 달성
시각화 & 서비스화
- Streamlit 대시보드로 연도별 흡연율·KT&G 매출 비교, 예측 오차 분석, 시군구별 실제 vs 예측 비교 제공
📌 2. NLP 기초 및 전처리 (8/7)
- 형태소 분석: KoNLPy(MeCab, Okt 등)로 형태소·품사 태깅
- 토큰화: 한글/영문 문장 토큰화, 불용어 제거, 워드클라우드 시각화
- Bag of Words / CountVectorizer: 텍스트를 희소행렬로 변환해 빈도 기반 벡터화
- TF-IDF: 단어 중요도 반영, 영화 시놉시스·키워드 데이터 벡터화
📌 3. 추천 시스템 구현 (8/8)
- 코사인 유사도 기반 콘텐츠 기반 필터링
- 영화 데이터(message (6).txt)의 장르·키워드·줄거리 기반 유사도 계산
- 입력 영화와 가장 유사한 영화 Top-N 추천
- 가중치 적용 추천: 여러 속성(장르, 줄거리, 키워드)에 가중치 부여 후 추천 결과 개선
- 임베딩 활용: Word2Vec / Embedding 레이어로 단어 간 의미적 유사도 반영
- N-gram & 문장생성: 2-gram 모델로 연속 단어 기반 문장 확률 예측 및 단어 시퀀스 생성 실습
✅ 아쉬웠던 점 & 개선 포인트
- 딥러닝 회귀 모델 학습 시 Epoch 증가에 따른 과적합 여부를 조기검증하지 못함
- NLP 실습에서 전처리·불용어 제거 규칙을 더 정교하게 설계할 필요성을 느낌
- 추천 시스템에서 Cold Start 문제(데이터 부족 사용자/아이템) 해결 방안까지는 다루지 못함
- 임베딩 실습 시 학습 데이터 크기·품질에 따른 성능 변화를 체계적으로 비교해보지 못함
✅ 마무리
이번 주는 한쪽에서는 정형 데이터 기반 회귀 예측 프로젝트, 다른 한쪽에서는 비정형 텍스트 기반 추천 시스템을 다루며, 데이터 유형과 문제 정의에 따라 알고리즘과 전처리 방식이 완전히 달라진다는 점을 실감했다.
또한, 모델 구현과 성능 평가뿐만 아니라 서비스화·시각화·해석 가능성까지 고려해야 한다는 점을 체득했다.
다음 단계에서는 프로젝트에서도 NLP·추천 모델을 결합한 형태의 응용 실험을 해보고, 배포 환경에서의 최적화까지 완성도 있게 구현해보고 싶다.
'SK네트웍스 Family AI캠프 16기' 카테고리의 다른 글
| [플레이데이터 SK네트웍스 Family AI캠프 16기] 10주차 회고 (3) | 2025.08.26 |
|---|---|
| [플레이데이터 SK네트웍스 Family AI캠프 16기] 9주차 회고 (2) | 2025.08.18 |
| [플레이데이터 SK네트웍스 Family AI캠프 16기] 7주차 회고 (2) | 2025.08.05 |
| [플레이데이터 SK네트웍스 Family AI캠프 16기] 6주차 회고 (2) | 2025.07.29 |
| [플레이데이터 SK네트웍스 Family AI캠프 16기] 5주차 회고 (2) | 2025.07.21 |