Week6 주간 회고

Jihoon·2022년 10월 31일
1

주간회고

목록 보기
2/9
post-thumbnail

10/24 ~ 10/31 Lv1 Project 대회가 시작되고 굉장히 바쁜 한 주를 보내서,,,, 10/31 월요일에 작성합니다,,, 너무나 바쁜 것

1. ✨1차 Data & Task 이해

  • 책, 유저, 평점 데이터에 대해서 어떤 컬럼들이 있고, 몇 개의 데이터가 있는지 파악했었다. 그리고, 대회 주제가 무엇인지 무엇을 위해 하는지 파악했었다. 유저들의 책 평점을 여러 컬럼들을 이용해서 어떻게 잘 예측하는 회귀 예측이였다!

2. ✨EDA 및 전처리

  • 솔직히 놀랬다...merge를 해야겠다 했는데 df 간의 merge가 모두 돼있고, 전처리를 좀 건드려줘야겠다 했는데 결측치 처리와 웬만한 data들의 필요한 전처리 작업이 돼있는 베이스라인 코드가 제시됐었다.

    이렇게 모두 제공해줬다는건 모델에 대해서 공부한 것을 통해라 코드화 시켜서 적용을 시키라는 것인가? 또는 Pytorch template에 대해 코드를 적용하고, 기능을 구현하면서 익숙해지라는 것인가? 라는 생각이 들었다.

  • 지금 현 시점에서 드는 생각은 위의 두 질문이 맞았고, 그리고 이보다 더 나아가 EDA 및 전처리를 추가적으로 진행해보는 것이였다.

  • 아마 베이스라인 코드는 첫 대회이기도 하고, 다들 이렇게 실습을 많이 해본 적이 없어서 제공해줬던 것 같다. 앞으로의 모든 프로젝트와 대회들에 있어서 이 베이스라인 코드가 확실히 도움이 많이될 것 같다.

3. ✨모델링 및 K-fold

4. ✨부스팅 공부


  • 우리 팀 팀원 중 한명이 catboost로 대회에서 1등의 성능을 찍어서 역시 정형(Tabular)데이터는 ML Model을 쓰는게 최고지 하는 생각에 트리 기반의 부스팅 알고리즘과 부스팅 모델에 대해서 빠삭하게 공부를 했었다.

  • 공부한 것을 바탕으로 팀원들과 의견도 나누고, 좋은 블로그들을 많이 공유했었다. 멘토님도 부스팅 공부했을 때 내가 추천해준 블로그가 굉장히 도움이 많이 됐었다고 했는데, 기분이 굉장히 좋았다! :) 혹시 볼 사람있으면,, 한 번 봐요 링크 남깁니다. (누르세유)

4-1. AdaBoost

  • 솔직히 나는 AdaBoost가 굉장히 어려웠다. depth가 1인 stump에 대해서 뭘 한다는데, 아니 그런데 샘플링에서 안뽑히면 더 예측이 별로인 데이터에 어떻게 가중치를 부여한다는 것인지 도대체 어떻게 여러 stump를 통해서 점점 weak-learner들이 모여서 강 분류기를 만드는 것인지 이해를 못했다.

  • 그러나, 위의 링크는 부스팅 관련이지만, 저 블로그 저자님(은인)이 날 살려줬다. 관련 글을 읽는 순간 모든 의문이 풀렸다.

  1. Gini 계수를 통해서 하나의 Level에서 여러 Stump들 중에서 가장 낮은 Stump를 forest의 첫 Stump라고 지정한다.

  2. 최종 분류값 구하는 과정

    a. sample_weight: stump의 기준에 있어서 틀리게 분류한 것을 기준으로 확률을 구함 -> 이 첫 stump의 sample_weight이 끝까지 지속됌 (새 stump마다 똑같이 갱신)

    b. 가중치의 값이 구해지는 과정은 생략하고, 그 값이 구해지면 그것이 샘플링할 때 쓰이는 것이다. 샘플링때 정규화된 가중치의 범위를 이용해서 가중치가 크다면 당연히 범위가 증가해서 잘못 예측한 놈이 더 많이 뽑힌다.(이 말인 즉슨 무엇인가?)

    c. 예측 잘 된 놈은 굳이 예측을 하지 않고(할 필요도 없고), 예측 안 된 놈들만 계속 선별해서 걸러내고 또 안 된놈들 뽑고 걸러내고 하는 것이다.

    d. 최종 분류기는 각각의 라벨이 0과 1일 때에 대해서 가중치 x Amount of say 에 대해서 값을 각각 나온 stump에 대해 다 더해준다.

    e. 두 값을 비교해서 더 큰 값의 범주로 분류한다!

  • 어디에 쓰이는 지, 언제쓰면 좋은지에 대해서 더 공부할 필요가 있다!

4-2. Gradient Boosting(GBM)

  • 추가적 공부 및 정리 필요
  1. XGBM

  2. LGBM

  3. CatBM -> 아래의 나의 정리글 모음집 참고!

5. ✨주간 회고

  1. 중간 중간 vlog 작성하면서 복습해주는 것이 정말 중요한 것 같다. 물론, 바빠서 그때 그때 바로 못하는 건 시간날 때 틈틈히 해야된다는 생각을 가지면 좋을 것 같다!

  2. 이번 주에 팀원에게 발표할 관련 보고서 및 관련 자료 정리글을 많이 작성했는데, 반응도 좋았고 나름의 성장도 많이할 수 있어서 너무 기뻤다.

  3. 이번 주에 나의 학습은 굉장히 만족스러울 정도로 양도 대단했지만, 질 적으로도 상당히 좋았다. 모르는 부분을 설명할 수 있을 정도로 공부하는 것이 제일 중요한 것 같다. 공부는 설명이다!

  4. 조금 힘들 때도 있었지만, 항상 옆에 여자친구와 얘기하고, 밥도 먹고, 같이 지내면서 힘이 많이 되주는 것 같다. 블로그를 시작했다고 하니까 가장 먼저 봐준 것도 정민이인데, 이 글도 보고있겠지..?
    여튼 고맙고, 굉장히 사랑한다! 300일도 축하해! 나도!

🙌내가 정리한 글들 모음집🙌

  1. kfold template에 구현
    https://velog.io/@jjjjj/kfoldtrain-%ED%95%A8%EC%88%98-%EC%BD%94%EB%93%9C-%EA%B5%AC%ED%98%84

  2. Tuning 및 stf-CV 이후 Catboost 약0.02 성능 향상(2.154 → 2.135) <대회 1등 성적!!>
    https://wiry-brake-dc4.notion.site/Tuning-stf-CV-Catboost-0-02-2-154-2-135-ae4c013534aa4a4bbe4f32941ffad838

  3. wandb template에 적용할 수 있도록 구현

profile
장난감이 데이터인 사람

2개의 댓글

comment-user-thumbnail
2022년 11월 5일

지훈님 글 잘보고 갑니다!! 그리고 1등 축하드려용 ㅎㅎ

1개의 답글