x_data = np.expand_dims(train_data[:, 0], axis=1)
y_data = train_data[:, 1]

# 학습 데이터 시각화
plt.scatter(x_data,
            y_data,
            c=np.random.random(len(y_data)),
            cmap=plt.cm.rainbow)
plt.show()

# 모델 생성
model = LinearModel(num_units=1)

# 최적화 함수, 손실함수와 모델 바인딩
model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=0.001),
              loss=tf.keras.losses.MSE,
              metrics=[tf.keras.metrics.MeanSquaredError()])

# 모델 학습
model.fit(x=x_data, y=y_data, epochs=10, batch_size=32)

# 모델 테스트
prediction = model.predict(x=test_x, batch_size=None)

# 결과 시각화
plt.scatter(x_data,
            y_data,
            s=5,
            label="train data",
            c=np.random.random(len(y_data)),
            cmap=plt.cm.rainbow)