[tensorflow] 레모네이드 판매량 예측하기

seovalue·2020년 8월 13일
0

tensorflow

목록 보기
1/1
post-thumbnail

레모네이드🍋 판매량 예측하기

과정 및 모든 코드는 오픈튜토리얼스에서 진행하는 머신러닝 야학 수업 내용을 정리한 노트입니다. 강의는 youtubeopentutorials 에서 확인하실 수 있습니다. 8월 13일부터 10일간 진행하는 머신러닝 야학에도 참여하실 수 있습니다! 😊

과정

  1. 데이터를 읽어오고, 독립변수와 종속변수를 분리합니다.
  2. 가장 간단한 모델을 만들어봅니다. 주어진 독립변수의 개수는 "온도"라는 1가지의 칼럼이므로 layers.Input(shape=[1])의 shape에 1을 넣습니다.
    또한 종속변수의 개수도 하나이므로, 마찬가지로 layers.Dense(1)(X)의 dense에 1을 넣습니다.
  3. 데이터로 모델을 학습합니다.
    model.fit(독립, 종속, epochs=1000)
    여기서 epochs는 1000번을 학습하라는 의미입니다.

손실, Loss

독립변수를 모델에 넣어주면, 모델은 예측 결과를 알려줍니다. 우리는 실제 값과 예측의 차의 제곱을 통해 얼마나 의미있는 결과인지 확인할 수 있습니다.

Code

라이브러리 사용하기

import tensorflow as tf
import pandas as pd

데이터 준비

path = [url]('https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/lemonade.csv')
data = pd.read_csv(path)
data.head()

종속변수와 독립변수 분리

dep = data[['온도']]
indep = data[['판매량']]
print(dep.shape, indep.shape)

모델 만들기

X = tf.keras.layers.Input(shape=[1])
Y = tf.keras.layers.Dense(1)(X)
model = tf.keras.models.Model(X,Y)
model.compile(loss='mse')

모델 학습하기

  • verbose를 넣으면 화면 출력을 하지 않음
model.fit(dep,indep,epochs=10000, verbose = 0)
model.fit(dep,indep,epochs=10) #위 verbose로 loss를 확인하지 못했으므로, 테스트로 10번 더 돌려봄

모델을 이용합니다.

model.predict(dep)

이제, 온도를 넣으면 몇 개의 레모네이드를 준비해야하는 지 알 수 있습니다.

input_value = 15
value = list(model.predict([input_value]))[0]
print("내일이 만약 " + str(input_value)+"도라면, "+str(value[0])+"개의 레모네이드를 준비해야해요!")
profile
도전을 좋아하고 호기심이 많아 시작하는 것을 좋아합니다 :-)

0개의 댓글