사이킷런을 이용한 릿지 회귀 예제

Beginner

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

소개

이 실습에서는 추정기의 공선형 계수를 추정하기 위해 릿지 회귀를 사용하는 방법을 보여줍니다. 릿지 회귀는 모델에 L2 정규화를 적용하는 선형 회귀의 한 유형입니다.

이 예제에서는 10x10 힐버트 행렬을 생성하고 릿지 회귀를 사용하여 행렬의 계수를 추정합니다.

VM 팁

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

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

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

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

이 단계에서는 이 예제에 필요한 라이브러리를 가져옵니다.

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model

데이터 생성

이 단계에서는 10x10 힐버트 행렬을 생성하고, 목표 변수 y를 1 로 구성된 벡터로 설정합니다.

X = 1.0 / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
y = np.ones(10)

릿지 회귀 경로 계산

이 단계에서는 서로 다른 정규화 강도에 대한 릿지 회귀 경로를 계산합니다.

n_alphas = 200
alphas = np.logspace(-10, -2, n_alphas)

coefs = []
for a in alphas:
    ridge = linear_model.Ridge(alpha=a, fit_intercept=False)
    ridge.fit(X, y)
    coefs.append(ridge.coef_)

결과 시각화

이 단계에서는 릿지 회귀 경로의 결과를 시각화합니다.

ax = plt.gca()

ax.plot(alphas, coefs)
ax.set_xscale("log")
ax.set_xlim(ax.get_xlim()[::-1])  ## 축 반전
plt.xlabel("alpha")
plt.ylabel("가중치")
plt.title("정규화에 따른 릿지 계수")
plt.axis("tight")
plt.show()

요약

이 실습에서는 추정기의 공선형 계수를 추정하기 위해 릿지 회귀를 사용하는 방법을 보여주었습니다. 10x10 힐버트 행렬을 생성하고 릿지 회귀를 사용하여 행렬의 계수를 추정했습니다. 그런 다음 릿지 회귀 경로의 결과를 시각화했습니다. 릿지 회귀는 매우 불안정한 행렬의 변동 (잡음) 을 줄이는 데 유용합니다. 특정 정규화 강도를 설정함으로써 정규화의 효과와 제곱 손실 함수의 효과를 균형 있게 조절할 수 있습니다.