단순 선형 회귀 예제 (케라스)
글. 오상문 sualchi@daum.net
앞에서 텐서플로우2를 이용한 예제를 케라스 예제로 변경한 것입니다.
# 단수 선형 회귀 예제 (케라스)
import numpy as np
import keras as k
# 훈련용 데이터
x_train = [1,2,3,4] # 입력
y_train = [1,2,3,4] # 결과
# 모델 생성
model = k.models.Sequential()
# 입력 값은 1차원 자료: input_dim=1
model.add(k.layers.Dense(1, input_dim=1))
# 최적화 방식
sgd = k.optimizers.SGD(lr=0.01)
# cost/loss 함수로 컴파일 작업
model.compile(loss='mean_squared_error', optimizer=sgd)
# 훈련
model.fit(x_train, y_train, epochs=100) # 100번 반복 훈련
# 테스트
print(model.predict(np.array([5]))) # 입력이 5일 때 결과값 출력
[결과]
Epoch 1/100
4/4 [==============================] - 0s 20ms/step - loss: 3.2570
Epoch 2/100
4/4 [==============================] - 0s 749us/step - loss: 2.2620
Epoch 3/100
4/4 [==============================] - 0s 1ms/step - loss: 1.5716
Epoch 4/100
4/4 [==============================] - 0s 745us/step - loss: 1.0925
Epoch 5/100
4/4 [==============================] - 0s 1000us/step - loss: 0.7600
Epoch 6/100
4/4 [==============================] - 0s 745us/step - loss: 0.5293
Epoch 7/100
4/4 [==============================] - 0s 1ms/step - loss: 0.3693
Epoch 8/100
4/4 [==============================] - 0s 1000us/step - loss: 0.2582
... (중간 생략)
Epoch 97/100
4/4 [==============================] - 0s 749us/step - loss: 0.0038
Epoch 98/100
4/4 [==============================] - 0s 1ms/step - loss: 0.0038
Epoch 99/100
4/4 [==============================] - 0s 500us/step - loss: 0.0037
Epoch 100/100
4/4 [==============================] - 0s 750us/step - loss: 0.0037
[[4.8957124]] <-- 예측값
<이상>
'AI 머신러닝' 카테고리의 다른 글
케라스, One-hot Encoding (원핫 인코딩) (0) | 2020.01.13 |
---|---|
케라스(Keras)에서 지원하는 활성 함수 (0) | 2020.01.13 |
파이썬, 단순 선형 회귀 예제(텐서플로우2) (0) | 2020.01.04 |
케라스, IMDB 데이터셋 가져와서 신경망 데이터 준비하기 (0) | 2020.01.04 |
케라스 작업 흐름과 모델 정의 (0) | 2020.01.03 |