728x90
fit_intercept를 True로 하면 y절편 값을 구하고, False로 하면 그러지 않는다.
보통 구할 것이므로 디폴트는 fit_intercept=True이다.
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
np.random.seed(42)
# 난수 생성, shape은 100,1
# w0 = 6, w1= 4
X = 2 * np.random.rand(100,1)
y = 6 + 4*X + np.random.rand(100,1)
plt.scatter(X,y)

from sklearn.linear_model import LinearRegression as LR
yes_inter = LR(fit_intercept=True)
no_inter = LR(fit_intercept=False)
yes_inter.fit(X,y)
no_inter.fit(X,y)
###### yes_intercept
# w0
yes_w0 = yes_inter.intercept_[0]
# w1
yes_w1 = yes_inter.coef_[0][0]
##### no_intercept
# w1
no_w1 = no_inter.coef_[0][0]
plt.scatter(X,y)
plt.plot(X, X*yes_w1+yes_w0, c='r', label='with intercept')
plt.plot(X, X*no_w1, c='g', label='without intercept')
plt.legend()
plt.title('intercept T/F')
fit_intercept옵션을 True로 했을 때와 False로 했을 때로 모델을 두개 만들어서 fitting시킨다.
False인 경우에는 당연히 w0이 없으므로 w1만 구한다.

회귀식과 상황에 따라 다르겠지만, 굳이 intercept옵션을 끌 필요는 없어보인다.
728x90
'📂 Engineering > 🔹 Data & AI' 카테고리의 다른 글
| 파이썬으로 배우는 알고리즘 트레이딩 No module named 에러 해결 (0) | 2021.07.19 |
|---|---|
| 빅데이터분석기사 실기 준비 - 분류 모델 11개 비교 (0) | 2021.06.16 |
| 주피터 노트북 가상환경 커널 추가하기 삭제하기 (0) | 2021.05.16 |
| ValueError: Setting a random_state has no effect since shuffle is False. You should leave random_state to its default (None), or set shuffle=True. (0) | 2021.04.28 |
| 복붙창고 (0) | 2021.04.04 |
댓글