시작하기무료로 시작하기

XGBoost: 학습/예측

이제 첫 번째 XGBoost 모델을 만들어 볼 시간이에요! Sergey가 영상에서 보여준 것처럼, xgboost 라이브러리는 scikit-learn과 호환되는 API를 제공하므로, 익숙한 scikit-learn의 .fit() / .predict() 패턴을 그대로 사용해 XGBoost 모델을 만들 수 있어요.

여기서는 이탈(churn) 데이터를 다룹니다. 이 데이터셋은 가상의 도시에서 승차 공유 앱을 사용하는 가상 사용자들의 첫 한 달간 행동과, 가입 5개월 후에도 서비스를 이용했는지 여부를 담고 있어요. 데이터는 churn_data라는 DataFrame으로 미리 로드되어 있으니 Shell에서 살펴보세요!

목표는 첫 한 달의 데이터를 사용해 5개월 시점에도 사용자가 서비스를 계속 이용할지 예측하는 것입니다. 이것이 전형적인 이탈 예측 문제 설정이에요. 이를 위해 데이터를 훈련/테스트 세트로 나누고, 훈련 세트에 작은 xgboost 모델을 학습시킨 뒤, 테스트 세트에서 정확도를 계산해 성능을 평가합니다.

pandasnumpy는 각각 pd, np로 임포트되어 있고, sklearn.model_selection에서 train_test_split도 임포트되어 있어요. 또한 특성과 타깃에 해당하는 배열은 각각 Xy로 생성되어 있습니다.

이 연습은 강의의 일부입니다

XGBoost로 익히는 Extreme Gradient Boosting

강의 보기

연습 안내

  • xgboostxgb로 임포트하세요.
  • 데이터의 20%를 테스트용으로 사용하도록 훈련/테스트 세트를 만드세요. random_state123으로 설정합니다.
  • xgb.XGBClassifier()XGBoostClassifierxg_cl이라는 이름으로 인스턴스화하세요. n_estimators10, objective'binary:logistic'으로 지정합니다. 이 매개변수들의 의미는 아직 몰라도 괜찮아요. 이 강의에서 곧 배우게 됩니다.
  • .fit() 메서드를 사용해 xg_cl을 훈련 세트(X_train, y_train)에 적합하세요.
  • .predict() 메서드로 테스트 세트(X_test)의 레이블을 예측하고 'Submit Answer'를 눌러 정확도를 출력하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Import xgboost
____

# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]

# Create the training and test sets
X_train, X_test, y_train, y_test= ____(____, ____, test_size=____, random_state=123)

# Instantiate the XGBClassifier: xg_cl
xg_cl = ____.____(____='____', ____=____, seed=123)

# Fit the classifier to the training set
____

# Predict the labels of the test set: preds
preds = ____

# Compute the accuracy: accuracy
accuracy = float(np.sum(preds==y_test))/y_test.shape[0]
print("accuracy: %f" % (accuracy))
코드 편집 및 실행