강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

aaaaa님의 프로필 이미지
aaaaa

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

선형회귀에 대해서 질문있습니다.

작성

·

142

0

수고 많으십니다.
5장 회귀파트 학습 중 이해가 되지 않는 부분이 있어서 질문드립니다.
교재 309페이지, '일차 단항식 계수를 삼차 다항식 계수로 변환하고 이를 이용해 선형 회귀에 적용하면 다항 회귀로 구현된다' 라는 내용에서 실험 결과로 도출된 회귀 계수인 [0. 0.18 0.18 0.36 0.54 0.72 0.72 1.08 1.62 2.34]가 왜 저런 결과값이 나오는지 이해가 가지 않습니다.
 
3 차 다항식 변환을 토대로 poly_ftr가
[[ 1. 0. 1. 0. 0. 1. 0. 0. 0. 1.] [ 1. 2. 3. 4. 6. 9. 8. 12. 18. 27.]]
이렇게 나왔고 이 값을 통해서 선형 회귀 모델에 적용시켜서 회귀계수를 구하면
 
적어도 아래에 있는 계수 값과 비슷한 숫자들이 나와야 하는데
def polynomial_func(X):
    y = 1 + 2*X[:,0] + 3*X[:,0]**2 + 4*X[:,1]**3 
  return y
 
전혀 딴판인
Polynomial 회귀 계수 [0.   0.18 0.18 0.36 0.54 0.72 0.72 1.08 1.62 2.34] 와 같은 값을 내어주고 있습니다.
제가 궁금한게 이 파트인데, 회귀 계수를 어떤 과정을 통해서 도출되었는지가 궁금합니다.
 
회귀 계수라는게, 기존에 있는 다항식의 계수를 최대한 따라가는 방향으로 만들어져야한다고 이해하고 있는데 제가 틀리게 이해하고 있는지 모르겠습니다.

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

네,  회귀 계수가 기존에 있는 다항식의 계수를 쫒아가면 좋습니다만, 

예제로 드린 두개의 샘플 값 [[ 1. 0. 1. 0. 0. 1. 0. 0. 0. 1.] [ 1. 2. 3. 4. 6. 9. 8. 12. 18. 27.]] 만으로 Linear Regression이 정확한 회귀 계수를 계산하기는 무리입니다. 값을 보시면 아시겠지만, 이 두값은 상대적으로 차이가 큽니다. 또한  정확히 쫒아가도 뒤에서 설명드릴 오버피팅 이슈 때문에 문제가 생깁니다. 

예제로 드린 것은 다항 회귀를 사이킷런에서 어떻게 적용하는지를 설명드리기 위한 것으로 이해해 주셨으면 합니다. 

감사합니다. 

 

aaaaa님의 프로필 이미지
aaaaa

작성한 질문수

질문하기