정보 과학융합탐구

최소제곱법 구현하기

Halfand 2023. 7. 4. 16:25

 

주제: 최소제곱법 구현하기

 

오늘은 전에 화학시간에 절대 영도 구하기에 사용했던 최소 제곱법을 파이썬 코드로 구현해 보고자 합니다.

 

*나온 예제는 모두의 딥러딩에 나온 예제를 참고했습니다.*

 

 

최소제곱법이란?

최소제곱법, 또는 최소자승법, 최소제곱근사법, 최소자승근사법(method of least squares, least squares approximation)은 어떤 계의 해방정식을 근사적으로 구하는 방법으로, 근사적으로 구하려는 해와 실제 해의 오차의 제곱의 합(SS)이 최소가 되는 해를 구하는 방법이다.
이 방법은 값을 정확하게 측정할 수 없는 경우에 유용하게 사용될 수 있으며, 특히 그 계의 방정식이 어떤 형태인지를 알고 있을 때 방정식의 상수 값들을 추정하는 데에 사용된다.
-위키백과-

 

 

 

쉽게 말해서, 주어진 값들을 이은 그래프를 만드는 방법 중 하나라고 보면 됩니다. 

 

 

 

CODE

아래는 최소제곱법을 구현한 파이썬 코드입니다. 

 

import numpy as np

x=[2, 4, 6, 8]
y=[81, 93, 91, 97]

mx=np.mean(x)
my=np.mean(y)

mom=sum((i-mx)**2 for i in x)

def f():
  s=0
  s=sum((x[i]-mx)*(y[i]-my) for i in range(len(x)))
  return s

son=f()

a=son/mom
b=my-(mx*a)

print(a, b)

 

 

 

소감

사실 전에 최소제곱법을 사용할 때는 나무위키만 보고 해서 이해가 잘 안 됐었는데 이번에 천천히 책을 보고 구현해 보니 잘 구현할 수 있었던 것 같다.