결정 트리 회귀

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 결정 트리 회귀 알고리즘을 사용하여 추가적인 잡음이 있는 사인 곡선을 맞추는 방법을 배웁니다. 결정 트리는 사인 곡선을 근사하는 지역 선형 회귀를 학습하는 데 사용됩니다. 트리의 최대 깊이가 너무 높게 설정되면 결정 트리가 학습 데이터의 너무 세부적인 부분과 잡음에서 학습하여 과적합될 수 있습니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근합니다.

때때로 Jupyter Notebook 이 로드되는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

필요한 라이브러리 가져오기

필요한 라이브러리와 모듈, 예를 들어 numpy, matplotlib, 그리고 DecisionTreeRegressor 를 가져옵니다.

import numpy as np
from sklearn.tree import DecisionTreeRegressor
import matplotlib.pyplot as plt

랜덤 데이터셋 생성

NumPy 를 사용하여 랜덤 데이터셋을 생성하고 일부 잡음을 추가합니다.

rng = np.random.RandomState(1)
X = np.sort(5 * rng.rand(80, 1), axis=0)
y = np.sin(X).ravel()
y[::5] += 3 * (0.5 - rng.rand(16))

회귀 모델 학습

두 가지 다른 최대 깊이 (2 와 5) 를 사용하여 회귀 모델을 학습합니다.

regr_1 = DecisionTreeRegressor(max_depth=2)
regr_2 = DecisionTreeRegressor(max_depth=5)
regr_1.fit(X, y)
regr_2.fit(X, y)

예측

0 부터 5 까지의 범위에서 모델을 사용하여 예측을 수행합니다.

X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis]
y_1 = regr_1.predict(X_test)
y_2 = regr_2.predict(X_test)

결과 플롯

모델이 데이터에 얼마나 잘 맞는지 시각화하기 위해 결과를 플롯합니다.

plt.figure()
plt.scatter(X, y, s=20, edgecolor="black", c="darkorange", label="data")
plt.plot(X_test, y_1, color="cornflowerblue", label="max_depth=2", linewidth=2)
plt.plot(X_test, y_2, color="yellowgreen", label="max_depth=5", linewidth=2)
plt.xlabel("데이터")
plt.ylabel("타겟")
plt.title("결정 트리 회귀")
plt.legend()
plt.show()

요약

이 실험에서 우리는 결정 트리 회귀 알고리즘을 사용하여 추가적인 잡음 관측치가 있는 사인 곡선에 맞추는 방법을 배웠습니다. 트리의 최대 깊이가 너무 높게 설정되면 결정 트리는 훈련 데이터의 너무 세부적인 부분을 학습하고 잡음에서 학습하게 되어 과적합됩니다. 또한, 결과를 플롯하여 모델이 데이터에 얼마나 잘 맞는지 시각화하는 방법을 배웠습니다.