1차 과제 📝
3주차가 되자 그동안 배운 내용을 응용한 예측 모델을 만드는 과제가 등장하였다.
과제를 수행하는 조건은 아래와 같았다
위의 기준에 따라 MSE 기준으로 점수를 부여하는데 8.2x를 기점으로 점수가 갈리는 것을 보아하니 용을 써야 8.2 초반대로 들어올 것이라는 것을 직감할 수 있었다.
처음엔 강의를 토대로 예시 코드들과 HW1&HW2을 응용해 데이터셋에 약간의 전처리와 파라미터 조절만 하면 금방하겠네~ 라고 생각했다.
하지만 웬걸, 강의를 나름 열심히 필기해가며 들었지만... SO WHAT..? 적용을 못하겠는 것이다. 게다가 예시 코드들을 그냥 복붙/짜깁기하면 될 것 같았지만 손에 익지 않은 초보 분석가로써는 막상 과제 파일을 열어보니 손이 나가지 않았다.
그저 막막하고 어디서부터 풀어나가야할지 잘 모르겠었다. 그래서 2강과 3강 tree 알고리즘과 unsupervised learning을 계속 반복해서 학습했다. 그런데 뭔가 강의와 실습 과제 적용과는 다른 세상 이야기 같았다.
그래서 이번에는 실습 파일을 계~~속 돌려보았다. 실습 강의와 HW1, HW2 답안을 계속 보고 비교하고 바꿔보고 돌려보고 며칠을 이 작업만 반복했다. 눈과 손에 익을 때까지.
이런 골방 같은 카페에 스스로를 가두고 코드를 돌려댔다.
그러자 어느 순간 방향성이 조금은 보였다.
나는 이렇게 풀었다.
1.필요한 컬럼만 남긴 후 데이터 Normalization
2-1.test1/train1 set을 과제 조건에 맞추어 나누기. (1그룹)
2-2. 2-1에서 사용하지 않았던 컬럼(category feature)을 추가하여 ordinal encoding. ordinal encoding된 컬럼을 제외하고는 normalization.
test2/train2을 과제 조건에 맞추어 나누기.(2그룹)
3. sklearn의 GridSearchCV를 이용하여 주어진 모든 조합의 hyperparameter들에 대해서 train, validation을 진행해서 최적의 hyperparameter 찾기. (1그룹, 2그룹 모두에 대해서)
4-1. 디폴트값으로 GradientBoostingRegressor 진행
4-2. GridSearchCV에서 도출한 파라미터로 변경 후 GradientBoostingRegressor 진행
5-1. 디폴트값으로 RandomForestRegressor 사용
5-2. GridSearchCV에서 도출한 파라미터로 변경 후 RandomForestRegressor 진행
6-1. HistGradientBoostingClassifier (input feature로 category feature도 사용 가능)진행
6-2. GridSearchCV에서 도출한 파라미터로 변경 후 HistGradientBoostingClassifier 진행
나의 경우 데이터셋을 1그룹, 2그룹으로 나누었기 때문에 해당 그룹별로 4~6번을 진행해야했다. 나눈 이유는 category feature 컬럼이 input feature로 사용될 때와 안될 때의 성능 차이가 궁금했기 때문이다.
그 결과?
분명 8.2x 와 근접한 점수가 나와야 정상 범주 내에서 풀고 있구나라고 생각할텐데, 나의 점수는 ...0.5070? 게다가 더 낮게 나온 케이스도 있었다.
출제자의 의도를 잘 파악하는 대한민국 수능 세대라면 뭔가 잘못되었다는 것을 바로 직감할 수 있다. 0.8보다 한참 낮은 0.5를 내가 잘해서 냈을리가 없다. 어딘가 잘못되었다는 뜻인데 ... 결국 과제 제출 시간까지 원인을 파악하지 못했다. 몇 점을 받을 수 있을지 궁금하다.
원인 분석은 나의 셀프 과제가 될 예정이다.
대체 나는 왜 0.5 대의 점수가 나왔는가에 대한 의문을 해소해보는 것이 목표이다.
피어리뷰를 통해 팀원들과 원인 분석에 성공하면 더욱 좋을 것 같다
노트북하기 좋은 동네 카페들을 하나씩 알아가는 것은 보너스이다.
비록 결과는 좋았다고 할 수 없었으나, 과정을 즐기자!는 나의 마인드셋을 다시 떠올려본다. 주말 내내 연남동/연희동 카페 탐방을 할 수 있었다는 점은 좋았다.
☀️ 행복한 분석가가 되어보자! ☀️
5.0을 0.5로 잘못 말씀하신건가 했는데 진짜로 스코어가 0.5네요? 어떤 모델이 만들어진 건지 궁금하네요