[zerobase_데이터 취업스쿨_스터디노트] 44. Basic of Regression -OLS

김소희·2024년 1월 30일
0

study_note

목록 보기
45/50


실습

import pandas as pd

data = {'x':[1,2,3,4,5] ,
        'y':[1,3,4,6,5]}

df = pd.DataFrame(data)

df

데이터프레임을 하나 만들어준다.
전통적인 회귀분석모형을 구축하고 평가하기 위해서는 파이썬 라이브러리 statsmodels을 이용할 수 있음
OLS 회귀분석 모델

import statsmodels.formula.api as smf

lm_model = smf.ols(formula='y ~x', data=df).fit()

statsmodel.formula에 ols라는 모델을 사용해서
학습을 시켜준다.

lm_model.params

사용방법
-> statsmodels.formula.api. ols
( 공식 , 데이터 ,
하위 집합 =None ,
drop_cols =None ,
* args ,
** kwargs

y절편과 x기울기를 알려준다.

Intercept 0.5
x 1.1
dtype: float64

[참고링크 http://bigdata.dongguk.ac.kr/lectures/AI/_book/%ED%9A%8C%EA%B7%80%EB%B6%84%EC%84%9D-regression-analysis.html
import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(12,6))
sns.lmplot(x='x', y='y', data=df)
plt.xlim([0,5])

잔차평가

# 잔차 평가 (residue)

resid =lm_model.resid
resid

0 -0.6
1 0.3
2 0.2
3 1.1
4 -1.0
dtype: float64

결정계수

: 예측값에서 평균을 뺀 제곱값들의 합

# 결정계수 (R- Squared)

import numpy as np

mu = np.mean(df['y'])
y = df['y']
y_hat = lm_model.predict()
np.sum( (y_hat-mu)**2 / np.sum( (y-mu)**2) )

잔차 시각화

sns.distplot(resid, color='black')

*distplot 은 곧 없어진다고 한다..
조만간 이를 대체하는 것을 찾아봐야 할 것 같다.

profile
AI 개발자로 가는 길 두렵지 않아요

0개의 댓글