XGBoost: 학습/예측
이제 첫 번째 XGBoost 모델을 만들어 볼 시간이에요! Sergey가 영상에서 보여준 것처럼, xgboost 라이브러리는 scikit-learn과 호환되는 API를 제공하므로, 익숙한 scikit-learn의 .fit() / .predict() 패턴을 그대로 사용해 XGBoost 모델을 만들 수 있어요.
여기서는 이탈(churn) 데이터를 다룹니다. 이 데이터셋은 가상의 도시에서 승차 공유 앱을 사용하는 가상 사용자들의 첫 한 달간 행동과, 가입 5개월 후에도 서비스를 이용했는지 여부를 담고 있어요. 데이터는 churn_data라는 DataFrame으로 미리 로드되어 있으니 Shell에서 살펴보세요!
목표는 첫 한 달의 데이터를 사용해 5개월 시점에도 사용자가 서비스를 계속 이용할지 예측하는 것입니다. 이것이 전형적인 이탈 예측 문제 설정이에요. 이를 위해 데이터를 훈련/테스트 세트로 나누고, 훈련 세트에 작은 xgboost 모델을 학습시킨 뒤, 테스트 세트에서 정확도를 계산해 성능을 평가합니다.
pandas와 numpy는 각각 pd, np로 임포트되어 있고, sklearn.model_selection에서 train_test_split도 임포트되어 있어요. 또한 특성과 타깃에 해당하는 배열은 각각 X와 y로 생성되어 있습니다.
이 연습은 강의의 일부입니다
XGBoost로 익히는 Extreme Gradient Boosting
연습 안내
xgboost를xgb로 임포트하세요.- 데이터의 20%를 테스트용으로 사용하도록 훈련/테스트 세트를 만드세요.
random_state는123으로 설정합니다. xgb.XGBClassifier()로XGBoostClassifier를xg_cl이라는 이름으로 인스턴스화하세요.n_estimators는10,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))