[케라스] 암 분류기 , 당뇨병 분류기 파이썬 코드
2020. 4. 18. 10:37ㆍ노트/Python : 프로그래밍
암분류기
데이터
맨 오른쪽
#1: 수술후 생존, 0: 사망
코드
import tensorflow as tf
seed=123
np.random.seed(seed)
tf.set_random_seed(seed)
path = "C:\\Users\\student\\Desktop\\DY\\★ 데이터\\105. deep-learning-dataset\\"
dataset=np.loadtxt(path+"ThoraricSurgery.csv", delimiter =",")
dataset
>>>
array([[293. , 1. , 3.8 , ..., 0. , 62. , 0. ],
[ 1. , 2. , 2.88, ..., 0. , 60. , 0. ],
[ 8. , 2. , 3.19, ..., 0. , 66. , 1. ],
...,
[406. , 6. , 5.36, ..., 0. , 62. , 0. ],
[ 25. , 8. , 4.32, ..., 0. , 58. , 1. ],
[447. , 8. , 5.2 , ..., 0. , 49. , 0. ]])
np.shape(dataset)
>>> (470, 18)
# 트레이닝 테스트 데이터 분리
xtrain=dataset[:400,0:17]
ytrain=dataset[:400,17] # 1: 수술후 생존, 0: 사망
xtest=dataset[400:,0:17]
ytest=dataset[400:,17]
# 모델 생성
model = Sequential()
model.add(Dense(30, input_dim = 17, activation='relu'))
model.add(Dense(1, activation = 'sigmoid'))
# 모델 학습
model.compile(loss = 'mean_squared_error',optimizer = 'adam',metrics =['accuracy'])
model.fit(xtrain,ytrain, epochs=30, batch_size=10)
# 비용및 정확도 확인 ** 테스트 데이터 셋으로 평가
print("cost:"+str(model.evaluate(xtest,ytest)[0]),"\naccuracy:"+str(model.evaluate(xtest,ytest)[1]))
>>>
70/70 [==============================] - 0s 43us/step
70/70 [==============================] - 0s 57us/step
cost:0.21242533879620687
accuracy:0.7857142686843872
당뇨병 분류기
데이터
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
np.random.seed(42)
tf.set_random_seed(42)
path="C:\\Users\\student\\Desktop\\DY\\★ 데이터\\105. deep-learning-dataset\\"
data = np.loadtxt(path+"pima-indians-diabetes.csv",delimiter=",")
data
>>>
array([[ 6. , 148. , 72. , ..., 0.627, 50. , 1. ],
[ 1. , 85. , 66. , ..., 0.351, 31. , 0. ],
[ 8. , 183. , 64. , ..., 0.672, 32. , 1. ],
...,
[ 5. , 121. , 72. , ..., 0.245, 30. , 0. ],
[ 1. , 126. , 60. , ..., 0.349, 47. , 1. ],
[ 1. , 93. , 70. , ..., 0.315, 23. , 0. ]])
x=data[:,0:8]
y=data[:,8]
print(x.shape)
print(y.shape)
>>>(768, 8)
(768,)
모델 생성
model=Sequential()
model.add(Dense(12,input_dim=8,activation='relu'))
model.add(Dense(8,activation='relu'))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss = "binary_crossentropy", optimizer="adam", metrics =["accuracy"])
#batch_size: weight 업데이트할때 몇개의 데이터를 읽겠느냐
model.fit(x,y,epochs=200,batch_size=10)
모델 평가
print("cost:")
print(model.evaluate(x,y)[0])
print("\naccuracy:")
model.evaluate(x,y)[1]
'노트 > Python : 프로그래밍' 카테고리의 다른 글
[파이썬] 데이터변형 | 재구조화 (피벗테이블) (0) | 2020.04.18 |
---|---|
[텐서플로우] 다중 선형 회귀를 이용한 당뇨병 분류기 파이썬 코드 (0) | 2020.04.18 |
[파이썬] 데이터변형 | 이항변수화 , 이산화 (0) | 2020.04.17 |
[케라스] Keras 모델 생성 기본 구조 (0) | 2020.04.17 |
[텐서플로우] 다중회귀분석 (Multi-variable Linear Regression) 파이썬 코드 (0) | 2020.04.17 |