본문 바로가기
프로그래밍/Scikit-Learn

[Scikit-Learn] 1. sklearn을 이용하여 선형 회귀 모형(Linear Regression) 적합하기

by 부자 꽁냥이 2022. 5. 7.

이번 포스팅에서는  Scikit-Learn(sklearn)을 이용하여 선형 회귀 모형을 적합하는 방법을 알아본다.

 

- 목차 -

1. 데이터 준비

2. sklearn을 이용한 선형 회귀 모형 적합

 

선형 회귀 모형에 대한 개념은 아래 포스팅을 참고하기 바란다.

 

16. 선형 회귀(Linear Regression) 모형에 대해서 알아보자 with Python

 

16. 선형 회귀(Linear Regression) 모형에 대해서 알아보자 with Python

머신러닝 관련 포스팅을 하면서 아주 기본적이지만 이론적으로 강력한 선형 회귀 관련 내용을 포스팅하지 않았다는 것에 매우 놀랐다. 이번 포스팅에서는 선형 회귀 모형에 대해서 알아보고 파

zephyrus1111.tistory.com


   1. 데이터 준비

여기서는 보스턴 집값 데이터를 이용하여 선형 회귀 모형을 적합시키려고 한다. 데이터를 불러오고 설명 변수 행렬 X와 반응 변수 y를 지정한다. 이때 설명 변수는 'RM', 'LSTAT'으로 정했고 반응 변수 y는 집값을 선택했다.

 

import pandas as pd
import warnings
warnings.filterwarnings('ignore')

from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston

boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['MEDV'] = boston.target

X = df[['RM', 'LSTAT']]
y = df['MEDV'].values

   2. sklearn을 이용한 선형 회귀 모형 적합

(1) 선형 회귀 모형 적합

먼저 LinearRegression 클래스 인스턴스를 생성하고 fit 함수를 이용하여 적합한다.

## LinearRegression 클래스 생성
lr = LinearRegression(fit_intercept=True) ## 절편항 있는 회귀 모형, False 절편항 제외
lr.fit(X, y) ## 모형 적합

 

이제 적합된 회귀 계수를 출력해보자. 절편항과 회귀 계수를 intercept_, coef_를 통하여 따로 봐야한다.

 

print('절편 :', lr.intercept_)
print('회귀 계수 :', lr.coef_)

 

sklearn.LinearRegression 적합 결과

(2) 예측 및 성능 평가

예측은 predict를 이용하여 수행한다. 이때 predict에는 2차원 배열을 넣어야한다.

 

X_test = np.array([[6.5, 9]])
lr.predict(X_test) # 예측

 

sklearn.LinearRegression 예측

다음으로 적합이 잘되었는지 성능을 평가해보자. 성능의 측도로 결정계수를 사용한다. 이 성능은 학습데이터 뿐 아니라 테스트 데이터에 대해서도 계산할 수 있다.

 

lr.score(X, y) # 결정 계수 출력(모형 성능 평가)

 

sklearn.LinearRegression 결정계수


이번 포스팅에서는 sklearn을 이용하여 선형 회귀 모형은 적합, 예측 그리고 모형 평가 방법을 알아보았다.한가지 아쉬운 점은 sklearn이 머신러닝 특화된 모듈이다 보니 신뢰구간이나 검정과 같은 결과를 제공하지 않는 다는 점이다.


댓글


맨 위로