728x90
우리가 흔히 알고있는 XOR문제를 Deep learning으로 훈련시켜 보겠다.
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
# 데이터 생성
x_XOR = np.array([[0,0],[0,1],[1,0],[1,1]])
y_XOR = np.array([0,1,1,0])
# 모델생성
model = Sequential()
model.add(Dense(2,input_shape = (4,2),activation = 'relu'))
model.add(Dense(6))
model.add(Dense(1,activation = 'sigmoid')) #출력층만 sigmoid 설정해줌
# 손실함수 최적화 함수 설정해줌
model.compile(loss = 'binary_crossentropy',optimizer = 'adam') #손실함수는 binary_crossentropy 사용
# 모델 훈련
model.fit(x_XOR,y_XOR,epochs=1000,batch_size=4)
# 예측
pred = model.predict(x_XOR)
# 결과 출력
result = []
for i in pred:
if i >= 0.5:
result.append(1)
else:
result.append(0)
result
Dense 레이어는 각 노드들을 연결해준다.
인자값으로는 (노드수, 입력받을 데이터shape(첫번째 레이어만 설정),activation(활성화 함수))
compile 함수는 loss 및 optimizer을 설정해줄 수 있다. 이진 분류 모델이므로 binary_crossentropy를 사용하였다.
그다음으로 fit함수와 predict 함수를 사용하여 훈련하고 예측하였다.
결과는 다음과 같았다.
loss: 0.0369
[0, 1, 1, 0]
예측이 잘 된것을 볼 수 있다.
728x90
'파이썬 머신러닝' 카테고리의 다른 글
[머신러닝][교차검증, 파라미터 튜닝] (0) | 2021.05.02 |
---|---|
[머신러닝][kaggle 실습- 보험 비용 예측하기] (2) | 2021.02.23 |
[머신러닝][Classification 알고리즘 실습-Mushroom Classification] (0) | 2021.02.14 |
[머신러닝][Linear Regression알고리즘 파이썬으로 구현] (1) | 2021.02.12 |
[머신러닝][코로나 확진자 예측하기] (1) | 2021.02.09 |