결정에 어려움을 겪는 고객들을 위해 추천 서비스를 제공하는 웹 애플리케이션입니다.
메뉴 추천: 메뉴 카테고리와 메뉴 정보가 CSV 파일로 저장되어 있으며, 사용자가 카테고리를 선택하면 해당 카테고리의 메뉴를 랜덤으로 추천합니다.
위치 기반 음식점 추천: 추천된 메뉴와 사용자의 현재 위치(위도, 경도)를 활용하여, 카카오맵 API를 통해 주소를 추출하고, 키워드 검색 기능으로 주변 음식점을 추천합니다.
음식점 리스트 확인 및 관리: 추천된 음식점 목록을 확인할 수 있으며, 마음에 드는 음식점에 좋아요를 누르면 해당 정보가 DB에 저장됩니다. 이를 통해 사용자는 다른 음식점도 계속해서 추천받을 수 있습니다.
카테고리 설정: 성별, 의류 카테고리, 세부 카테고리를 29CM 쇼핑몰의 XPath와 CSS Selector 정보와 함께 CSV 파일에 정리되어 있습니다.
실시간 상품 추천: 사용자가 카테고리를 순차적으로 선택하면, 해당 세부 카테고리의 상품을 29CM 쇼핑몰에서 실시간으로 크롤링하여 인기 상품 중 하나를 랜덤으로 추천합니다.
상품 정보 제공 및 구매 연동: 추천된 상품의 이름, 제조사, 가격 정보를 제공하며, 버튼 클릭 시 해당 쇼핑몰 페이지로 이동해 바로 구매할 수 있습니다. 다른 제품도 추천 받을 수 있으며, 마음에 드는 상품은 좋아요를 눌러 DB에 저장할 수 있습니다.
오이마켓은 당근마켓을 벤치마킹 하여 중고 거래 서비스를 제공하는 웹 애플리케이션입니다.
은행 이탈 고객 예측을 위한 머신러닝 프로젝트입니다.
Logistic Regression 모델 담당: 전체 컬럼을 사용하여 Logistic Regression 모델을 학습했고, 0.89의 정확도를 확인했습니다.
하이퍼파라미터 튜닝: penalty(l1, l2)
와 C(0.01, 0.1, 1)
을 사용하여 모델 성능을 최적화했습니다.
RFECV를 활용한 변수 선택: RFECV(Recursive Feature Elimination with Cross Validation)를 사용해 2차 변수로 고객의 총 거래 횟수, 리볼빙 잔액, 가입된 상품의 갯수, 고객의 총 거래량, 비활성 기간을 선정하고, 히트맵과 박스플롯을 통해 변수의 상관관계를 시각화했습니다.
모델 평가 및 선택: 설정한 컬럼으로 여러 모델을 평가한 결과, XGBoost 모델이 Accuracy, Precision, Recall 등 주요 지표에서 가장 우수한 성능을 보여 최종 모델로 선택했습니다.
SMOTE 오버샘플링 담당: 소수 클래스의 샘플을 증식하는 SMOTE(Synthetic Minority Over-sampling Technique)를 적용해 오버샘플링을 진행했습니다.
SMOTE를 적용한 모델이 다른 오버샘플링 기법보다 성능이 높아 최종 모델로 확정했습니다.