폐암 수술 환자의 생존율 예측하기
- 사용 데이터셋: ThoraricSurgery.csv
- 소스 코드 1
12345678910111213141516171819202122232425from keras.models import Sequentialfrom keras.layers import Denseimport numpy as npimport tensorflow as tfseed = 3np.random.seed(seed) # 항상 똑같은 난수가 나오도록 설정tf.random.set_seed(seed) # 항상 똑같은 난수가 나오도록 설정Data_set = np.loadtxt("ThoraricSurgery.csv", delimiter=",")X = Data_set[:, 0:17]Y = Data_set[:, 17]model = Sequential()model.add(Dense(30, input_dim=17, activation='relu'))model.add(Dense(1, activation='sigmoid'))model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])model.fit(X, Y, epochs=200, batch_size=10)score = model.evaluate(X, Y)print("\n Accuracy: %.4f \n loss : %.4f" % (score[1], score[0])) - 소스 코드 1 실행 결과
12345678910......Epoch 199/20047/47 [==============================] - 0s 1ms/step - loss: 0.1117 - accuracy: 0.8702Epoch 200/20047/47 [==============================] - 0s 2ms/step - loss: 0.1146 - accuracy: 0.874515/15 [==============================] - 0s 2ms/step - loss: 0.1264 - accuracy: 0.8574Accuracy: 0.8574loss : 0.1264 - 설명
- accuracy : 예측이 성공학 확률
- loss : 예측이 실패할 확률
- 예측 성공률은 데이터를 분석해 데이터를 확장하거나, 딥러닝 구조를 적절하게 바꾸는 등의 노력으로 더 향상될 수 있음
- 소스 코드 2
1234567891011121314151617181920212223242526272829from keras.models import Sequentialfrom keras.layers import Denseimport numpy as npimport tensorflow as tffrom sklearn.model_selection import train_test_splitseed = 3np.random.seed(seed) # 항상 똑같은 난수가 나오도록 설정tf.random.set_seed(seed) # 항상 똑같은 난수가 나오도록 설정Data_set = np.loadtxt("ThoraricSurgery.csv", delimiter=",")X = Data_set[:, 0:17]Y = Data_set[:, 17]X, x_test, Y, y_test = train_test_split(X, Y, train_size=0.8)model = Sequential()model.add(Dense(30, input_dim=17, activation='relu'))model.add(Dense(1, activation='sigmoid'))model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])model.fit(X, Y, epochs=200, batch_size=10)score = model.evaluate(x_test, y_test)print("\n Accuracy: %.4f \n loss : %.4f" % (score[1], score[0])) - 소스 코드 2 실행 결과
12345678910......Epoch 199/20038/38 [==============================] - 0s 1ms/step - loss: 0.1170 - accuracy: 0.8644Epoch 200/20038/38 [==============================] - 0s 1ms/step - loss: 0.1143 - accuracy: 0.87233/3 [==============================] - 0s 5ms/step - loss: 0.1222 - accuracy: 0.8617Accuracy: 0.8617loss : 0.1222