커널 릿지 회귀

Beginner

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

소개

이 실습에서는 커널 릿지 회귀 (KRR) 와 Python 의 scikit-learn 라이브러리를 사용한 구현 방법을 배웁니다. KRR 은 커널 트릭을 릿지 회귀와 결합하여 커널에 의해 유도된 공간에서 선형 함수를 학습합니다. 입력과 출력 변수 간의 비선형 관계를 처리할 수 있는 비선형 회귀 방법입니다.

VM 팁

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

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

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

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 90%입니다.학습자들로부터 91%의 긍정적인 리뷰율을 받았습니다.

라이브러리 가져오기

먼저, 이 실습에 필요한 라이브러리를 가져옵니다.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.kernel_ridge import KernelRidge

합성 데이터 생성

다음으로, 작업할 합성 데이터를 생성합니다. 사인 함수 타겟 함수를 생성하고 일부 랜덤 노이즈를 추가합니다.

## 입력 데이터 생성
np.random.seed(0)
X = np.sort(5 * np.random.rand(100, 1), axis=0)
y = np.sin(X).ravel()
y += 0.5 * (0.5 - np.random.rand(y.size))

커널 릿지 회귀 모델 적합

이제 데이터에 커널 릿지 회귀 모델을 적합합니다. 비선형 회귀에 일반적으로 사용되는 RBF(Radial Basis Function) 커널을 사용합니다.

## 커널 릿지 회귀 모델 적합
alpha = 1.0  ## 정규화 매개변수
gamma = 0.1  ## RBF 커널의 커널 계수
krr = KernelRidge(alpha=alpha, kernel='rbf', gamma=gamma)
krr.fit(X, y)

예측 함수 시각화

모델 학습이 완료되면 원본 데이터 포인트와 함께 예측 함수를 시각화해 봅니다.

## 테스트 데이터 포인트 생성
X_test = np.linspace(0, 5, 100)[:, None]

## 타겟 값 예측
y_pred = krr.predict(X_test)

## 데이터와 예측 함수 시각화
plt.scatter(X, y, color='blue', label='Data')
plt.plot(X_test, y_pred, color='red', label='Predicted Function')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()

하이퍼파라미터 최적화

이전 단계에서는 alpha 와 gamma 에 대한 기본 하이퍼파라미터 값을 사용했습니다. 모델 성능을 개선하기 위해 그리드 검색을 사용하여 이러한 하이퍼파라미터를 최적화할 수 있습니다.

from sklearn.model_selection import GridSearchCV

## 파라미터 그리드 정의
param_grid = {'alpha': [1e-3, 1e-2, 1e-1, 1, 10],
              'gamma': [1e-3, 1e-2, 1e-1, 1, 10]}

## 그리드 검색 수행
grid_search = GridSearchCV(krr, param_grid, cv=5)
grid_search.fit(X, y)

## 최적 하이퍼파라미터 가져오기
best_alpha = grid_search.best_params_['alpha']
best_gamma = grid_search.best_params_['gamma']
best_krr = grid_search.best_estimator_

print("최적 alpha:", best_alpha)
print("최적 gamma:", best_gamma)

최적화된 예측 함수 시각화

마지막으로, 최적화된 하이퍼파라미터를 사용하여 예측 함수를 시각화해 보겠습니다.

## 최적화된 모델을 사용하여 타겟 값 예측
y_pred_opt = best_krr.predict(X_test)

## 데이터와 최적화된 예측 함수 시각화
plt.scatter(X, y, color='blue', label='Data')
plt.plot(X_test, y_pred_opt, color='green', label='Optimized Predicted Function')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()

요약

이 실습에서는 커널 릿지 회귀 (KRR) 에 대해 배우고 Python 의 scikit-learn 라이브러리를 사용하여 구현하는 방법을 살펴보았습니다. 합성 데이터를 생성하고, KRR 모델을 데이터에 맞추고, 예측 함수를 시각화하고, 그리드 검색을 사용하여 하이퍼파라미터를 최적화했습니다. KRR 은 변수 간의 복잡한 관계를 처리할 수 있는 강력한 비선형 회귀 방법입니다.