앙상블 기법을 활용한 안개 발생 예측 모델링
분석 배경 및 목적
- 안개로 인한 교통 시스템 제한 및 불필요한 사회적 비용 문제 인식
- 안개 발생 시의 기상 요인 식별 및 머신러닝 기반 안개 예측 모델 개발
작업 관리
- 작업 시작 전 Jira 티켓 생성 후, GitHub 커밋
- 칸반 보드 기반의 워크플로우 및 일정 관리
- 티켓과 동명의 GitHub 브랜치를 생성하여, 커밋 및 Pull Request 리뷰 진행
- Jira와 GitHub 연동에 기반한 과업에 대한 결과물 버전 단위 관리
- Google SpreadSheet에 모델 성능 및 사용 변수 기록 공유, Discord를 통한 실시간 커뮤니케이션
- 커밋 컨벤션 통일에 기반한 작업 및 식별 효율화
- 오프라인 정기 미팅 진행을 통한 작업 목표 및 방향성 공유, Notion 및 Jira에 미팅 내용 기록 및 작업물 아카이빙
분석 내용
1. EDA
- 월별, 지역별 안개 발생 동향의 차이를 식별
- 관측 오류, 기상 이변 등에 의한 이상치 및 결측치를 탐지
2. Feature Engineering
- 관측소 변수를 지역 특성에 따라 그룹핑하는 방법 고안
- ±3 std를 기준으로 월별, 지역별 이상치 Capping 처리
- 결측치를 월별, 지역별 평균값으로 대체
- 파생 변수 생성
- 이슬점 산출, 이슬점 도달 여부, 습수
- 기온-지면 온도 차
3. Modeling
머신러닝 모델링 플로우 차트

- 이진 분류 모델과 다중 분류 모델을 혼합한 Ensemble 모델 개발
- 각 지역에 대해
Random Forest Classifier 모델 생성
- 선행 모델은 안개 발생 여부를 예측하는 이진 분류 수행
- 이후, 안개의 시정 계급을 예측하는 다중 분류 수행
- 하이퍼파라미터 튜닝
max_depth, max_features 조정하여 과적합 방지
- 평가 지표: CSI Index
- 최종 Validation CSI Index : 0.317
강남구 모범 음식점 고객 만족도 분석
분석 배경 및 목적
- 모범 음식점의 의의: 식품 접객업소의 위생 및 서비스 개선을 통한 외식 문화를 활성화
- 강남구를 찾는 관광객이 음식점을 고려하는 중요한 요소
- 그러나 강남구의 모범 음식점 제도에 대한 낮은 인지도와 제도의 효용성에 의문
- 강남구의 모범 음식점 지정 현황은, 관광객의 니즈를 만족하고 긍정적인 외식 경험을 제공하는가?
분석 내용
Feature Engineering
Open API 활용 데이터 호출
- 강남구 제공 데이터와 카카오맵 크롤링 데이터의 데이터 불일치 문제 발생
- 상호명, 도로명주소뿐만 아니라 업종, 식당 키워드 등을 추가 매핑하여 문제 해결
- 데이터 클렌징 작업 수행
- 리뷰 작성자의 개인 성향에 의한 평점 편향성 제거
- 다양한 개인별 성향 (e.g. 적은 평점, 후하거나 엄격한 성향 등)으로 인한 평점 왜곡 감소 및 일반화 목적
- 10개 이상 작성한 사람의 리뷰로 제한
- 식당별 리뷰 평점을 작성자별 평균 평점으로 나눗셈
- 식당별 리뷰 개수가 분석에 유의미한 수준으로 구성된 데이터만을 활용
EDA
- 강남구 모범 음식점 현황 (업종, 지역 등) 시각화
- 모범 음식점 vs 일반 음식점 평균 평점 차이에 따른 집단별 차이 식별
가설 검정
- 카카오맵 리뷰 없이 별점만 매긴 사람과 리뷰를 적은 사람의 평균 평점 차이가 있을까?
- 중위값보다 리뷰를 적게 쓰는 집단과 많이 쓰는 집단의 평균 평점 차이가 있을까?
- 강남구 모범 음식점과 일반 음식점의 평균 평점에는 유의미한 차이가 존재할까?
- 강남구 평점 상위권 모범 음식점과 평점 상위권 일반 음식점의 평균 평점이 유의미한 차이를 갖고 있을까?
- 상위권과 하위권 모범 음식점의 평균 평점이 일반 음식점보다 유의미하게 낮다면, 해당 식당은 모범 음식점으로의 자격이 없다고 볼 수 있지 않을까?
결과 도출 및 활용 방안
- 강남구 모범 음식점이 일반음식점에 비해 뚜렷한 고객 만족을 창출해내지 못함
- 특히, 평점 상위권 식당들을 비교했을 때 모범 음식점의 고객 만족도가 일반 음식점보다 다소 뒤떨어지는 점 확인
- 강남구의 식품진흥기금, 골목 상권 형성 제도 등과 연계하여 모범음식점 제도 개선 필요 제기
- 궁극적으로, 신뢰도 높은 새로운 미식 기준으로서 강남구 모범 음식점 제도 재확립
23-24시즌 축구 선수 몸값 예측 모델링 (개선 예정)
- Transfermarkt 웹사이트에서 스크레이핑 한 축구 스탯 데이터 Kaggle Data URL
Python, Machine Learning, EDA
분석 배경 및 목적
- 스포츠에서 통계 및 예측 모델의 중요성 증가
- 다양한 스포츠 통계 회사에서 정교한 예측 모형 제공 (ex. opta)
- 선수의 통계 자료를 바탕으로, 해당 시즌 예상되는 몸값을 예측하는 모델 만드는 것이 목표
- 데이터베이스 스키마

분석 내용
가설 설정
- 선수의 몸값에 영향을 가장 많이 주는 것은 공격 포인트 (골 + 어시스트)일 것이다
- 나이와 포지션에 따라, 비슷한 스탯이라도 선수의 몸값은 다를 것이다
- 전체 선수들의 분포에 비해, 고가의 선수들 (100M 유로 이상)의 몸값 분포는 다를 것이다
분석 방법
- Data Collection
- Kaggle 데이터셋 다운로드 (대용량) → 별도 저장 후 전처리 → data 폴더에 저장
- Data Preprocessing & EDA
appearances competitions players player_valuations_df 데이터셋 사용
→ group by 이후 merge 하여 새로운 데이터프레임 생성
- 원본 데이터셋과 동일한 출처에서 가져온 다른 데이터셋 발견하여,
merge 후 결측치 최대한 처리
- 다중 공선성 확인 후 상관관계 높은 컬럼 제거
- age, position, market_value, goals, assists 컬럼 시각화
- Modeling
- 19-20 시즌 부터 22-23 시즌까지의 데이터를 학습하여, 23-24 시즌 (37R 현재 진행중) 몸값을 예측하는 모델 생성
- 범주형 변수 처리를 위해
Target Encoding 사용
- Target인 몸값에 이상치가 많기 때문에,
RMSLE를 우선적인 모델 평가 지표로 사용
- 다양한 회귀 모델들을 비교하여, 하이퍼 파라미터 튜닝을 거친 후
XGBoost, CatBoost로 최적화
XGBoost 기반 모델
RMSLE : 0.63, R2 Score : 0.78
CatBoost 기반 모델
RMSLE : 0.64, R2 Score : 0.82
- 예시: Transfermarkt 웹사이트의 23-24 시즌 손흥민 몸값 : 50,000,000 유로
XGBoost 기반 예측 몸값 : 58,188,860 유로
CatBoost 기반 예측 몸값 : 42,578,859 유로
개선 방안
- 향후 개선 계획
- 경기중에 선수가 기록하는 세부적인 스탯을 제공하는 웹사이트를 크롤링하여, 다양한 스탯들을 반영하는 모델 생성
- Feature Engineering, 하이퍼파라미터 튜닝 등을 통해 예측 모델 최적화
RMSLE와 R2 Score 중 우선 순위 명확하게 수립
- 원본 Kaggle 데이터 페이지 에서 제공하는 Github 페이지
scraper 사용법을 숙지하여, 최신 버전의 데이터 다운로드 과정 자동화
- 다운받은 데이터를
BigQuery에 적재하여, SQL 기반의 데이터 분석 및 대시보드 생성