# load_diabetes 를 이용한 코드 짜보기
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.metrics import r2_score
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_diabetes
#1. 데이터
datasets= load_diabetes()
x= datasets.data
y= datasets.target
"""
:Attribute Information:
- age age in years
- sex
- bmi body mass index
- bp average blood pressure
- s1 tc, total serum cholesterol
- s2 ldl, low-density lipoproteins
- s3 hdl, high-density lipoproteins
- s4 tch, total cholesterol / HDL
- s5 ltg, possibly log of serum triglycerides level
- s6 glu, blood sugar level
"""
x_train, x_test, y_train, y_test = train_test_split(x, y,
train_size=0.9,
random_state= 72,
shuffle=True
)
#2. 모델 구성
model=Sequential()
model.add(Dense(10, input_dim=10))
model.add(Dense(100))
model.add(Dense(200))
model.add(Dense(100))
model.add(Dense(10))
model.add(Dense(1))
#3. 컴파일, 훈련
model.compile(loss='mse', optimizer='adam')
model.fit(
x_train,y_train,
epochs=100,
batch_size=5
)
#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)
#r2 : 0.6601526989837079
#r2 : 0.6622384708649621
#r2 : 0.664550072711747