피마 인디언 당뇨병 예측

TaeHyun Lee·2023년 4월 10일
0

AI 공부

목록 보기
12/17
post-thumbnail
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)

Epoch 1/100
154/154 [==============================] - 2s 2ms/step - loss: 1.7955 -
accuracy: 0.5430
... (중략) ...
Epoch 100/100
154/154 [==============================] - 0s 2ms/step - loss: 0.5705 -
accuracy: 0.7161

약 71%의 정확도를 보이고 있다.

코드 분석

df = pd.read_csv('./data/pima-indians-diabetes3.csv')
X = df.iloc[:,0:8]
y = df.iloc[:,8]

데이터 셋을 불러오고 세부정보를 x로 당뇨병 여부를 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)

모델을 컴파일 후 실행해줍니다.

profile
서커스형 개발자

0개의 댓글