일반 최소 제곱과 릿지 회귀의 분산

Beginner

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

소개

이 실습에서는 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 회귀의 차이를 탐색하는 방법을 배웠습니다. 이 두 선형 회귀 방법이 데이터의 노이즈를 어떻게 처리하고 예측에서 어떻게 다른지 살펴보았습니다. 또한 분석 결과를 시각화했습니다.