데이터 부트캠프 - Today I Learned

[내일배움캠프 / 데이터 분석 트랙] 25.03.14_강화학습 개선을 위한 고민

onion95 2025. 3. 14. 22:00

[주절주절 회고]

코딩테스트 방식은 바뀌어야 한다!ㅠㅠㅠㅠㅠㅠㅠ

오늘 갑자기 QCC를 봐서 하는 얘긴 아니고(흠흠), 강화학습 코드를 짜고 실행에 성공했지만, 다시 논리적 프로세스 검토부터 하고있는 내 모습을 보니 문득 든 생각이다.

난 여전히 코딩같은거 잘 모른다. 코드를 백지에서부터 알아서 짜는 사람이 절대 아니다. 그렇지만 이번에 강화학습 코드는 제로부터 시작해서 GPT와 열심히 토론하며 만들어냈다. (GPT가 만들어 줬단 뜻임~)

결국 개발자를 검증하기 위해서는 알고리즘을 짜는 테스트를 할게 아니라 코드를 읽고 해석하는 문해력과 그 안의 논리적 구조를 개선하는 아이디어를 내는 테스트가 필요한 거 아닌가 싶다. (채용 지원 할 때 코테 보기 싫단 뜻임ㅋ 차라리 코드를 해석하라고 해라~!) 

 

 

[오늘의 강화학습]

온도 변수에 대한 고민 끝, 강수/적설량 고민 시작!

결국 우리가 하고 있는 이 프로젝트는 비즈니스 성과 개선을 위한 것이기 때문에, 기업에서 실제 서비스되는 경우의 확장성을 생각해야만 한다. 그래서 나는 향후 몇달간의 예상 온도를 어떻게 알수 있는지 의문이었다. 오프라인 브랜드 데이터라는 특성상 꼭 고려할 수 밖에 없는 변수이기 때문이다. 그 고민을 팀원들에게 공유했더니 마침 미래 온도를 예측하는 시계열 모델을 학습하는 수업을 들으셨다고....! 성능도 나쁘지 않았다고....! 역시 팀플은 공유를 해야한다. 집단지성(?) 나이쓰. 또한 날씨 예측에 관한 데이터는 API를 제공하는 사기업도 많고, 실제로 기업들이 많이 이용한다고 한다.

 

온도를 상태 변수로 넣는 고민은 해결되었다.

 

안 끝났다.

 

다음은 강수/적설량이다.

 

오프라인 커머스가 온라인 커머스와 가장 다른 부분은 날씨의 영향력이 크다는 것이다. 사람들이 직접 매장으로 가서 제품을 구매하는 만큼 밖을 다닐만한 환경인지가 중요하다. 너무 더워도, 너무 추워도, 비가 너무 많이 와도, 눈이 너무 많이 와도 안된다는 것. (아 이래서 이커머스가 답이구나?ㅎ)그래서 온도까지는 고려를 했고, 이제는 강수/적설량을 고려할 방법을 찾아야한다. 앞서 사기업의 날씨 예측 API를 많이 이용하는 추세라는 것도 알게 되었고, 확장성 면에서의 걱정은 사라졌다. 처음에는 당연히 그냥 강수량 수치 때려 넣지 뭐! 라고 생각했지만, 생각해보니 또 막상 그게 좋은 방법은 아닌 듯 했다. 우리 데이터가 주차별 판매 데이터라는 특이점 때문이다. 일주일 동안 하루만 비가 많이 온 주와, 4일간 비가 온 주의 평균 강수량이 비슷한 수준인 경우, 평균 강수량이 비슷하더라도 제품이 잘 팔리는 맑은 날이 더 많았던 주가 매출이 더 높게 나타나는 문제가 있지 않을까?

좀 더 합리적인 방법이 없을까 또 고민이 시작되었다. 그런데 마침 팀원도 나와 같은 고민을 하고 있었다. 혼자 고민도 좋지만 의견이 오고가면서 발전하는 경우도 많다.결론적으로, 단순히 강수 여부로 구분 하는 것은 너무 약하고, 좀 더 연속적인 수치로서 시계열 학습에 더 나은 영향을 줄 수 있는 방법을 골랐다. 주차별 비나 눈이 많이(밖을 다니기 짜증나는 특정 기준을 정했다) 온 일 수를 적용해보기로 했다. range는 최대화하고, 강수량 평균으로 희석되는 정보는 최소화하는, 우리가 생각한 최선의 방법이었다...ㅠ

 

이제 다음 단계는 강수 일 수를 적용한 회귀 예측 모델을 다시 학습해보는 것이다. 제발... 성능이... 좋아지기를...!