소개
이 실습에서는 Python scikit-learn 라이브러리를 사용하여 일반 최소 제곱 (OLS) 과 릿지 회귀의 차이를 탐색합니다. 이 두 선형 회귀 방법이 데이터의 노이즈에 어떻게 대처하고 예측에서 어떻게 다른지 살펴볼 것입니다.
VM 팁
VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근합니다.
때때로 Jupyter Notebook 이 로드되는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.
학습 중 문제가 발생하면 Labby 에 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.
라이브러리 가져오기
이 단계에서는 필요한 Python 라이브러리를 가져옵니다.
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
데이터 생성
이 단계에서는 분석에 사용할 데이터를 생성합니다.
X_train = np.c_[0.5, 1].T
y_train = [0.5, 1]
X_test = np.c_[0, 2].T
분류기 정의
이 단계에서는 OLS 및 Ridge 회귀 분류기를 정의합니다.
classifiers = dict(
ols=linear_model.LinearRegression(), ridge=linear_model.Ridge(alpha=0.1)
)
결과 시각화
이 단계에서는 분석 결과를 시각화합니다.
for name, clf in classifiers.items():
fig, ax = plt.subplots(figsize=(4, 3))
for _ in range(6):
this_X = 0.1 * np.random.normal(size=(2, 1)) + X_train
clf.fit(this_X, y_train)
ax.plot(X_test, clf.predict(X_test), color="gray")
ax.scatter(this_X, y_train, s=3, c="gray", marker="o", zorder=10)
clf.fit(X_train, y_train)
ax.plot(X_test, clf.predict(X_test), linewidth=2, color="blue")
ax.scatter(X_train, y_train, s=30, c="red", marker="+", zorder=10)
ax.set_title(name)
ax.set_xlim(0, 2)
ax.set_ylim((0, 1.6))
ax.set_xlabel("X")
ax.set_ylabel("y")
fig.tight_layout()
plt.show()
요약
이 실험에서는 Python scikit-learn 라이브러리를 사용하여 일반 최소 제곱 (OLS) 과 Ridge 회귀의 차이를 탐색하는 방법을 배웠습니다. 이 두 선형 회귀 방법이 데이터의 노이즈를 어떻게 처리하고 예측에서 어떻게 다른지 살펴보았습니다. 또한 분석 결과를 시각화했습니다.