bias 질문있습니다.
1115
작성한 질문수 10
안녕하세요 강사님 PolynomialFeatures() 파라미터인 include_bias 를 True 로 설정하면 그래프 오차가 상당히 크게 나오는데 언제 왜 쓰이는지 궁금합니다.
import numpy as np
from matplotlib import pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
m = 100
X = 6*np.random.rand(m, 1) - 3
y = 0.5 * X**2 + X +2+ np.random.randn(m, 1)
poly_features = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly_features.fit_transform(X)
#print(X_poly)
lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)
print(lin_reg.intercept_, lin_reg.coef_)
poly_features2 = PolynomialFeatures(degree=2, include_bias=True)
X_poly2 = poly_features2.fit_transform(X)
lin_reg2 = LinearRegression()
lin_reg2.fit(X_poly2, y)
print(lin_reg2.intercept_, lin_reg2.coef_)
plt.plot(X, y, 'o')
plt.plot(X, lin_reg.coef_[0][1]* X**2 + lin_reg.coef_[0][0]*X +lin_reg.intercept_, 'r.')
plt.plot(X, lin_reg2.coef_[0][1]* X**2 + lin_reg2.coef_[0][0]*X +lin_reg2.intercept_, 'g.')
plt.plot(X, np.round(model.named_steps['linear'].coef_, 2)[0][1]* X**2 + np.round(model.named_steps['linear'].coef_, 2)[0][0]*X , 'y.')
plt.show()
from sklearn.pipeline import Pipeline
model = Pipeline([('Poly', PolynomialFeatures(degree=2, include_bias=False)),
('linear', LinearRegression())])
model = model.fit(X, y)
print('회귀계수 : ', np.round(model.named_steps['linear'].coef_, 2))
답변 3
0
이게 어떤 경우에 include_bias를 적용하느냐, 아니냐 보다는 적용해서 좋으면 사용하고, 아니면 사용하지 않는 정도의 하이퍼 파라미터 개념으로 생각하시면 될 것 같습니다.
감사합니다.
0
안녕하세요 강사님 답변 감사드립니다. 제가 질문을 잘못드려 다시 여쭙고싶습니다.
PolynomialFeatures 를 사용하는 이유가 주어진 데이터 세트로 예상되는 다항회귀곡선을 추출하기 위해서인데
절편 1을 추가할 경우(include_bias=True 일 경우), 적절치 않은 회귀 곡선이 예측되던데 실전에서 절편 1을 어떤 경우에 추가해서 사용하는지 궁금합니다.
0
안녕하십니까,
include_bias는 절편을 만드는 것입니다. include_bias = True이면 1 +ax + bx(제곱)와 같이 1 같은 절편을 추가합니다. False이면 추가하지 않습니다.
아래 코드로 테스트 해보시면 됩니다.
from sklearn.preprocessing import PolynomialFeatures
import numpy as np
# 다항식으로 변환한 단항식 생성, [[0,1],[2,3]]의 2X2 행렬 생성
X = np.arange(4).reshape(2,2)
print('일차 단항식 계수 feature:\n',X )
# degree = 2 인 2차 다항식으로 변환하기 위해 PolynomialFeatures를 이용하여 변환
poly = PolynomialFeatures(degree=2, include_bias=False)
poly.fit(X)
poly_ftr = poly.transform(X)
print('변환된 2차 다항식 계수 feature with include_bias False:\n', poly_ftr)
poly = PolynomialFeatures(degree=2, include_bias=True)
poly.fit(X)
poly_ftr = poly.transform(X)
print('변환된 2차 다항식 계수 feature with include_bias False:\n', poly_ftr)
감사합니다.
안녕하세요 열심히 수강중인 학생입니다
0
60
2
정수 인덱싱
0
68
2
넘파이 오류
0
83
2
11강 numpy의 axis 축 질문 드립니다.
0
85
2
Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.
0
77
2
Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.
0
69
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
75
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
64
2
5강 강의 오류가 있어요.
0
84
1
실무에서 LTV 관련 모델 선택 질문입니다!
0
72
2
14강 강의 듣는중에 궁금한게 있어서 질문합니다~
0
69
3
파이썬 다운그레이 후 사이킷런 재설치
0
116
2
좋은 강의 감사합니다.
0
72
2
scoring 함수 음수값
0
67
2
6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?
0
99
2
분류 평가 정확도 예측
0
76
2
안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.
0
98
1
카카오톡 채널 있나요
0
106
1
혹시 강의에서 사용하시는 ppt 받을 수 있는건가요
0
189
2
pca 스케일링 관련하여 질문드립니다.
0
100
2
주피터 대신 구글 코랩
0
172
2
강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?
0
146
2
실루엣 스코어..
0
84
2
float64 null 값 처리 방법
0
102
2





