TIL

240813 선형회귀(숫자예측) 하는 방법

승따리 2024. 8. 13. 18:16

선형회귀를 하기 위한 방법

 

 

라이브러리 설치

!pip install sklearn
!pip install numpy
!pip install pandad
!pip install matplotlib
!pip instal seaborn

 

 Import

import sklearn
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

 

설치되어 있는지 확인하는 방법

  • (예시) import pandas as pd
               pd.__version__

데이터 확인

  • pd.DataFrame 을 통해 활용 가능한 데이터프레임 형태로 정의를 해야함
  • (예시)
    weights=[87,81,82,92,90,61,86,66,69,69]
    heights=[187,174,179,192,188,160,179,168,168,174]
    body_df=pd.DataFrame({'height': heights,'weight':weights})
     

선형회귀를 위한 데이터 인코딩

from sklearn.linear_model import LinearRegression
model_lr=LinearRegression()

 

선형회귀를 위한 데이터 훈련

model_lr.fit(X=x,y=y)

 

선형회귀식에서 계수(가중치) 와 편향( y절편) 확인

#가중치(w1)
	print(model_lr.coef_)
#편향(w0)
	print(model_lr.intercept_)

 

선형회귀식을 이용한 예측값 만들기

body_df['pred'] = body_df['weight']*w1+w0

 

선형회귀식을 이용한 에러 만들기

body_df['error']=body_df['height']-body_df['pred']

 

선형회귀식을 MSE 만들기

body_df['error^2']=body_df['error']*body_df['error']

body_df['error^2'].sum()/len(body_df)

 

 

패키지를 활용한 mean_squared_error 및 r2_score 계산

from sklearn.metrics import mean_squared_error, r2_score

y_true=body_df['height']
y_pred=body_df['pred']



mean_squared_error(y_true,y_pred)
r2_score(y_true,y_pred)