등장값 회귀를 이용한 비선형 회귀

Beginner

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

소개

이 실습에서는 scikit-learn 을 사용하여 등장값 회귀를 탐색합니다. 등장값 회귀는 일차원 데이터에 비감소 함수를 맞추는 기술입니다. 회귀 모델의 선형성 가정을 만족하지 않는 데이터가 있을 때 유용합니다.

VM 팁

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

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

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

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

sklearn.isotonic 모듈에서 IsotonicRegression 클래스를 가져오는 것으로 시작해 보겠습니다.

from sklearn.isotonic import IsotonicRegression

샘플 데이터 생성

다음으로, 등장값 회귀 모델에 맞출 샘플 데이터를 생성해야 합니다. 이 예제에서는 입력 데이터와 대상 값을 각각 나타내는 두 개의 배열 Xy를 생성합니다.

import numpy as np

## 랜덤 입력 데이터 생성
np.random.seed(0)
X = np.random.rand(100)
y = 4 * X + np.random.randn(100)

등장값 회귀 모델 적합

이제 우리의 데이터에 등장값 회귀 모델을 적합할 수 있습니다. IsotonicRegression 클래스의 인스턴스를 생성하고 입력 데이터와 대상 값을 사용하여 fit 메서드를 호출합니다.

## 등장값 회귀 모델 적합
ir = IsotonicRegression()
ir.fit(X, y)

모델을 사용한 예측

모델을 적합한 후에는 새로운 데이터에 대한 예측을 수행할 수 있습니다. 새로운 배열 X_new를 생성하고 해당 대상 값을 예측해 보겠습니다.

## 예측을 위한 새로운 데이터 생성
X_new = np.linspace(0, 1, 100)
y_pred = ir.predict(X_new)

결과 시각화

마지막으로, 등장값 회귀 모델의 결과를 시각화해 보겠습니다. 원본 데이터 포인트를 산점도로, 예측 값을 선으로 표시할 수 있습니다.

import matplotlib.pyplot as plt

## 원본 데이터와 예측 값을 플롯
plt.scatter(X, y, c='b', label='Original Data')
plt.plot(X_new, y_pred, c='r', label='Isotonic Regression')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()

요약

등장값 회귀는 선형 회귀 모델의 가정을 충족하지 않는 비선형 데이터를 다룰 때 유용한 기법입니다. 데이터에 비감소 함수를 적합함으로써 등장값 회귀는 데이터의 기저 추세를 포착하는 분절 선형 근사를 제공합니다. 이 실험에서 scikit-learn 의 IsotonicRegression 클래스를 사용하여 등장값 회귀 모델을 적합하고, 예측을 수행하며, 결과를 시각화하는 방법을 배웠습니다.