• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

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

22.04.06 14:26 작성 조회수 92

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이 정확한 회귀 계수를 계산하기는 무리입니다. 값을 보시면 아시겠지만, 이 두값은 상대적으로 차이가 큽니다. 또한  정확히 쫒아가도 뒤에서 설명드릴 오버피팅 이슈 때문에 문제가 생깁니다. 

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

감사합니다.