척척 학사
[KT에이블스쿨] 미니프로젝트 4,5차 리뷰 본문
안녕하세요. "나는야맹구" 입니다~
오늘은 미니프로젝트 5차 리뷰를 가져왔습니다~
미니프로젝트 4차는 AICE ASSO 실습을 진행해서.. 건너뛰겠습니다. ㅎㅎ^
- 1일차
- 시계열 데이터를 가지고 데이터 분석을 진행해보았습니다.
- 첫째날은 제공받은 데이터를 기반으로 EDA를 진행했어요
- 목표 - 재고를 최적화 하는 것
- 팀원 6명 중 2명씩 짝을 지어 각자 상품을 맡아 EDA를 진행했습니다.
- 데이터 탐색
- 결측치 확인
- 중요 범줏값 비율 확인
- 상품 별 월별 판매량(2014~2016년)
- 2016년, 1년 간 상품 월별 판매량
- 월별 방문 고객수(2014~2016년)확인
- 1년간(2016년) 월별 고객 방문수 확인
- 시계열 패턴 찾아보기
- 상품별 판매량 추이 -> 선그래프 시각화
- 대상 상품과 같은 카테고리의 상품별 판매량 추이 -> 선그래프 시각화
- 휘발유 가격과 상품 판매량 추이 비교 -> 선그래프 시각화
- 휘발유 가격이랑 유통이랑 뭔 상관?인가 싶었는데, 제공받은 데이터가 미국 유통 데이터 & 미국은 마트까지 가려면 차를 끌고 가야함. 따라서 휘발유 가격의 영향을 받지 않을까? 라는 추측을 기반으로 EDA를 진행함
- 14일 동안 휘발유 가격 평균과 상품 판매량 추이 비교
- 방문 고객수와 상품 판매량 추이 비
- 상품 별 판매량 변화량 살펴보기
- df['변수'].diff() 형태로 변수에 대한 변화량 확인
- 요일별 변화량 비교
- 시계열 데이터 분해
- 2일차
- 12번 상품 milk를 중심으로 데이터 전처리를 진행했고, 데이터 전처리 파이프라인을 구성했습니다.
- x,y 데이터 분리
- 참고로 y는 '예측해야 하는 판매량'
- Monday, Tuesday와 같은 요일과 1,2,3 과 같은 월을 카테고리형 변수로 변경
- 가변수화를 진행
- 학습용 데이터와 검증용 데이터로 분리
- LinearRegression()을 진행했고 예측 및 성능 평가를 진행
- 측정 결과, R2_score는 0.28이 나옴
- 모델 성능 높이자!
- 기존 데이터에서 추가로 변수 구성
- 동일 카테고리 판매량 합계
- 동일 지역 방문객 수
- 1일 전 판매량
- 최근 7일간 판매량 평균 등..
- 위와 같은 전처리를 진행해주고, 모델 성능을 다시 확인 -> R2_score: 0.41
- 기존 데이터에서 추가로 변수 구성
- 모델 변경
- RandomForest - > R2_score: 0.705
- LightGBM 모델 -> R2_score: 0.705
- 전처리한 데이터셋은 파일 저장을 해주고 다음날에 사용
- 3일차
- 어제 저장한 전처리 한 데이터 불러오기
- 3,12,42번 상품 별 모델링 진행
- RandomForest, LightGBM 알고리즘 사용
- 하이퍼파리미터 튜닝
- GridSearchCV
- 파마미터 튜닝하는데 시간이 꽤 걸려서 각 조원끼리 맡은 상품만 모델링 진행하기로 했답니다..
- 하다가 너무 시간이 오래 걸리면, 비교적 시간이 적게 걸리는 팀원 코드를 참고해가며 진행했어요
- GridSearchCV
- 앞서 진행한 전처리~모델링까지의 과정을 데이터 파이프라인으로 구축
- 머신러닝 모델에 전달할 수 있는 x_train, x_val과 동일한 형태의 데이터 만들기
- 결측치 처리, 가변수화, 변수 제거, 변수 추가 등 일괄 처리
- 출력: 전처리 완료된 데이터 프레임
- 이후, test 데이터를 불러와서 구축한 파이프라인의 input으로 넣기
- output으로 나온 데이터에 대해 예측하고 성능을 평가했습니다
- 그리고 재고금액을 평가하는 비즈니스 관점의 평가를 수행했습니다.
- 4일차
- Yolov8 모델 학습
- yaml 작성 등 진행
- 5일차
- 6일차
- 2일차에서 만든 모델에
- 조원 얼굴 이미지 수집 및 라벨링 진행
- yaml 새로 생성
- 조원들 얼굴 class 등 수정필요
- 수정 코드
- from ultralytics import settings
- settings
- datasets_dir에서 경로 수정해줘야함
- '/content/'로 수정
- datasets_dir에서 경로 수정해줘야함
- yaml 파일
-
-
data = dict(train='./Face_Recognition/train/images',val='./Face_Recognition/valid/images',nc=13,names=['Barack Obama', 'Che Guevara', 'Cristiano Ronaldo', 'David Beckham','Donald Trump', 'Elon Musk', 'Joe Biden', 'Lionel Messi','Mark Zuckerberg', 'Oprah Winfrey', 'Steve Harvey', 'Steve Jobs','Zaha Hadid'])
with open('./Face_Recognition/data.yaml', 'w') as f:yaml.dump(data, f)
- train = /content/Face_Recognition/train/images
- val = /content/Face_Recognition/valid/images
-
- model = YOLO('/content/yolov8n.pt' task='detect')
- model.train(model = '/content/yolov8.pt',
data = 'content/Face_Recognition/data.yaml') 파일 경로 이렇게 수정해줘야함. - 학습시키는데 시간이 너무 오래걸렸음
- 저는 1시간.. 넘게 돌리다가 gpu다 써서 cpu로 변경 했으나 오류 발생
- 그래서 타 팀원 분이 돌린 best.pt로 앞으로 활용할 예정.
- settings
'[5기] KT에이블스쿨 > [5기] 프로젝트 후기' 카테고리의 다른 글
[KT에이블스쿨] 시행착오 기록, 5차 미니프로젝트의 연장선, Object Tracking, Yolov8, 웹서비스 구현 (4) | 2024.04.30 |
---|---|
[KT에이블스쿨] 미니프로젝트 3차 리뷰 (4) | 2024.04.12 |
[KT에이블스쿨] 미니프로젝트 2차 리뷰 (2) | 2024.03.25 |
[KT에이블스쿨] 미니프로젝트 1차 리뷰 (0) | 2024.03.18 |