본문 바로가기
ML.DL

Basic of Regression -OLS

by somoony 2025. 1. 13.

 

실습

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 은 곧 없어진다고 한다..
조만간 이를 대체하는 것을 찾아봐야 할 것 같다.

'ML.DL' 카테고리의 다른 글

머신러닝을 이용한 생존자예측 - titanic  (1) 2025.01.13
Min-Max-Scaler  (1) 2025.01.13
Logistic Regression  (0) 2025.01.13
정밀도와 재현율  (2) 2025.01.13
앙상블 기법  (2) 2025.01.13