본문 바로가기

머신러닝

다변수 선형 회귀(Linear Regression Multiple Variables)

반응형

 안녕하세요 '코딩 오페라'블로그를 운영하고 있는 저는 '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', 'bedrooms', 'age'와 'price' 이렇게 4개입니다.

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

 

homeprices2.csv
homeprices2.csv
0.00MB

 

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

reg = LinearRegression()
# regression

reg.fit(df[['area', 'bedrooms', 'age']], df.price)
# area, bedrooms, age에 대한 price데이터를 학습시켜준다.
# x = area, bedrooms, age/ y = price

 

 

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

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

reg.intercept_
#y절편

 

 

 

'. predict'를 이용하여 원하는 area, bedrooms, age에서 price를 예측해 줍니다. 아래의 경우 area = 3000, bedrooms = 3, age = 40 일 때 price = 597200으로 예측됩니다.

reg.predict([[3000, 3, 40]])
# area=3000, bedrooms=3, age=40 일때 price값을 예측

 

array([597200.])

 

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

 

 

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

반응형