본문 바로가기

머신러닝

단변수 선형 회귀(Linear Regression Single Variable)

반응형

 안녕하세요 '코딩 오페라'블로그를 운영하고 있는 저는 'Conducter'입니다.

오늘 알아볼 내용은 단변수 선형 회귀입니다.

 

선형 회귀(linear regression) : 종속 변수 y와 한 개 이상의 독립 변수(또는 설명 변수) X와의 선형 상관관계를 모델링하는 회귀분석  기법이다. 한 개의 설명 변수에 기반한 경우에는 단순 선형 회귀(simple linear regression), 둘 이상의 설명 변수에 기반한 경우에는 다중 선형 회귀라고 한다.

 

위에서 알아본 선형 회귀의 종류 중 단변수 선형 회귀는 말 그대로 변수가 하나인 선형 회귀입니다. 

그러면 지금부터 예를 들어 설명하겠습니다.

 

먼저 아래와 같이 기본 라이브러리들을 불러줍니다.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# 머신러닝 분석에 유용한 라이브러리

 

 

pd.read_csv 함수를 사용하여 csv 파일을 불러옵니다. 이 예제의 경우 집의 면적에 따른 집값을 비교하고 예측하는 알고리즘입니다. 따라서 변수는 'area'와 'price' 이렇게 2개입니다.

df = pd.read_csv("homeprices.csv")
# data frame
# csv파일을 읽어온다.

 

homeprices.csv
homeprices.csv
0.00MB

 

 

LinearRegression 함수의 '. fit'을 이용하여 area와 price를 학습시켜 줍니다. 이때 df[['area']]를 하는 이유는 x데이터가 여러 개 이므로 [[x1], [x2],...]식으로 만들어주기 위해서입니다.

reg = LinearRegression()
# regression

reg.fit(df[['area']], df.price)
# area, price데이터를 학습시켜준다.

 

 

'. predict'를 이용하여 원하는 area에서 price를 예측해 줍니다. 아래의 경우 area = 3300일 때 price = 628715로 예측됩니다.

reg.predict([[3300]])
# area=3300일때 price값을 예측

 

array([628715.75342466])

 

 

추가적으로 선형 예측된 모델의 기울기와 y절편을 구하고 싶으면 아래의 함수를 사용하면 됩니다.

reg.coef_
#기울기, y = m*x + b

reg.intercept_
#y절편

 

 

마지막으로 이를 그림을 그려주면 다음과 같습니다.

plt.scatter(df.area, df.price, color='red', marker='+')
plt.xlabel('area', size=20)
plt.ylabel('price', size=20)
plt.plot(df.area, reg.predict(df[['area']]), color='blue')

 

여기서 빨간 점은 실제 데이터, 파란선은 예측값들입니다. 보시다시피 잘 예측이 된 모습을 보이고 있습니다.

 

 오늘은 단변수 선형 회귀에 대해 알아보았습니다. 도움이 되셨나요? 만약 되셨다면 구독 및 좋아요로 표현해 주시면 정말 많은 힘이 됩니다. 저는 '코딩 오페라''Conductor'였습니다. 감사합니다. 

 

 

<출처 및 참고 : 위키백과, code basics>

반응형