더북(TheBook)

TIP

은닉층의 개수를 왜 두 개로 했나요? 그리고 노드의 수는 왜 각각 12개와 8개로 했나요?

입력과 출력의 수는 정해져 있지만, 은닉층은 몇 층으로 할지, 은닉층 안의 노드는 몇 개로 할지에 대한 정답은 없습니다. 자신의 프로젝트에 따라 설정해야 합니다. 여러 번 반복하면서 최적 값을 찾아내는 것이 좋으며, 여기서는 임의의 수로 12와 8을 설정했고 설명의 편의성을 위해 두 개의 은닉층을 만들었습니다. 여러분이 직접 노드의 수와 은닉층의 개수를 바꾸어 보면서 더 좋은 정확도가 나오는지 시험해 보세요.

전체 코드는 다음과 같습니다.

실습 | 피마 인디언의 당뇨병 예측하기

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# pandas 라이브러리를 불러옵니다.
import pandas as pd

# 깃허브에 준비된 데이터를 가져옵니다.
!git clone https://github.com/taehojo/data.git

# 피마 인디언 당뇨병 데이터셋을 불러옵니다.
df = pd.read_csv('./data/pima-indians-diabetes3.csv')

X = df.iloc[:,0:8]   # 세부 정보를 X로 지정합니다.
y = df.iloc[:,8]     # 당뇨병 여부를 y로 지정합니다.

# 모델을 설정합니다.
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu', name='Dense_1'))
model.add(Dense(8, activation='relu', name='Dense_2'))
model.add(Dense(1, activation='sigmoid', name='Dense_3'))
model.summary()

# 모델을 컴파일합니다.
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# 모델을 실행합니다.
history = model.fit(X, y, epochs=100, batch_size=5)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.