deep learning개념 & 대학 진학 예측 모델

2023. 12. 28. 17:40딥러닝

 

 

 

import pandas as pd
import tensorflow as tf
import numpy as np

#결측치 확인 및 제거
data=pd.read_csv('gpascore.csv')
data.isnull().sum() 
data=data.dropna()
data.isnull().sum() 

#x value, y value 설정
y_data = data['admit'].values
print(y_data)
x_data=[]
for i,rows in data.iterrows(): #데이터를 한 행씩 출력하는 iterrows
    x_data.append([rows['gre'],rows['gpa'],rows['rank']]) 

print(x_data)

exit()

#딥러닝 model 디자인
model=tf.keras.models.Sequential([ 
    tf.keras.layers.Dense(64,activation='tanh'), 
    tf.keras.layers.Dense(128,activation='tanh'), #숫자 인자=hidden layer에 들어갈 개수 activation=활성함수필수
    tf.keras.layers.Dense(1,activation='sigmoid'),    
]) 

#model compile
#model.compile(optimizer=???,loss=???, metrics=['accuracy'])

#optimizer = 알파값을 알맞게 조정
#loss = 손실함수 binary_crossentopy' 확률예측에 적함한 손실함수 
#metrics = 어떤요소로 평가할 것인지?
model.compile(optimizer='adam',loss='binary_crossentropy', metrics=['accuracy'])

#model 학습 시키기
#model.fit(x데이터, y데이터, epochs=10) #x에는 학습데이터, y는 정답데이터 
#데이터에 np.array 담는 것 주의
#epochs = epochs는 몇번학습시킬지 정하는 함수
model.fit(np.array(x_data), np.array(y_data), epochs=1000) 

#[[380,3.21,3], [660, 3.67, 3], [],[]] #x데이터에 들어가는 숫자 형식
#[0, 1, 1,1..] #y에 들어가는 숫자 형식

#예측
predict=model.predict([[750,3.70,3], [400,2.2, 1]]) #81퍼센트 확률 / 4퍼센트 확률
print(predict)

#딥러닝 요약 : 모델만들기 / 데이터집어넣고 학습 / 새로운데이터 예측

 

 

1000번 반복 시 손실값=0.5676, 정확도=0.7035도출

gre, gpa, rank ⇒ [750,3.70,3] [400,2.2, 1]

 

첫번째 학생의 gre=750, gpa=3.70, 지원한 대학 랭크=3

⇒대학진학 가능성(예측값) = 0.81 = 약 80퍼센트

 

두번째 학생의 gre=400, gpa=2.2, 지원한 대학 랭크=1

⇒대학진학 가능성(예측값) = 0.041 = 약 4퍼센트

 

 

출처

https://www.youtube.com/watch?v=8ftqlASt6HY  

https://www.youtube.com/watch?v=SsJ_AusntiU