코딩코딩/머신러닝, 딥러닝

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