만약 주택의 넓이와 가격이라는 데이터가 있을 때 주택 가격을 예측한다면?

1차 함수 가정


선형회귀


OLS : Ordinary Linear Least Square
statsmodels설치 및 예시 데이터
import pandas as pd
data = {'x' : [1, 2, 3, 4, 5,], 'y' : [1, 3, 4, 6, 5]}
df = pd.DataFrame(data)
df

import statsmodels.formula.api as smf
lm_model = smf.ols(formula = 'y~x', data=df).fit()
- lm = linear regressison
- statsmodels.formula.api 의 ols(Ordinary Least Squares, 선형회기분석) 기법 사용
- formula = 'y~x' : y = ax + b라는 의미를 내포하고 있음
- fit() : 훈련해라
lm_model.params
import matplotlib.pyplot as plt
import seaborn as sns
sns.lmplot(x='x', y='y', data = df)
- Intercept : y절편
- x = 기울기

잔차 평가 residue
- 잔차 : 만든 모델과 실제값과의 차이
- 잔차는 평균이 0인 정규분포를 따라야 함 -> 회귀한다는 의미
- 잔차 평가 : 잔차의 평균이 0이고 정규분포를 따르는지 확인

결정계수(R-Squared)
- 회귀모델에서 예측값이 참값을 얼마만큼 설명해주는지를 가르키는 지표, 회귀모델의 성과 지표
- 1에 가까울 수록 좋은 회귀 모델, 0에 가까울 수록 나쁜 모델

import numpy as np
mu = np.mean(df.y)
y = df.y
yhat = lm_model.predict()
np.sum((yhat - mu)**2) / np.sum((y-mu)**2)
lm_model.rsquared
