ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <TIL> 2024-02-20
    내일배움캠프(데이터 분석 부트캠프 1기)/TIL & WIL 2024. 2. 20. 22:35
    • 오늘 진행한 일 
      • 팀 프로젝트 회고
      • 팀 프로젝트 결과 Develop 고민
      • 스파르타 tableu 강의 수강

    어제자로 팀프로젝트 발표가 마무리되었고 발표에 대한 피드백을 받았다.

    어제는 일정이 있어 TIL을 작성하지 못했는데 오늘부터 다시 또 열심히 적어보려 한다. 

     

    발표한 내용에 대해서는 이번 주 내로 블로그 글을 작성해서 프로젝트 전 과정을 남길 것이다. 

     

     

    모델링 과정을 진행하는데 있어서 문제가 되었던 부분을 머신러닝모델(RandomForest)로 보간하여 성능을 평가하고

    이를 SHAP 라이브러리를 이용하여 변수 영향 및 중요도 시각화를 하는 방식으로 프로젝트가 진행되었다.

     

    이전 TIL에서 기술했듯이 여러가지 모델들을 실험해보면서 성능을 비교 평가하였고 나름대로의

    결론을 내려 발표를 하였다. 발표를 하고 다른 조들을 보면서 우리 조의 부족한 점들도 보였지만

    짧은 시간 내에 데이터를 심도 있게 다루려고 많은 노력을 했기에 부끄럽지는 않았다. 아쉬웠을 뿐


    우리 조가 튜터님께 받은 피드백은 아래와 같다.

     

    • 회귀분석 결과에 대한 평가지표로 RMSE보다는 MAPE를 중심으로 결과를 발표한 것 같은데 MAPE는 대상이 되는 값이 0이되는 경우 0으로 나눌 수 없다는 문제가 발생하기 때문에 잘 사용하지 않는 평가지표이다. 따라서 RMSE를 위주로 성능을 이야기해주었으면 좋았을 것 같다.
    • 모델성능이 평가지표로 봤을 때 좋지 않았기 때문에 결측치 보간이나 파생변수 생성으로 인해 모델이 의미가 있어졌다라는 식의 기술보다는 성능을 개선해보았다라는 식으로 풀었으면 좋았을 것 같다
    • 발표가 모델링 과정 및 결과에 초점이 맞춰져 있는데 모델링을 통해 얻어낸 결과를 활용할 수 있을 지에 대한 즉 결론에 대한 부분을 고민해보는 과정이 있었으면 좋았을 것 같다.

    그리고 동일하게 와인데이터를 분석했던 다른 조에서 받았던 피드백은 아래와 같다. 

     

    • Feature Engineering(FE)을 하는데 있어서 바텀업 방식(변수 단계에서 FE를 하는 것)도 괜찮지만 탑다운 방식으로 와인 가격에 영향을 주는 요인에 대해서 리서치를 해보고 그 결과를 바탕으로 FE를 하는 것도 좋다 고려해보면 좋을 것 같다. 
    • 변수선택을 통해 일반화 가능성을 올리는 것도 고려해보면 좋다 회귀모델이라면 foward, backward, stepwise selection 등의 방법이 있다.
    • 회귀분석이 효과가 그렇게 좋지 않았을 때 이를 분류 task로 선회하여 분류 logic의 알고리즘을 활용하는 것도 좋은 방법이 될 수 있다. 
    • Base 모델을 선정하고 모델에 대해서 개선하고 실험하는 과정들을 남기는 것이 좋다. 

    이번 팀프로젝트는 끝이 났지만 튜터님이 해주신 피드백과 개인적인 궁금증을 위해 

    팀프로젝트에 대해서 Develop하고자 했고 두 가시 시도를 하고자 했다

     

    1. 예측변수(Price)에 대한 로그 스케일링 및 이상치 정제가 모델 성능의 영향을 주는지 확인
    2. 데이터를 분류 task로 바꾸어서 분류 알고리즘 적용해보기

    우리 조에서 사용한 모델은 RandomForest와 XGBoost로 트리 기반 모델이기 때문에 이상치에는 상당히 강건한 모델이기는 하나 이 부분은 설명변수에 대한 부분이다.

    예측변수에 대한 스케일링이 어떠한 영향을 미치는지에 대해서는 사실 잘 알지 못하는 것 같다. 이론을 찾아보는 것도 방법이겠으나 우선은 모델을 생성해서 직접 결과를 본 뒤에 이론적인 부분들을 검색해보고 튜터님께 질문해보려고한다.

     

     

    위의 그래프는 price를 ml(용량)으로 나눈 데이터인데 상당히 Skew가 심한 데이터임을 알 수 있다. 대부분 저가에 몰려있고 소수의 고가와인들이 존재하는 것을 확인할 수 있는데

     

     

    price_per_ml 데이터에 대해서 로그 스케일링을 적용했더니 Skew가 많이 개선되어 정규분포 형태를 띄게 된 것을 확인할 수 있었다.

     이렇게 로그스케일링을 해야겠다고 생각한 이유는 위 그래프에서 볼 수 있다. 기존의 스케일링 전 price 데이터의 경우에는 데이터가 상당히 편포되어 있어 이상치(1155개)의 개수가 많았다.

     

    그런데 스케일링을 적용한 이후의 이상치는 182개로 상당히 많이 줄어든 것을 확인할 수 있었다. 무턱대고 이상치 1155개를 상하한 대체를 하는 것보다는 로그 변환을 한 뒤에 새로운 상하한으로 대체하는 것이 더 합리적이라는 생각이 들어서 이렇게 진행을 해보기로 했다. 물론 이론적인 근거가 빈약하므로 시도를 해보고 결과를 본 뒤 이 부분 또한 튜터님께 문의를 할 예정이다. 

     

    오늘은 태블로 강의를 수강하기도 했고 팀원들과의 회고 시간도 가졌었기 때문에 전처리 수준에서 마무리를 했고

    전처리 과정에 대한 모델 적용과 분류 알고리즘은 내일 시도해볼 예정이다.

    '내일배움캠프(데이터 분석 부트캠프 1기) > TIL & WIL' 카테고리의 다른 글

    <TIL> 2024-02-22  (0) 2024.02.22
    <TIL> 2024-02-21  (0) 2024.02.21
    <WIL> 2024년 2월 3주차 회고  (0) 2024.02.16
    <TIL> 2024-02-16  (0) 2024.02.16
    <TIL> 2024-02-15  (0) 2024.02.15
Designed by Tistory.