728x90
[개발/머신러닝] - [생활코딩/머신러닝 야학] 레모네이드 판매량 예측(1) - pandas |
지도학습 - neural network(신경망)
1. 독립변수와 종속변수를 준비
2. 독립변수를 모델에 넣어주면, 모델은 예측 결과③를 만들어 준다.
3. 이모델이 얼마나 좋은지 평가하기 위해 준비한 실제 정답(종속변수)④과 예측 결과③를 비교해야 한다.
4. 모든 예측③과 정답④을 비교해서, 차이⑤를 구한다.
차이의 제곱을 한 결과를 만들고, 그 결과들의 평균을 구하면 그 값이 [Loss]
예측이 정답을 모두 맞히고 있으면, 그 차이 값은 0이 된다.(loss값=0)
loss가 0에 가까워질수록 학습이 잘 된 모델이라 할 수 있다.
[epochs 한 번마다 모든 데이터에 대해 예측 결과를 내고, loss의 평균을 구함]
※매 epochs마다 loss가 0에 가까워지고 있는지 확인 것이 중요하다.
loss가 원하는 수준으로 떨어질 때까지 반복해서 학습을 시키면 된다.
epochs | loss |
전체 데이터를 몇번반고하여 학습할 것인지를 결정해 주는 숫자(학습 횟수) | - loss가 0에 가까울수록 얼마나 정답에 가까이 맞추고있는지, 평가하는 지표 - loss값을 보면서 0에 가까워 지고있는지, 반복학습(fit)을 해야한다. - (예측값-결과값)^2 의 평균값 |
실습
10,100번 학습하다가 loss가 낮아 100000번 학습시켰다.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 라이브러리 사용
import tensorflow as tf # pip install --upgrade tensorflow
import pandas as pd # pip install pandas
#1. 과거의 데이터 준비
lemonade = pd.read_csv('https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/lemonade.csv')
print('lemonade head = {}',lemonade.head)
independent_var = lemonade[['온도']] # 독립변수
dependent_var = lemonade[['판매량']] # 종속변수
print('lemonade의 독립변수 = {}, 종속변수 = {}\n'.format(independent_var.shape ,dependent_var.shape))
#2. 모델의 구조를 만듬(모델생성)
# 모델구조 만들 때, 독립,종속변수의 개수가 중요하다 - 독립(x),종속(y)
X = tf.keras.layers.Input(shape=[1]) # 1 = 독립변수의 컬럼개수
Y = tf.keras.layers.Dense(1)(X) # 1 = 종속변수의 컬럼개수
model = tf.keras.models.Model(X, Y) # 모델 생성
model.compile(loss='mse') # 모델이 학습할 방법
# 3. 데이터로 모델을 학습(FIT)
# - 학습이 얼마나 진행되었는지(정답에 가까워 지었는지 평가)
# - 학습을 많이 할수록 정답에 가까움
model.fit(independent_var, dependent_var, epochs=10) # epochs = 전체 데이터를 몇번반고하여 학습할 것인지를 결정해 주는 숫자
# 100000번 학습
model.fit(independent_var, dependent_var, epochs=100000, verbose=0) # verbose =0 출력(로그) 표시안함
# 4. 모델을 이용
print(model.predict(independent_var)) # 독립변수 예측값 확인
print(dependent_var) # 종속변수결과 출력하여 예측한 값이 맞는 지 확인
print(model.predict([[15]])) # 독립변수 값으로 15 입력 후, 예측 값 확인
728x90
'개발 > 머신러닝' 카테고리의 다른 글
[생활코딩/머신러닝야학] 아이리스 품종 분류 (0) | 2021.01.13 |
---|---|
[생활코딩/머신러닝야학] 보스턴 집값 예측 (0) | 2021.01.12 |
[생활코딩/머신러닝야학] 레몬네이드 판매량 예측(1) - pandas (0) | 2021.01.11 |
[생활코딩/머신러닝야학] 머신러닝의 분류 (0) | 2021.01.08 |
[생활코딩/머신러닝야학] 독립변수? 종속변수? (0) | 2021.01.08 |