본문 바로가기
AI/Deep Learning

딥러닝 : 로지스틱 회귀 코딩

by KIha_Jung 2019. 7. 25.
logistic_regression

1.로지스틱 회귀의 정의

참과 거짓 중 하나를 내놓는 과정.
ex) 점수가 아닌 오직 합격과 불합격만 발표되는 시험의 경우

In [15]:
import tensorflow as tf
import numpy as np

# 공부시간과 합격(0,1) 데이터
data = [[2,0], [4,0], [6,0], [8,1], [10,1], [12,1], [14,1]]
x_data = [x_row[0] for x_row in data]
y_data = [y_row[1] for y_row in data]
In [16]:
# a,b의 값을 임의로 정해준다.
a = tf.Variable(tf.random_normal([1], dtype=tf.float64, seed = 0))
b = tf.Variable(tf.random_normal([1], dtype=tf.float64, seed = 0))
In [17]:
# 시그모이드 함수
y = 1/(1 + np.e**(a * x_data + b))
In [18]:
loss = -tf.reduce_mean(np.array(y_data) * tf.log(y) + (1 - np.array(y_data)) * tf.log(1 - y))
In [19]:
# 학습률을 지정하고 경사 하강법을 이용해 오차를 최소로 하는 값을 찾는다.
learning_rate = 0.5
gradient_decent = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)

텐서플로는 seesion 함수를 이용해 구동에 필요한 리소스를 컴퓨터에 할당하고 이를 실행시킬 주비를 합니다. Session을 통해 구현될 함수를 텐서플로에서는 '그래프'라고 부르며, Session이 할당되면 session.run('그래프명')의 형식으로 해당 함수를 구동시킵니다. global_variables_initializer() 는 변수를 초기화 하는 함수입니다

In [20]:
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    
    for i in range(60001):
        sess.run(gradient_decent)
        if i%6000 == 0:
            print("Epoch: %.f, loss = %.4f, 기울기 a = %.4f, 바이어스 b = %.4f" % (i, sess.run(loss), sess.run(a), sess.run(b)))
Epoch: 0, loss = 1.2676, 기울기 a = 0.1849, 바이어스 b = -0.4334
Epoch: 6000, loss = 0.0152, 기울기 a = -2.9211, 바이어스 b = 20.2983
Epoch: 12000, loss = 0.0081, 기울기 a = -3.5638, 바이어스 b = 24.8011
Epoch: 18000, loss = 0.0055, 기울기 a = -3.9557, 바이어스 b = 27.5464
Epoch: 24000, loss = 0.0041, 기울기 a = -4.2380, 바이어스 b = 29.5232
Epoch: 30000, loss = 0.0033, 기울기 a = -4.4586, 바이어스 b = 31.0676
Epoch: 36000, loss = 0.0028, 기울기 a = -4.6396, 바이어스 b = 32.3346
Epoch: 42000, loss = 0.0024, 기울기 a = -4.7930, 바이어스 b = 33.4087
Epoch: 48000, loss = 0.0021, 기울기 a = -4.9261, 바이어스 b = 34.3406
Epoch: 54000, loss = 0.0019, 기울기 a = -5.0436, 바이어스 b = 35.1636
Epoch: 60000, loss = 0.0017, 기울기 a = -5.1489, 바이어스 b = 35.9005
In [ ]:
 

댓글