- 과거의 데이터를 준비
- 모델의 구조를 만든다.
- 데이터로 모델을 학습(FIT)한다
- 모델을 이용한다.
loss가 0에 가까워질수록 학습이 잘 된 것!
필요한 라이브러리 가져오기
import pandas as pd
import tensorflow as tf
데이터 불러오기
# 1. 데이터 불러오기
lemonade = pd.read_csv("csv/lemonade.csv")
# 독립변수 종속변수
lemonade_x = lemonade[['온도']]
lemonade_y = lemonade[['판매량']]
모델 만들기
# 2. 모델 만들기
# 1 depth layer
# 독립변수 1개 shape= [1]
X = tf.keras.layers.Input(shape=[1])
# 종속변수 1개 Dense(1)
Y = tf.keras.layers.Dense(1)(X)
model = tf.keras.models.Model(X,Y)
model.compile(loss= 'mse')
X = tf.keras.layers.Input(shape=[1])
독립변수가 1개이기 때문에 shape = [1]Y = tf.keras.layers.Dense(1)(X)
종속변수가 1개이기 때문에 shape = [1]mse
사용 (mean squre error)학습하기
epoch
은 전체 데이터를 몇 번 학습할 것인지 verbose =0
으로 지정하면 해당 학습 과정이 프린트 되지 않음예측하기
학습한 모델
에 따라서 예측(결과)값
을 출력독립변수가 여러개인 모형(퍼셉트론)
독립변수
가 여러개
인 것을 확인 가능 shape
과 tail(head)
로 확인하는 습관 들이기shape=[13]
예측하기
가중치
get_weights
를 사용하면 각 변수의 weight(계수)를 알 수 있음bias
종속변수가 연속형 데이터가 아닌 범주형 데이터
One hot encoding - 범주형 데이터-> 확률로 표현
get_dummies
로 one-hot-encoding가능독립변수 : 4개 (['꽃잎길이', '꽃잎폭', '꽃받침길이', '꽃받침폭'])
X = tf.keras.layers.Input(shape=[4])
종속변수 : 3개 (['품종_setosa', '품종_versicolor',
'품종_virginica'])
Y = tf.keras.layers.Dense(3, activation="softmax")(X)
활성함수(activation function)
는softmax
를 사용
loss function -
categorical_crossentrophy
를 사용
인공 신경망에서 입력을 변환하는 함수 - 입력값으로 종속변수의 확률을 추측하는 함수
softmax vs sigmoid
모델 학습
accuracy
로 분류를 몇 %의 정확도로 예측하는 지 확인가능품종_setosa
가 0.7 ~ 0.8로 확률이 가장 크다는 것을 확인할 수 있음각 활성함수는 가중치를 세로의 수로 한다.
예시 ) 품종_setosa = 9.8x1 + 6.9x2 + -6.9x3 + -1.39 x4 + 0.1256(bias)
perceptron를 여러개 연결해서 학습 효과를 향상시킬 수 있음