본문 바로가기
프로그래밍/머신러닝

Tensorflow4

by zerosin13 2020. 9. 22.

[회귀]
회귀는 데이터 분석 방법중 하나이다.

평균으로 회귀는 부모의 키 평균과 자녀의 키 평균을 비교하면 자녀의 키는 부모의 키보다 평균에 가까워지려는, 경향이 있다.

 

선형회귀는 데이터의 경향성을 가장 잘 설명하는 하나의 직선을 예측하는 방법

 

데이터의 경향성을 가장 잘 설명하는 하나의 직선과 각 데이터의 차이를 잔차라고 한다. 이런 잔차의 제곱을 최소화하는 알고리즘을 최소제곱이라고 한다.

 

최소 제곱법으로 직선 y=ax+b 의 a(기울기)와 b(y절편)을 구할 수 있다.

 

plt에서 최소 제곱법을 구하는 방식은

a=sum([(y - y_bar) * (x - x_bar) for y, x in list(zip(Y, X))])

a /= sum([x-x_bar) ** 2 for x in X])

b = y_bar - a * x_bar

print( 'a:', a, 'b:', b)

 

로 구할수 있다.

 

최소제곱법으로 a,b 를 구하는 부분에서는 두 개 이상의 리스트를 하나로 묶는 list(zip(list_1, list_2))기법을 사용할수 있다.

 

a=tf.Variable(random.random())

b=tf.Variable(random.random())

랜덤한 값으로 초기화

 

def compute_loss():

    y_pred = a* X +b

    loss = tf.reduce_mean((Y - y_pred) **2)

    return loss

잔차의 제곱의 평균을 반환하는 함수

 

optimizer = tf.optimizers.Adam(lr=0.07)

최적화 함수(optimizer)는 이 과정(복잡한 미분 계산 및 가중치 업데이트)을 자동으로 진행해주는 도구.

'프로그래밍 > 머신러닝' 카테고리의 다른 글

Tensorflow5  (0) 2020.09.25
Tensorflow3  (0) 2020.09.21
Tensorflow2  (0) 2020.09.17
Tensorflow1  (0) 2020.09.15

댓글