티스토리 뷰

반응형

선형회귀

회귀 분석이란 하나 이상의 독립변수들이 종속변수에 미치는 영향을 추정하는 통계 기법이다. 그 중에서도 단순선형회귀(simple linear regression) 모형은 하나의 X가 Y에 미치는 영향을 추정하며 1차 함수 관계로 나타낼 수 있다.

y = ax + b

중학교 수학 시간에 배운 1차 함수식을 떠올려 보자, 1차 함수식의 X는 독립변수, Y는 종속변수다. 1차 함수식의 a는 기울기, b는 절편이라고 부른다. 기울기 a는 일차 함수 그래프의 기울기를 결정하고 절편 b는 그래프의 높낮이를 결정한다.
이번에는 텐서플로 케라스를 활용하여 단순선형 회귀 모델을 직접 만들고 딥러닝을 학습한다. 이때 모델은 1차 함수식과 동일하다고 생각하면 된다.
모델의 기울기 a와 절편 b를 업데이트하면서 종속변수 Y에 가장 근사한 1차 함수식을 완성해 나간다. 딥러닝에서는 기울기 a 대신 가중치(weight)를 의미하는 w를 더 많이 사용한다. 따라서 앞으로 1차 함수식을 다음과 같이 정의하도록 한다.

y = wx + b

기울기 a의 표기만 w로 변경한 것이다. w는 가중치(weight)의 w이고, b는 편향(bias)의 b를 나타낸다.

그럼 이와 같이 1차 회귀식을 파이썬 tensorflow 와 keras를 이용한다면 다음과 같이 딥러닝 신경망 계산식을 만들 수 있다.

 

# 딥러닝 패키지 불러오기
import tensorflow as tf

# 1차회귀식이 y=3x+2이고
# 입력데이터 x는 
x =[1,2,3,4,5] #이고
# 출력 데이터 y는 
y =[5,8,11,14,17] #일때

# 모델 정의
model =tf.keras.sequencial()

# 입력변수 x가 1개이고 출력변수 y가 1개 일때
model.add(tf.keras.layer.Dense(1. input_shape(1,)))

# 모델 개발
model.compile(optimizer="sgd", loss="mse", metrics=["mae"])

# 모델 학습
model.fit(x,y, epoch=100)

# 모델 평가
model.evaluate(x, y)

# 모델 예측
model.predit([10])
반응형
댓글