Tacademy 강의를 듣고 내용을 정리
캐글 (Kaggle)
캐글은 데이터 과학자와 머신러닝 엔지니어들이 모여 다양한 문제를 해결하는 온라인 커뮤니티 플랫폼. 사용자들이 서로 경쟁하면서 실력을 향상시키고, 지식을 공유하며 성장할 수 있는 환경을 제공.
- Dataset & Prizes: 캐글은 전 세계 다양한 분야의 데이터셋을 제공. 기업이나 기관들이 주최하는 대회에 참여해 문제를 해결하면 상금을 받을 수 있음.
- Virtual Environment (Kernel): 코딩을 위한 가상 환경인 캐글 커널을 제공해 별도의 개발 환경 구축 없이도 바로 분석을 시작할 수 있음. 또한 다른 사람들이 작성한 코드를 보고 배울 수 있어 학습에 매우 효과적.
- Community: 활발한 토론 게시판과 노트북 공유 기능을 통해 다른 참가자들과 아이디어를 나누고, 서로의 코드를 참고하며 배우는 문화가 잘 형성.
캐글 컴피티션 진행 과정
캐글 대회는 주로 아래와 같은 단계로 진행.
1. 데이터 확인 (Data check)
대회에서 제공하는 데이터를 탐색하고 이해하는 단계. 이 과정에서 결측치, 이상치(outlier) 등을 확인하고, 데이터의 분포와 특성을 파악. 이상치 탐지는 모델의 성능에 큰 영향을 미칠 수 있으므로 매우 중요.
2. 특징 공학 (Feature Engineering)
모델의 성능을 높이기 위해 기존 데이터에서 새로운 특징(feature)을 만드는 과정.
- 덧셈, 뺄셈 등 연산을 통한 특징 추가: 기존 두 피처를 더하거나 빼서 새로운 의미를 가진 피처를 생성.
- 새로운 범주형 특징: 기존 피처를 특정 기준으로 나누어 새로운 카테고리를 만듦.
- 집계(Aggregation) 특징: 그룹별로 평균, 합계, 최댓값 등을 계산해 새로운 특징을 만듦.
- 범주형 특징 인코딩: 머신러닝 모델이 이해할 수 있도록 문자로 된 범주형 데이터를 숫자로 변환.
- One-Hot Encoding: 범주를 여러 개의 0과 1로 된 열로 변환. 예를 들어 '서울', '부산', '대구'를 각각 [1, 0, 0], [0, 1, 0], [0, 0, 1]로 변환.
- Label Encoding: 범주를 0, 1, 2와 같은 숫자로 변환. 이는 순서가 있는 데이터에 적합.
- LightGBM Built-in: LightGBM은 범주형 데이터를 직접 처리하는 기능이 내장되어 있어 별도의 인코딩 없이도 좋은 성능을 낼 수 있음.
- 결측치 및 무한대 값 처리: 결측값(NaN)은 평균, 중앙값 등으로 채우거나, 특정 모델에 따라 결측값 자체를 의미 있는 특징으로 활용할 수도 있음.
3. 모델 개발 (Model Development)
어떤 모델을 사용할지 결정하고 모델을 학습시키는 단계.
- LightGBM: 빠르고 성능이 뛰어나 캐글에서 매우 인기가 높은 머신러닝 모델. 적은 메모리를 사용하며 대용량 데이터를 효율적으로 처리할 수 있어 많은 데이터 과학자들이 선호.
4. 학습 전략 (Training Strategy)
모델의 성능을 극대화하기 위한 방법들.
-
앙상블(Ensemble) 기법: 여러 모델을 조합하여 더 좋은 성능을 얻는 방법으로, "앙상블은 항상 정답이다"라는 말이 있을 정도로 효과적.
- "약한 학습자의 합이 강한 학습자 하나보다 강하다(Sum of Weak learners is stronger than One strong learner)": 성능이 조금 떨어지는 여러 모델을 합치면, 성능이 뛰어난 단일 모델보다 더 좋은 결과를 얻을 수 있다는 의미.
- 스태킹(Stacking): 여러 모델의 예측 결과를 다시 입력으로 사용하여 최종 예측을 하는 앙상블 기법. 여러 모델의 장점을 효과적으로 결합할 수 있음.
-
교차 검증 (Cross-validation)
모델이 새로운 데이터에 대해 얼마나 잘 작동하는지 평가하는 기법.
-
특징 공학과 교차 검증의 조화: 좋은 특징을 만들고, 이를 교차 검증(Cross-validation)을 통해 객관적으로 평가하는 과정이 중요.
-
많은 검증 셋을 만들자: 여러 교차 검증 폴드(fold)를 만들어 모델의 안정적인 성능을 확인하는 것이 좋음. 리더보드의 점수만 믿기보다는, 자체적으로 만든 검증 셋(Validation Set)을 통해 모델의 성능을 정확하게 파악해야 과적합(overfitting)을 피할 수 있음.
5. EDA
- 데이터를 시각화하거나 통계적인 방법으로 탐색하며 숨겨진 패턴이나 관계를 파악하는 단계
- 이 과정을 통해 데이터의 특징을 더 깊이 이해하고, 어떤 피처 엔지니어링이 필요할지, 어떤 모델을 사용할지에 대한 통찰력을 얻을 수 있다.
6. Modeling
- 파라미터 튜닝을 알게되고 같은 모델이라도 파라미터 튜닝에 따라 값이 달라진다.
- submit.csv 을 commit하고 파일을 보내면 제출이 된다.
7. porto
- 스케일링을 잘해줘야한다.
- 스태킹은 항상 해줘야하는 거라서 무조건하기. 처음부터하기
참고
토크ON 48차. Kaggle(캐글) 데이터분석 입문 | T아카데미[https://www.youtube.com/watch?v=tsBamODoqPU&list=PL9mhQYIlKEhfBKFj3HYWwk-jQlV8aNwgk]