20240702_대학원을 붙을 확률 예측하기 (Keras)_01

딥러닝 모델을 만드는 방법이 엄청 쉽다.

  • 코딩애플 강의에서 제공해준 자료가 있음
    • admit : 1-합격 ,0-불합격
    • gre : 영어성적
    • gpa : gpa
    • rank : 지원한 학교 랭킹
  • 위 gre,gpa,rank 3개 데이터를 통해 합격을 예측하는 머신러닝 프로그램을 만들어봄

keras의 도움을 받아 딥러닝 모델을 만들어 보자

1. 모델만들기

  • 딥러닝 모델 만드는 방법인데, Keras를 사용하면 매우 쉬워짐
  • tf.keras.models.Sequential(레이어…)
    • 레이어 : tf.keras.layers.Dense(노드갯수,활성함수)
    • 활성함수 : sigmoid,tanh,relu,softmax ..
  • 맨 마지막 레이어는 잘 신경써야하며, (확률로 예측할거기 때문에 노드는 1개면 됨)

model = tf.keras.models.Sequential([
    # 일반적인 레이어를 만드는 문법
    ## tf.keras.layers.Dense(노드갯수,활성함수)
    ### 활성함수 : sigmoid,tanh,relu,softmax ..
    tf.keras.layers.Dense(64,activation='tanh'),
    tf.keras.layers.Dense(128,activation='tanh'),
    ## 맨 마지막 레이어는 잘 신경써야하며, (확률로 예측할거기 때문에 노드는 1개면 됨)
    ## 확률을 예측해야 하기 때문에 활성함수는 sigmoid(0~1사이 값)
    tf.keras.layers.Dense(1,activation='sigmoid'), 
])

2. 모델 컴파일하기

  • model.compile(옵티마이저,손실함수,행렬)
  • 옵티마이저 종류 : adam,adagrad,adadelta,rmsprop,sgd ..
    • *adam : 경사하강법을 기반으로한 옵티마이저
  • 손실함수 : 문제마다 유용한 손실함수가 있음. 확률 예측은(0과 1사이 값) binary_crossentropy

# 모델 컴파일
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])

3. 모바일 학습시키기

  • model.fit(x데이터,y데이터,epochs)
    • x데이터 : 데이터
    • y데이터 : 예측값
    • epochs : 반복횟수

전체소스

  • 모델을 만들고, 학습시키는데 필요한 전체 소스는 엄청 간단하다.
  • 다음 포스팅에서는 실제 데이터를 넣어서 실행해보기로 하겠음.
import tensorflow as tf
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(64,activation='tanh'),
    tf.keras.layers.Dense(128,activation='tanh'),
    tf.keras.layers.Dense(1,activation='sigmoid'), 
])
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
model.fit(x데이터,y데이터,epochs)