코딩코딩/머신러닝, 딥러닝
LinearRegression의 fit_intercept 파라미터 알아보기
g0n1
2021. 5. 31. 00:12
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