ML_Regression

이병찬·2024년 3월 15일

ML

목록 보기
9/14

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

1차 함수 가정

선형회귀

OLS : Ordinary Linear Least Square

statsmodels설치 및 예시 데이터

# !pip install statsmodels

import pandas as pd

data = {'x' : [1, 2, 3, 4, 5,], 'y' : [1, 3, 4, 6, 5]}
df = pd.DataFrame(data)
df

가설 및 결과 : statsmodels.formula.api

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

profile
비전공 데이터 분석가 도전

0개의 댓글