스터디📖/ML, DL

Tensorflow (python) - 7, 8, 9강 첫번째 딥러닝 - 레모네이드 판매 예측

호프 2021. 8. 24. 12:37

https://opentutorials.org/course/4570/28974

 

첫번째 딥러닝 - 레모네이드 판매 예측 - 생활코딩

수업소개 레모네이드 판매량을 예측하는 딥러닝 모델을 텐서플로우를 이용하여 만들어 봅니다.  강의  손실의 의미  실습  소스코드 colab |  backend.ai ########################### # 라이브러리 사용 i

opentutorials.org

7강 레모네이드 판매 예측

지도학습의 과정

  1. 과거의 데이터를 준비
    레모네이드 = pd.read_csv('lemonade.csv')
    독립 = 레모네이드[['온도']]
    종속 = 레모네이드[['판매량']]
    print(독립.shape, 종속.shape)
  2. 모델의 구조 만들기 --> 이 코드가 핵심
    X = tf.keras.layers.Input(shape[1]) 
    #독립변수의 개수가 온도라는 칼럼 하나이기 때문에 shape[1]
    Y = tk.keras.layers.Dense(1)(X)
    #종속변수의 개수가 판매량 하나이기 때문에 Dense(1)
    model = tf.keras.models.Model(X, Y)
    model.compile(loss='mse')
  3. 데이터로 모델을 학습(FIT)
    model.fit(독립, 종속, epochs=1000)
    #epoch: 전체 데이터를 몇번 반복하여 학습할 것인지 결정
  4. 만들어진 모델 이용
    print("Predictions: ", model.predict([[15]]))
     

 

8강 손실의 의미

Loss

파란 부분: 이번 학습이 몇 번째 학습인지 알려주는 부분
주황색 부분: 각 학습마다 얼마의 시간이 걸렸는지 알려주는 부분
초록 부분: 학습이 얼마나 진행되었는지 알려주는 부분. 각 학습이 끝날 때마다 그 시점에 모델이 얼마나 정답에 가까이 맞추고 있는지 평가하는 지표. 학습이 진행되면 될수록 점점 더 정확하게 정답을 맞추게 됨. --> loss

 

독립변수를 모델에 넣어주면 모델이 예측 결과를 만들어줌
-> 이 예측 결과를 실제 정답인 종속변수와 비교해야 함.
-> 그 차이의 제곱을 한 결과(예측 - 결과)^2의 평균이 바로 loss
-> loss가 0에 가까울수록 학습이 잘 된 결과. loss가 원하는 수준으로 떨어질 때까지 학습을 시켜야 함.

 

9강 레모네이드 판매 예측(실습)

###########################
# 라이브러리 사용
import tensorflow as tf
import pandas as pd

###########################
# 데이터를 준비합니다.
파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/lemonade.csv'
레모네이드 = pd.read_csv(파일경로)
레모네이드.head()
# 종속변수, 독립변수
독립 = 레모네이드[['온도']]
종속 = 레모네이드[['판매량']]
print(독립.shape, 종속.shape)

###########################
# 모델을 만듭니다. 가장 간단한 형태의 모델을 뉴럴넷으로 구성(뇌세포 하나만으로 모델을 만든 것)
X = tf.keras.layers.Input(shape=[1]) #input layer를 만드는 부분
Y = tf.keras.layers.Dense(1)(X) #dense layer를 만드는 부분
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse') #모델이 학습할 방법을 정해주는 것

###########################
# 모델을 학습시킵니다. 
model.fit(독립, 종속, epochs=1000, verbose=0) #verbose=0 : 화면 출력을 하지 않도록
model.fit(독립, 종속, epochs=10) #학습 결과 확인용

###########################
# 모델을 이용합니다. 
print(model.predict(독립)) #우리가 준비한 독립변수를 넣어서 종속변수의 정답과 가까이 정답을 맞추는 지 확인
print(model.predict([[15]])) #15도일때 몇개의 레모네이드를 준비해야 하는지 예측