728x90
반응형
지난 포스팅에서 피마 인디언의 당뇨병 데이터(diabetes)에 대해 시각화해보며, 데이터에 대해 알아보았다.
2022.08.02 - [파이썬(Python), 머신러닝, 딥러닝] - (딥러닝 with 파이썬) 당뇨병 예측 (피마 인디언의 당뇨병 예측) - 1) 데이터 시각화
(딥러닝 with 파이썬) 당뇨병 예측 (피마 인디언의 당뇨병 예측) - 1) 데이터 시각화
"당뇨병(diabete) 데이터"로 유명한 데이터셋인, "피마 인디언의 당뇨병" 데이터를 통해서, 1. 탐색적 데이터 분석(시각화) 2. 딥러닝을 통한 당뇨병 여부 예측 을 진행하겠습니다. 1. 탐색적 데
goodsarah.tistory.com
이번에는 딥러닝을 통해 해당 데이터를 학습한 뒤, 변수들 값 만으로 얼마나 정확하게 당뇨병 여부를 예측할 수 있는지 알아보겠다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#피마 인디언 당뇨병 예측
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
#pandas 라이브러리 호출
import pandas as pd
#피마 인디언 당뇨병 관련 데이터 호출 : github taehojo님의 data
!git clone https://github.com/taehojo/data.git
df = pd.read_csv('./data/pima-indians-diabetes3.csv')
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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'))
#Input layer의 노드는 8개(파라미터 개수와 동일)
#Input layer 다음 첫번째 Hidden layer의 노드 : 12
#활성화 함수(Input -> hidden layer1) : Rectified Linear Unit
#해당 Dense의 이름을 Dense_1 으로 명명
model.add(Dense(8, activation ='relu', name='Dense_2'))
#두번째 Hiddenlayer의 노드 갯수 : 8
#활성화 함수(hidden layer1 -> hidden layer2) : Rectified Linear Unit
#해당 Dense의 이름을 Dense_2 으로 명명
model.add(Dense(1, activation='sigmoid', name='Dense_3'))
#출력층(Output layer)의 노드 갯수 : 1
#활성화 함수(hidden layer2 -> Output layer2) : sigmoid
#해당 Dense의 이름을 Dense_3 으로 명명
model.summary()
|
cs |
1
2
3
4
5
6
7
8
9
|
#모델 컴파일
model.compile(loss='binary_crossentropy', optimizer = 'adam', metrics=['accuracy'])
#이진분류(당뇨 또는 정상)문제이기에 로지스틱회귀에 사용된 바이너리 크로스엔트로피를 손실함수로 지정
#옵티마이저(경사하강법을 적용하는 방식) : adam(momentum + rmsprop)
#metrics(모델 수행의 결과를 나타내는 척도) : accuracy(혼동행렬에서 구해지는 정확도)
#모델 실행
history = model.fit(X, y, epochs=100, batch_size=5)
|
cs |
.
.
.
결과를 해석해보면, 100번의 반복 시행을 하였으며,
- 손실함수의 값(loss)은 0.5 값 일대에서 수렴하는 듯 보이며
- 정확도(accuracy)는 0.75 일대에서 수렴하는 것 처럼 보인다.
학습률 및 레이어의 구성들을 조금 더 튜닝하게 되면 최적의 값을 찾을 수 있겠지만, 현재로서는 위와 같은 해석이 최선으로 보이며
결론적으로는, 우리가 구성한 모델은 주어진 데이터를 바탕으로 버마 인디언의 당뇨병을 75%의 정확도를 가지고 예측할 수 있다고 해석할 수 있다.
728x90
반응형
'파이썬(Python), 머신러닝, 딥러닝' 카테고리의 다른 글
(딥러닝 with 파이썬) k겹 교차검증(k-fold cross validation / k-fold cv) (0) | 2022.08.10 |
---|---|
(딥러닝 with 파이썬) 아이리스(iris/분꽃) 데이터 다중분류 문제 (0) | 2022.08.05 |
(딥러닝 with 파이썬) 당뇨병 예측 (피마 인디언의 당뇨병 예측) - 1) 데이터 시각화 (0) | 2022.08.02 |
(딥러닝 with 파이썬) 폐암 수술 환자의 생존율 예측 모델 (0) | 2022.08.02 |
(딥러닝 with 파이썬) 오차역전파 / 활성화 함수 (0) | 2022.08.02 |
댓글