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)))
In [ ]:
'AI > Deep Learning' 카테고리의 다른 글
딥러닝: 04. Logistic Classification(로지스틱 회귀) (0) | 2019.07.30 |
---|---|
딥러닝: 03. 다중 선형 회귀(Multi Variable linear regression) (0) | 2019.07.30 |
딥러닝: 02. 경사하강법(Gradient descent algorithm) (0) | 2019.07.30 |
딥러닝 : 01. Tensorflow의 정의 (0) | 2019.07.26 |
titanic : Machine Learning from Disaster - kaggle 연습 (0) | 2019.07.23 |
댓글