#. x=np.array([range(10),range(10,20)])  y=np.array([range(100, 110)]) 인 데이터로 모델을 구성하고 r2 값 확인해보자

import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score

# 1. 데이터

x=np.array([range(10),range(10,20)])
x=x.T

y=np.array([range(100, 110)])
y=y.T

x_train, x_test, y_train, y_test = train_test_split(
    x, y,
    shuffle=True,
    train_size=0.7,
    random_state=155
)

# 2. 모델 구성

model=Sequential()
model.add(Dense(5,input_dim=2))
model.add(Dense(7))
model.add(Dense(10))
model.add(Dense(7))
model.add(Dense(5))
model.add(Dense(1))

# 3. 컴파일, 훈련

model.compile(loss='mse', optimizer='adam')
model.fit(x_train,y_train, epochs=100, batch_size=1)

# 4. 평가, 예측

loss = model.evaluate(x_test,y_test)
print('loss :', loss)

y_predict= model.predict(x_test)

r2=r2_score(y_test,y_predict)
print('r2 :', r2)

plt.plot(x_train,y_train)
plt.show()