-
728x90
실습
텐서 플로우를 활용하여 아래 데이터를 모델로 하루 노동 시간이 8시간일 때 일 매출량을 예측해보자
import tensorflow.compat.v1 as tf tf.disable_v2_behavior() # 신버전 사용시 에러코드 발생 하기 때문에 설정해준다. xData = [1,2,3,4,5,6,7] yData = [25000, 55000, 75000, 110000, 128000, 155000, 180000] #W는 Weight(가중치), b는 bias y절편 #random_unifrom은 랜덤한 값으로 -x ~~ x까지의 수가 들어가는 함수 W = tf.Variable(tf.random_uniform([1], -100, 100)) b = tf.Variable(tf.random_uniform([1], -100, 100)) # 가장 대표적인 형태인 placeholder == 하나의 틀 X = tf.placeholder(tf.float32) Y = tf.placeholder(tf.float32) # 하나의 가설식 H H = W*X + b #비용함수 코스트는 (이상치-실제값)의 제곱의 평균 # reduce_mean : 평균값 구하기 square : 제곱 cost = tf.reduce_mean(tf.square(H-Y)) #경사 하강 알고리즘 정의, 한번에 얼만큼 점프할건지. step의 크기. a = tf.Variable(0.01) optimizer = tf.train.GradientDescentOptimizer(a) # 정의한 비용 함수 optimizer를 가장 적은 값이 나올 수 있도록 만들어준다. train = optimizer.minimize(cost) #변수 초기화 init = tf.global_variables_initializer() # 세션 정하기 우리가 만든 텐서플로우 객체에서 세션을 가져와 정해준다. sess = tf.Session() # 초기화 sess.run(init) # 실제 학습 진행 # 반복 횟수는 총 5000 for i in range(5001): sess.run(train, feed_dict = {X : xData, Y : yData}) # 오백번에 한 번씩 과정을 볼 수 있도록 설정 if i & 500 ==0: print(i, sess.run(cost, feed_dict = {X:xData, Y:yData}), sess.run(W)) # x가 8일 경우 결과 값을 예측하여 나오도록 만듬 print (sess.run(H, feed_dict={X : [8]}))
# 결과 0 4587030000.0 [10375.747] 500 8688367.0 [25536.295] 1000 8633836.0 [25627.328] 1500 8632677.0 [25640.592] 2000 8632651.0 [25642.527] 2500 8632653.0 [25642.805] 3000 8632656.0 [25642.844] 3500 8632657.0 [25642.848] 4000 8632657.0 [25642.848] 4500 8632657.0 [25642.848] 5000 8632657.0 [25642.848] [206571.39]
복잡한 과정을 5000천 반복해 얻은 값은 8632657.0 [25642.848]이고 이를 식에 대입해 8일로 계산을 하게 되면
일 매출은 [206571.39] 을 받을 수 있다는 걸 확인할 수 있었다.
사람이 실제로 계산한다면 상당히 번거러운 일이었겠지만, 기계 학습을 통해 비교적 간단하게 값을 반환받고
이를 일상에 대입하여 사용할 수 있는 것이다.
https://www.youtube.com/watch?v=bttjuId61dw&list=PLRx0vPvlEmdAbnmLH9yh03cw9UQU_o7PO&index=4
youtube 동빈나님 'NAN > 머신 러닝' 카테고리의 다른 글
KNN 간단 예제_1 (0) 2021.07.09 K 평균(K Means) 실습 (0) 2021.07.08 세션 Session (0) 2021.07.08 Function (0) 2021.07.08 Placeholder (0) 2021.07.08