이번 포스팅에서는 Scikit-Learn(sklearn)을 이용하여 선형 회귀 모형을 적합하는 방법을 알아본다.
- 목차 -
선형 회귀 모형에 대한 개념은 아래 포스팅을 참고하기 바란다.
16. 선형 회귀(Linear Regression) 모형에 대해서 알아보자 with Python
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_)
(2) 예측 및 성능 평가
예측은 predict를 이용하여 수행한다. 이때 predict에는 2차원 배열을 넣어야한다.
X_test = np.array([[6.5, 9]])
lr.predict(X_test) # 예측
다음으로 적합이 잘되었는지 성능을 평가해보자. 성능의 측도로 결정계수를 사용한다. 이 성능은 학습데이터 뿐 아니라 테스트 데이터에 대해서도 계산할 수 있다.
lr.score(X, y) # 결정 계수 출력(모형 성능 평가)
이번 포스팅에서는 sklearn을 이용하여 선형 회귀 모형은 적합, 예측 그리고 모형 평가 방법을 알아보았다.한가지 아쉬운 점은 sklearn이 머신러닝 특화된 모듈이다 보니 신뢰구간이나 검정과 같은 결과를 제공하지 않는 다는 점이다.
'프로그래밍 > Scikit-Learn' 카테고리의 다른 글
[Scikit-Learn] 6. AdaBoost 모형 만들기(feat. AdaBoostClassifier, AdaBoostRegressor) (403) | 2022.06.18 |
---|---|
[Scikit-Learn] 5. 의사결정나무(Decision Tree) 만들기(feat. DecisionTreeClassifier, DecisionTreeRegressor) (410) | 2022.06.18 |
[Scikit-Learn] 4. 서포트 벡터 머신 모형 만들기. feat SVC, SVR (401) | 2022.05.27 |
[Scikit-Learn] 3. 데이터 칼럼 표준화하기 feat. StandardScaler (380) | 2022.05.27 |
[Scikit-Learn] 2. 최대 최소(Min Max) 변환하기 feat. MinMaxScaler (400) | 2022.05.27 |
댓글