ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 실습
    NAN/머신 러닝 2021. 7. 8. 22:46
    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
Designed by Tistory.