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 배열을 값으로 채우는 방법