LearnRun

[KT AIVLE 3기] 6주차 후기 (1) - 2차 미니프로젝트 (팀 경합) 본문

KT AIVLE 3기/Weekly Report

[KT AIVLE 3기] 6주차 후기 (1) - 2차 미니프로젝트 (팀 경합)

PROMPT_ 2023. 3. 11. 08:54

◈  Contents

     

    본 게시글은 AIVLE 기자단 활동의 일환으로 작성되었습니다.

     

     

    미니 프로젝트 (2차)

    다시금 왔습니다. 미니 프로젝트.

     

    이전 미니 프로젝트와 달리, 점수를 반영하는 본격적인 경합이 이뤄집니다.

    반영되는만큼, 최선의 결과를 위해 더욱 열심히 해야겠습니다!

     

    kaggle을 통해 주어진 미션을 바탕으로,

    팀을 이뤄 높은 점수를 얻는 것을 목표로 열심히 달립니다.

     

    캐글(kaggle)이란?

    - 데이터 분석이나 머신 러닝 등의 기술을 활용하여 주어진 문제를 해결하는 경진대회를 제공
    - 캐글에서 참가자는 데이터를 분석하고, 모델을 학습시켜 최종적으로 가장 높은 정확도를 보이는 모델을 제출

     

    Kaggle Competition : 악성 사이트 탐지 모델링

    과제

     - URL에 대한 정보와, html 내 구성된 태그의 분포를 통해 악성 사이트를 검출할 수 있습니다.

     - 평가 기준은 micro F1 score로, 클래스별 F1 score의 가중평균을 계산, 1에 가까울 수록 성능이 좋음을 의미합니다.

     

    나의 결과

    데이터 전처리 (학습 데이터)

    - 상관관계를 분석하여, 타겟과의 연관을 지닌 컬럼만을 남겼습니다. 즉슨, 상관관계가 지나치게 낮은 불필요한 변수를 제거하였습니다.

    - 상관관계가 높은 변수가 모델링에 사용될 경우, 다중공선성 문제가 발생할 수 있으나 본 문제에서 그러한 이슈는 확인되지 않았습니다.

     

    학습 데이터의 경우엔 상기 방식과 같이 전처리를 진행하고, 결측치의 경우 그 수가 적어 충분히 무시할 만 했습니다.

     

    단, 목표 데이터는 결측치가 많아 다른 방식을 써야 했습니다.

     

    데이터 전처리 (목표 데이터)

    - 결측치가 URL 정보, 태그 분포 정보에 광범위하게 퍼져 있었습니다.

    - 저는 여기서 도메인 지식을 활용, 해결 가능한 부분을 우선 처리한 뒤 남은 값들은 중간값으로 모두 덮었습니다.

     

    모델링(+하이퍼파라미터 튜닝, 앙상블)

    전처리 데이터를 바탕으로, 저는 랜덤 포레스트와 그래디언트 부스팅의 앙상블을 고려했습니다.

    사실 여기서 큰 실수를 한 건, 배운걸 다 써보자는 명목 아래 큰 고민 없이 모델을 선정했다는 것이었습니다.

     

    90점을 한번 넘긴 이후, 하이퍼파라미터 튜닝을 추가로 진행하여 최종 스코어를 92.5점까지 올렸습니다.

     

    팀의 결과

    데이터 전처리 (목표 데이터)

    Knn Inputer를 활용해 데이터 결측치를 제거하셨습니다.

    우선적으로 제거 가능한 결측치를 최대한 처리한 후, 해당 머신러닝 기술을 활용해 결측치를 처리했습니다.

     

    모델링(+하이퍼파라미터 튜닝)

    저와 달리, 앙상블 등의 튜닝 접근이 아닌 모델의 선정에 좀 더 무게를 두셨습니다.

    개선된 전처리와, 랜덤 포레스트 단일 모델로 93점을 기록하신 이후, 추가 개선이 가능하다 여겨졌습니다.

    (그래서 저는 바로 남은 기회를 몰아드리고 PPT로 붙었습니다. 시간이 촉박했어요.)

     

    이후 XGBoost 등의 모델 선정을 통해 최종점수 94점 이상을 기록, 상위 30% 내에 들었습니다.

     

     

    다른 팀의 방식

    1. Auto ML을 통한 기계학습 모델링 프로세스의 자동화

    2. KNN Inputer를 통한 결측치의 처리

    3. Pycaret을 통한 기계학습 모델링 프로세스의 자동화 및 다양한 모델의 테스트

    4. Catboost 모델을 통한 결과 개선

    5. Multiple Imputation 알고리즘을 통한 결측치 처리

     

     

    마치며...

    상위 30% 안엔 어찌어찌 들었지만, 정말 살떨리고 피튀기고 땀흐르는 시간의 연속이었습니다.

     

    제가 얼마나 부족한지 뼈저리게 깨달았고..

    또 캐글 등의 경험 유무의 차이가 생각보다 크다는 것을 알았습니다.

    처음에 갈팡질팡하다가 혼났어요.

     

    또한, 모델의 성능, 튜닝보다는 데이터의 전처리가 결과에 더욱 결정적으로 작용한다는 것도 중요했습니다.

     

    저는 뗀석기로 접어든 마당에, 다른 몇몇 팀들은 이미 냉병기를 만들고 있었다는 것도.. 나름의 충격이었습니다.

    공부의 필요성이 더욱 절실하게 와닿는 순간이었어요.

     

    다음엔 더욱 열심히 해서,

    스스로 만족할만한 결과를 만들어 보겠습니다.

    ‌ ‌ ‌
    Comments