240516 Today I Learn
seaborn으로 회귀 그래프 그리기
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
'📒 Today I Learn > 🐍 Python' 카테고리의 다른 글
[데이터 전처리] 이상치 및 결측치 처리 (0) | 2024.05.31 |
---|---|
[데이터 시각화] 파이썬으로 그래프 꾸미기 : 한글 폰트 적용하기, 그래프 눈금 조정하기, 눈금 서식 적용하기 (0) | 2024.05.27 |
[데이터 시각화] 파이썬으로 그래프 그리기 : seaborn (2) 회귀 그래프, 히트맵 그리기 (0) | 2024.05.16 |
[데이터 시각화] 파이썬으로 그래프 그리기 : seaborn (1) 기본 그래프 (0) | 2024.05.16 |
[개인 과제] 아이리스 문제풀이 (1) (0) | 2024.05.16 |