딥러닝

[딥러닝] 퍼셉트론, 다층 퍼셉트론(Perceptron, MLP)

퓨어맨 2022. 7. 14. 10:03

 

 

 

 

 

 

 

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# headr=None : 데이터프레임에서 컬럼명을 설정해주는 함수(None : 인덱스 번호로 출력됨)
data = pd.read_csv("/content/drive/MyDrive/Colab Notebooks/빅데이터 13차(딥러닝)/data/ThoraricSurgery.csv", header=None)
data

# 17번 인덱스 행이 환자의 생존여부를 표시

 

 

# 인덱싱으로 문제(17번을 제외한 나머지 열), 정답(17번 인덱스 열)을 설정해보세요
X = data.iloc[:,:-1]   # [행의범위, 열의범위]
y = data.iloc[:, -1]

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y,
                                                    test_size=0.3,
                                                    random_state=10
                                                    )

 

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

# 신경망 구조 설계
model = Sequential()

# input_dim : 입력되는 데이터의 특성 개수를 설정
# activation : 활성화 함수를 설정(들어온 자극(데이터)에 대한 응답여부(예측결과)를 결정하는 함수)
# 입력층(input_dim) + 중간 1개층(Dense)
model.add(Dense(100, input_dim=17, activation='relu'))

# 중간층
model.add(Dense(80, activation='relu'))
model.add(Dense(50, activation='relu'))
model.add(Dense(10, activation='relu'))

# 출력층
model.add(Dense(1, activation='sigmoid'))

model.summary()

 

 

# 학습 및 평가방법 설정
# binary_crossentropy : 2진분류에 사용하는 손실함수
#  -> 오차의 평균을 구하는 것은 mse와 같지만 0~1사이의 값으로 반환한 후에 평균오차를 구함(그래야 0또는1로 분류하기 편하니까!)
model.compile(loss='binary_crossentropy',
              optimizer='Adam',   # 최적화함수 : 확률적 경사하강법
              metrics=['acc']    # metrics : 평가방법을 설정(분류문제이기 때문에 정확도를 넣어줌)
              )

# 학습
h = model.fit(X_train, y_train, epochs=100)

plt.figure(figsize=(15,5))

plt.plot(h.history['acc'], label='acc')

plt.legend()
plt.show

 

model.evaluate(X_test, y_test)
5/5 [==============================] - 0s 3ms/step - loss: 0.5313 - acc: 0.8085
[0.5313374400138855, 0.8085106611251831]

 

'딥러닝' 카테고리의 다른 글

[딥러닝] Iris 품종 분류  (0) 2022.07.18
[딥러닝] 유방암 데이터분류(keras)  (0) 2022.07.18
[딥러닝] 활성화 함수(Activation Function)  (0) 2022.07.14
[딥러닝] keras 맛보기  (0) 2022.07.12
[딥러닝] 개요  (0) 2022.07.12