>  기사  >  백엔드 개발  >  Python의 지역 가중 회귀 예제

Python의 지역 가중 회귀 예제

WBOY
WBOY원래의
2023-06-11 19:37:361516검색

Python의 로컬 가중 회귀 예제

로컬 가중 회귀(Locally Weighted Regression)는 비모수적 회귀 방법으로 기존 회귀 방법과 비교하여 회귀에 고정 매개변수를 사용하지 않고 샘플 데이터를 기반으로 자동으로 회귀를 수행합니다. 적응적으로 모델을 구축합니다. 이러한 적응형 속성은 회귀 분석 및 시계열 예측과 같은 분야에서 지역적으로 가중된 회귀를 널리 사용하게 합니다.

Python에서는 scikit-learn 패키지의 LOWESS(국소 가중 산점도 평활화) 알고리즘을 사용하여 국부 가중 회귀 분석을 수행할 수 있습니다. 이 글에서는 Python을 사용하여 LOWESS 알고리즘을 구현하는 방법과 데모 분석을 위한 예제를 사용하는 방법을 소개합니다.

다음은 Python을 사용하여 로컬 가중 회귀를 구현하는 단계입니다.

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

Python에서 로컬 가중 회귀를 구현하려면 numpy, pandas, matplotlib.pyplot 및 sklearn.neighbors와 같은 가져오기 라이브러리를 사용하세요.

  1. 데이터 준비

pandas 라이브러리를 사용하여 데이터를 읽고 데이터를 X 및 y로 준비합니다. 그 중 X는 독립변수이고 y는 종속변수이다.

  1. 데이터 전처리

X 및 y 데이터를 표준화합니다. 이를 통해 데이터 간의 측정 차이를 제거하고, 모델링하기 전에 데이터를 0에 가깝게 중심화하고 크기의 영향을 줄일 수 있습니다.

  1. 모델 맞추기

모델을 맞추려면 sklearn.neighbors 라이브러리의 LocallyWeightedRegression 클래스를 사용하세요. 이 방법을 사용하는 경우 대역폭과 가중치 함수라는 두 가지 하이퍼 매개변수를 지정해야 합니다. 대부분의 경우 대역폭 값이 작을수록 더 정확한 모델을 제공하지만 계산 비용도 더 많이 듭니다.

  1. 예측값

local_weighted_regression 객체의 예측 메소드를 사용하여 새로 입력된 독립변수에 해당하는 종속변수를 예측합니다.

다음으로 지역 가중 회귀의 예를 살펴보겠습니다.

예시 1: 인구 데이터를 기반으로 한 주택 가격 예측

모델 피팅 및 예측을 위해 UCI 데이터베이스에 설정된 보스턴 주택 가격 데이터를 사용합니다. 데이터 세트에는 506개의 샘플과 1인당 도시 범죄율(CRIM), 건설 후 1940년 이전의 자가 소유 주택 비율(ZN), 산화질소 농도(NOX), 1인당 객실 수(RM)를 포함한 13개의 독립 변수가 포함되어 있습니다. )기다리다.

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

np로 numpy 가져오기
pd로 팬더 가져오기
matplotlib.pyplot을 plt로 가져오기
from sklearn.preprocessing 가져오기 StandardScaler
from sklearn.neighbors 가져오기 KNeighborsRegressor

  1. 데이터 준비

보스턴 주택 읽기 가격 데이터 세트

data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data', header = None, sep = 's+')

X와 y를 지정하세요


sc_X = StandardScaler()
    sc_y = StandardScaler()
  1. X = sc_X.fit_transform(X)
  2. y = sc_y.fit_transform(y.reshape(-1, 1))

분할 데이터 세트를 훈련 세트 및 테스트 세트

from sklearn.model_selection import train_test_split
X_train, + sc_y.inverse_transform(y_pred)
y_test = sc_y.inverse_transform(y_test)

결과 시각화


예측 결과와 실제 결과를 비교하세요. 동일한 그래프에 있는 테스트 세트의 값

    plt.scatter(X_test[:,5 ], y_test, color='red')
  1. plt.scatter(X_test[:,5], y_pred, color='blue ')
  2. plt.xlabel('방 수')
plt.ylabel('Price')

plt.title('The Price of Houses')

plt.show()


시각적 그래픽에 따르면 우리는 모델의 예측 결과가 테스트 세트의 실제 값과 매우 가깝다는 것을 확인하세요. 이는 지역가중회귀모형이 주택가격을 정확하게 예측할 수 있음을 보여준다.

위 내용은 Python의 지역 가중 회귀 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.