레모네이드 판매량 예측
import pandas as pd
레모네이드 = pd.read_csv('lemonade.csv')
레모네이드

import tensorflow as tf
import pandas as pd
# 데이터 준비
레모네이드 = pd.read_csv('lemonade.csv')
독립 = 레모네이드[['온도']]
종속 = 레모네이드[['판매량']]
print(독립.shape, 종속.shape)

# 모델 준비
X = tf.keras.layers.Input(shape = [1])
Y = tf.keras.layers.Dense(1)(X)
model = tf.keras.Model(X, Y)
model.compile(loss = 'mse')
X = tf.keras.Input(shape = [1]) 로도 나타낼 수 있다. 최신 tensorflow에서 간단해졌다.
tf.keras.Model(X,Y)도 원래는 tf.keras.models.Model(X,Y) 였다고 한다.
# 데이터로 모델 학습
model.fit(독립, 종속, epochs = 1000)

학습을 쭉 진행한다. 'epochs' 값을 1000을 줬으므로 1000번 학습을 진행한다.
눈 여겨 볼 점은 loss 값이 계속 작아지고 있는 것이 보인다.
언제까지 학습할까? loss가 더 이상 낮아지지 않을 때까지 학습한다.
loss가 낮을 수록 좋다!

model.predict([[15]])

온도가 15일 때 예측을 해보면 30.928593이 나온다.
model.get_weights()

get_weights() 함수를 사용하면 w(weight)와 b(bias) 값을 얻을 수 있다.
이를 통하여 찾은 모델을 나타낼 수 있다.
온도 = 15
판매량 = 1.8796842 * 온도 + 2.7333307
판매량

온도가 15일 때 판매량을 출력해보면 30.9285937이 나온다.
loss란 무엇인가.
주어진 데이터를 통해 모델은 예측을 한다.
만약 판매량의 실제 데이터가 [40, 42, 44, 46] 이었는데 예측 값은 [35. 40, 45, 50] 이 나왔다면 (예측값 - 실제값)을 Error라고 한다. Error는 [-5 -2 1 4] 가 된다. 이 Error의 제곱의 합의 평균(mse)이 loss다.
학습시킬 때 loss가 작아질 때까지 하는 이유가 여기있다.
loss가 작을 수록 Error가 작은 것이므로 더 완벽하게 학습되었다고 생각할 수 있겠다.
'AI' 카테고리의 다른 글
[Machine Learning] 기본 정리 (0) | 2023.10.12 |
---|---|
[Machine Learning] Machine Learning (0) | 2023.10.11 |
[Deep Learning] 딥러닝 히든레이어 (0) | 2023.09.05 |
[Deep Learning] 아이리스 품종 분류, 원핫인코딩, 활성화함수 (0) | 2023.09.05 |
[Deep Learning] 딥러닝 보스턴 집값 예측, 퍼셉트론 (0) | 2023.09.04 |
댓글