본문 바로가기
programming/AI

머신러닝 다항 회귀 분석 개념 Machine Learning Polynomial Regression

by 개코 - 개발과 코딩 2021. 8. 19.

다항 회귀 분석은 여러개의 독립변수에 의해 종속변수에 변화가 생기는 회귀 분석이다. 선형 회귀 분석은 단순이 하나의 독립변수에 따라 하나의 종속변수를 알 수 있었다고 하면, 다항 회귀 분석은 여러개의 독립변수가 있다는 점이다. 여기서 말하는 다항은 n차 식을 말한다. 독립변수가 여러개 라는 것은 원인이 여러개 라는 인과관계를 가지고, 이것들의 수치화가 가능하기 때문에 상관관계가 이루어진다.

머신러닝 다항회귀분석

 

다항 회귀 분석
Polynomial Regression

선형회귀분석에서 좌표평면에 선을 그렸다.

다항회귄분석에서 좌표평면에 선이 여러개가 존재하며 굴절이 발생한다.

이것은 여러개의 독립변수에 의한 영향이 있음을 알 수 있고, 수식이 여러개 발생하기 때문에 다항식이 발생한다.

 

다시말해

좌표평면을 선으로 표현하는 선형 회귀 분석으로 적합하지 않은 경우 다항 회귀 분석으로 독립변수와 종속변수의 상관관계를 알 수 있는 것이다.

선형으로 표혀할 수 없기에 그래프는 다양한 독립변수를 이용해 굴절이 일어날 수 있다.

당연히 함수로는 여러개의 원인이 있고, 식이 여러개 존재하게 된다.

인과관계, 상관관계에 따른 독립변수와 종속변수를 잠깐 살펴보고 넘어가자.

  • 인과관계 = 원인, 결과 = 독립변수, 종속변수
  • 인과관계의 수치화 = 상관관계

 

샘플 데이터 만들기

다항 회귀 분석을 위해 데이터를 만들었다.

이전의 데이터는 회귀 분석이라고 하기에 부끄럽기 때문에 다른 곳의 데이터를 참고하였다.

물론, 실제적인 통계데이터를 이용하는 것이 좋겠지만, 예시로 들기에는 수치가 너무 큰 이유도 있다.

단순하게 하나 사용해 본다.

vX = [1,2,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22]
vY = [100,90,80,60,60,55,60,65,70,70,75,76,78,79,90,99,99,100]

print("개별 값 : ", vX, type(vX), vX)
print("개별 값 : ", vY, type(vY), vY)

plt.scatter(vX, vY)
plt.show()

어딘가의 데이터와 비슷한 느낌이 들 것이다.

w3schools 의 데이터를 가지고 왔다.

이곳이 가장 쉽고 잘 되어 있기 때문이기도 하다.

 

파이썬으로 다항 회귀 분석 그리기

실질적으로 파이썬으로 다항 회귀 분석 곡선을 그려보자.

위의 그래프만 보자면 선형으로 그릴 수 없는 구조임을 가시적으로 알 수 있기도 하다.

위에서 언급했듯이 다항 회귀 분석은 선형 회귀 분석으로 표현할 수 없고, 다른 여러 요인인 독립변수가 수치적으로 함수표현이 가능할 경우 다항 회귀 분석 곡선을 그릴 수 있음을 언급했다.

import numpy
import matplotlib.pyplot as plt

print('----------------------------------------------------------------------------------------------------')

vX = [1,2,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22]
vY = [100,90,80,60,60,55,60,65,70,70,75,76,78,79,90,99,99,100]

print("개별 값 : ", vX, type(vX), vX)
print("개별 값 : ", vY, type(vY), vY)

ModelPoly = numpy.poly1d(numpy.polyfit(vX, vY, 3))

LinePoly = numpy.linspace(1, 22, 100)

plt.scatter(vX, vY)
plt.plot(LinePoly, ModelPoly(LinePoly))
plt.show()

print('----------------------------------------------------------------------------------------------------')

결과화면을 보면 선이 아닌 굴절이 발생한 것을 알 수 있다.

선으로써 표현이 되지 않기 때문에 수치화 할 수 있는 여러 개의 식을 이용한 다항 회귀 분석이 그려진 것을 알 수 있다.

반응형

댓글