>  기사  >  백엔드 개발  >  Python의 능형 회귀 예제

Python의 능형 회귀 예제

WBOY
WBOY원래의
2023-06-10 22:39:521243검색

능형 회귀는 일반적으로 사용되는 선형 회귀 방법으로 다중 공선성 문제를 처리할 때 일반 최소 제곱 회귀보다 더 나은 결과를 얻을 수 있으며 특징 선택에도 사용할 수 있습니다.

Python은 강력한 프로그래밍 언어이며 능선 회귀 분석에 Python을 사용하는 것이 매우 편리합니다. 이번 글에서는 Python을 활용하여 능형회귀분석을 수행하는 방법을 예제를 통해 소개하겠습니다.

먼저 아래와 같이 필수 라이브러리를 가져와야 합니다.

import pandas as pd
import numpy as np
from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

이 예에 사용된 데이터는 보스턴 주택 가격 데이터입니다. 이 데이터 세트에는 보스턴 지역 주택 가격에 대한 13가지 특성에 대한 정보가 포함되어 있습니다. 1970년대. 아래와 같이 pandas 라이브러리의 read_csv 함수를 통해 데이터를 읽을 수 있습니다.

data = pd.read_csv('Boston.csv')

다음으로 데이터 세트를 훈련 세트와 테스트 세트로 나누어야 합니다. 이는 아래와 같이 scikit-learn 라이브러리의 train_test_split 함수를 사용하여 달성할 수 있습니다.

X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)

능선 회귀 모델을 교육하기 전에 다양한 기능의 값 범위가 다음과 같을 때 사용할 수 있도록 데이터를 정규화해야 합니다. 매우 다릅니다. 목표 변수에 미치는 영향을 비교하십시오. 표준화를 위해 scikit-learn 라이브러리의 StandardScaler 함수를 사용할 수 있습니다. 코드는 다음과 같습니다:

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)

그런 다음 능선 회귀 모델을 정의하고 이를 교육용 교육 데이터 세트에 넣을 수 있습니다. 코드는 다음과 같습니다.

ridge = Ridge(alpha=0.1)
ridge.fit(X_train, y_train)

알파 값은 하이퍼 매개변수이므로 매개변수를 조정하여 모델을 최적화해야 합니다. 훈련 세트와 테스트 세트에 대한 예측 결과를 평가하여 최적의 하이퍼파라미터를 선택할 수 있습니다. 이 예에서는 최적의 하이퍼파라미터를 선택하기 위해 알파 값에 대해 교차 검증을 수행하도록 선택했습니다. 코드는 다음과 같습니다.

from sklearn.model_selection import GridSearchCV
ridge_params = {'alpha': [0.001, 0.01, 0.1, 1, 10]}
ridge_grid = GridSearchCV(estimator=Ridge(), param_grid=ridge_params, cv=10, scoring='neg_mean_squared_error')
ridge_grid.fit(X_train, y_train)
print("Best alpha:", ridge_grid.best_params_['alpha'])

교차 검증을 통해 최적의 알파 값을 0.1로 선택합니다.

다음으로 테스트 세트에 대해 예측을 하고 예측 결과를 평가할 수 있습니다. scikit-learn 라이브러리의 평균 제곱 오류 함수를 사용하여 평균 제곱 오류를 계산할 수 있으며 코드는 다음과 같습니다.

y_pred = ridge.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)

마지막으로 matplotlib 라이브러리를 사용하여 예측 값과 실제 값의 산점도를 그려 더 잘 이해할 수 있습니다. 모델 예측 효과. 코드는 다음과 같습니다.

import matplotlib.pyplot as plt
plt.scatter(y_test, y_pred)
plt.xlabel("True Values")
plt.ylabel("Predictions")
plt.show()

간단히 말하면 Python의 능선 회귀 분석은 매우 편리하며, scikit-learn 라이브러리의 기능을 사용하면 예측 결과를 쉽게 평가하고 시각화하는 데 도움이 됩니다.

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

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