반응형

단순 선형 회귀 예제 (케라스)

 

글. 오상문 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]]    <-- 예측값

 

<이상>

 

 

반응형

+ Recent posts