📒 Today I Learn/🐍 Python

[데이터 시각화] 파이썬으로 그래프 그리기 : seaborn (3) 회귀 그래프에 회귀식 추가하기 (+numpy)

ny:D 2024. 5. 16. 21:46

240516 Today I Learn

 

seaborn으로 회귀 그래프 그리기

 

[데이터 시각화] 파이썬으로 그래프 그리기 : seaborn (2) 회귀 그래프, 히트맵 그리기

240516 Today I LearnRegression Plotregplot💡regplotsns.regplot(data=데이터프레임, x = "x축에 들어갈 데이터", y = "y축에 들어갈 데이터")scatterplot와 lineplot을 합쳐놓은 그래프lineplot은 scatterplot의 경향성을 예측

archivenyc.tistory.com

sns.lmplot(data=tips,x='total_bill',y='tip')
plt.title('total_bill - tip Regression')

회귀식 그리기

💡 polyfit
평균 제곱 오차를 최소화하는 coefficients를 벡터 형태로 순차 반환하는 함수
np.ployfit(x, y, deg=항수)

회귀식을 그리기 위해서는 numpy에 있는 polyfit을 활용할 수 있다.

1. numpy 패키지를 이용하기 위해 numpy 패키지를 먼저 불러와준다.

import numpy as np

2. polyfit을 이용해 절편과 기울기를 구해준다.

z=np.polyfit(tips['total_bill'], tips['tip'],1)
print(f"y = {round(z[0],2)}x + {round(z[1],2)}")

## y = 0.11x + 0.92
  • polyfit을 이용하면 0번째에는 기울기값이, 1번째에는 절편값이 들어있는 array가 반환된다.
  • 회귀식을 print하기 위해서는 f-string 포맷팅을 위와 같이 활용하면 좋다.

3. 회귀 그래프 위에 회귀식 붙여넣기

 

sns.lmplot(data=tips,x='total_bill',y='tip')
plt.title('total_bill - tip Regression')
plt.text(x=5, y = 9, s=f"y = {round(z[0],2)}x + {round(z[1],2)}", color = 'red')
  • plt.text를 이용하면 텍스트가 표현될 x와 y의 좌표를 찍어줘야한다.

+ 회귀식 계산하기

numpy의 poly1d를 사용하면 회귀식을 계산하는 함수를 만들 수 있다.

💡 poly1d
입력 배열을 항으로 간주하여 다항식을 생성하는 numpy 함수로 다항식을 계산하는데 사용된다.
np.poly1d(입력 배열, 근 설정, 변수명)
f = np.poly1d(z)
f(10)

## 1.9705147873982058
  • 위에서 계산한 회귀식 z는 아래와 같이 수식으로 표현할 수 있다.
    → y = 0.10502452x + 0.92026961 
  • 수식에 값을 넣어서 실제로 계산해보면 다음과 같이 f(10)과 동일한 값이 나온다.
    → 10*0.10502452 + 0.92026961 = 1.97051481