시작하기무료로 시작하기

개별 XGBoost 트리 시각화하기

이제 XGBoost로 회귀와 분류 모델을 모두 구축하고 평가해 보았으니, 모델을 시각적으로 탐색하는 방법도 익혀 보겠습니다. 여기서는 전체 주택 데이터셋을 사용해 XGBoost가 만든 완전한 부스팅 모델에서 개별 트리를 시각화해 볼 거예요.

XGBoost에는 이런 시각화를 쉽게 해 주는 plot_tree() 함수가 있습니다. XGBoost 학습 API로 모델을 학습한 뒤, num_trees 인자를 사용해 그리고 싶은 트리 번호와 함께 모델을 plot_tree() 함수에 전달하면 됩니다.

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

XGBoost로 익히는 Extreme Gradient Boosting

강의 보기

연습 안내

  • "objective""reg:squarederror", "max_depth"2로 하는 파라미터 딕셔너리를 만드세요.
  • 10회의 boosting 라운드와 위에서 만든 파라미터 딕셔너리를 사용해 모델을 학습하세요. 결과는 xg_reg에 저장하세요.
  • xgb.plot_tree()로 첫 번째 트리를 그리세요. 이 함수는 두 개의 인자를 받습니다. 모델(여기서는 xg_reg)과 0부터 시작하는 num_trees입니다. 따라서 첫 번째 트리를 그리려면 num_trees=0을 지정하세요.
  • 다섯 번째 트리를 그리세요.
  • 마지막(열 번째) 트리를 가로 방향으로 그리세요. 이를 위해 키워드 인자 rankdir="LR"을 추가로 지정하세요.

실습형 인터랙티브 연습

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

# Create the DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)

# Create the parameter dictionary: params
params = {"objective":"reg:squarederror", "max_depth":2}

# Train the model: xg_reg
xg_reg = xgb.train(params=params, dtrain=housing_dmatrix, num_boost_round=10)

# Plot the first tree
____
plt.show()

# Plot the fifth tree
____
plt.show()

# Plot the last tree sideways
____
plt.show()
코드 편집 및 실행