2 minute read

Machine Learning Competitions

📌 머신러닝 대회 (Machine Learning Competitions)

지금까지 기초 데이터를 탐색하고, 첫 번째 모델을 만들고 검증하며, 과소적합/과대적합을 해결한 뒤 랜덤 포레스트(Random Forest)까지 다루어 보았음.

이제 이렇게 배운 기술들을 테스트해 볼 시간임. 데이터 과학 실력을 가장 빠르고 확실하게 증명하고 향상시키는 방법 중 하나는 바로 머신러닝 대회(Competitions)에 참여하는 것임.


1️⃣ 머신러닝 대회란?

  • Kaggle과 같은 플랫폼에서 주최하는 머신러닝 대회는, 전 세계의 데이터 전문 코더들과 함께 동일한 데이터를 바탕으로 누가 더 정확한 예측 모델을 만드는지 성능을 겨루는 장임.
  • 초보자를 위한 상시 교육용 대회(예: Housing Prices Competition for Kaggle Learn Users)부터, 실제 기업에서 상금(수만 달러 이상)을 걸고 개최하는 상업용 대회까지 난이도와 인센티브가 매우 다양함.

2️⃣ 대회 참여 워크플로우 (Kaggle 연습 대회 기준)

Kaggle의 주택 가격 예측 연습 대회(Housing Prices Competition)를 기준으로, 대회를 시작하고 결과를 제출하는 전체적인 흐름은 다음과 같음.

1단계: 대회 참여하기 (Join Competition)

Kaggle 계정으로 로그인한 후 해당 대회 페이지에서 ‘Join Competition’ 버튼을 클릭하여 규정에 동의하고 대회에 참여함.

2단계: 제공 데이터 파악하기

대회용 데이터는 보통 두 종류의 CSV 파일로 제공됨.

  • 훈련 데이터 (train.csv): 특성(X)과 예측해야 할 대상인 타겟값(y, 예를 들어 주택 가격)이 모두 들어있음. 이 데이터로 모델을 학습시킴.
  • 테스트 데이터 (test.csv): 특성(X)만 주어짐. 우리가 만든 모델에 이 특성들을 집어넣어, 숨겨진 타겟값을 스스로 예측하게 만들어야 함.

3단계: 모델 구축 및 예측 (Python 코드 활용)

이전 튜토리얼에서 배운 랜덤 포레스트를 활용해 제출용 예측값을 생성하는 대표적인 코드 예시는 다음과 같음.

import pandas as pd
from sklearn.ensemble import RandomForestRegressor

# 데이터 로드
train_data = pd.read_csv('../input/train.csv')
test_data = pd.read_csv('../input/test.csv')

# 영향을 미칠 만한 특성(Feature)만 직접 선택함
features = ['LotArea', 'YearBuilt', '1stFlrSF', '2ndFlrSF', 'FullBath', 'BedroomAbvGr', 'TotRmsAbvGrd']
y = train_data.SalePrice
X = train_data[features]

# 랜덤 포레스트 모델 학습 (전체 훈련 데이터를 모두 사용함)
model = RandomForestRegressor(random_state=1)
model.fit(X, y)

# 테스트 데이터 예측 수행
test_X = test_data[features]
test_preds = model.predict(test_X)

4단계: 제출 파일(.csv) 생성 및 마무리

예측값(test_preds)이 성공적으로 나왔다면, 이제 대회 주최 측에서 요구하는 형식에 맞춰 CSV 파일을 만들어야 함. 보통 데이터의 고유 ID와 우리가 예측한 가격(Target) 값을 매핑함.

# 결과를 DataFrame으로 묶어 CSV 파일로 추출함
output = pd.DataFrame({'Id': test_data.Id, 'SalePrice': test_preds})
output.to_csv('submission.csv', index=False)

생성된 submission.csv 파일을 대회 페이지의 ‘Submit Predictions’ 메뉴를 통해 제출(업로드)하면 됨.


3️⃣ 리더보드와 평가 지표 (Metric)

제출이 완료되면 시스템이 자체적으로 정답지와 내 예측값을 비교하여 점수를 매김.

  • 이 대회에서는 우리가 익히 배운 평균 절대 오차(MAE)를 평가 지표로 사용함. (대회에 따라 다양한 통계 지표가 사용될 수 있음.)
  • 오차가 작을수록 예측이 정확하다는 의미이므로, MAE 점수가 가장 0에 가까운 사람이 순위표(Leaderboard) 상단에 위치하게 됨.

🚀 다음 성장을 위해

지금 작성한 모델은 주어진 특성만 골라 쓴 매우 기초적인 접근임. 앞으로 대회 순위를 높이기 위해 다음과 같은 발전된 기법들을 적용하며 모델을 고도화할 수 있음.

  • 결측치 보간 및 처리 기술 고도화
  • 데이터끼리 조합하는 강력한 특성 공학 (Feature Engineering)
  • XGBoost 등 강력한 앙상블 학습 (Ensemble Methods) 모델 도입
  • 초매개변수 미세 조정 (Hyperparameter Tuning)

이 기본적인 파이프라인만 숙지해도 전 세계 어느 머신러닝 대회든 뛰어들 수 있는 근간이 완성된 것임.

Comments