Numpy에서 최소 제곱 피팅을 수행하는 방법(예 포함)


최소 제곱법은 주어진 데이터 집합에 가장 잘 맞는 회귀선을 찾는 데 사용할 수 있는 방법입니다.

NumPy에서 linalg.lstsq( ) 함수를 사용하여 최소 제곱 조정을 수행할 수 있습니다.

다음 단계별 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.

1단계: X 및 Y 값을 입력합니다.

다음 NumPy 배열을 만드는 것부터 시작해 보겠습니다.

 import numpy as np

#define x and y arrays
x = np. array ([6, 7, 7, 8, 12, 14, 15, 16, 16, 19])

y = np. array ([14, 15, 15, 17, 18, 18, 19, 24, 25, 29])

2단계: 최소 제곱 조정 수행

다음 코드를 사용하여 최소 제곱법을 수행하고 데이터에 가장 잘 맞는 행을 찾을 수 있습니다.

 #perform least squares fitting
n.p. linalg . lstsq (np. vstack ([x, np. ones ( len (x))]). T , y, rcond= None )[ 0 ]

array([0.96938776, 7.76734694])

결과는 최적선의 기울기절편 값을 포함하는 테이블입니다.

결과에서 우리는 다음을 볼 수 있습니다:

  • 경사: 0.969
  • 도루: 7,767

이 두 값을 사용하여 가장 적합한 선에 대한 방정식을 작성할 수 있습니다.

ŷ = 7.767 + 0.969x

3단계: 결과 해석

가장 적합한 선을 해석하는 방법은 다음과 같습니다.

  • x가 0일 때 y의 평균값은 7.767 입니다.
  • x가 1단위 증가할 때마다 y는 평균 0.969 씩 증가합니다.

또한 최적선을 사용하여 x 값을 기반으로 y 값을 예측할 수도 있습니다.

예를 들어 xa의 값이 10이면 y의 값은 17.457이 될 것으로 예측합니다.

  • ŷ = 7.767 + 0.969x
  • ŷ = 7.767 + 0.969(10)
  • ŷ = 17.457

추가 리소스

다음 튜토리얼에서는 NumPy에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

NumPy 배열에서 특정 요소를 제거하는 방법
NumPy 배열에서 최대값 인덱스를 얻는 방법
NumPy 배열을 값으로 채우는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다